3
# This a simple test, using the dogtail framework:
5
# Click on All, Installed, Updates and check that the button state
6
# and the main page content update as expected. Type a few characters
7
# on the overview page, hit Enter, and verify that we end up on the
8
# search page. Hit Escape and verify that we go back to the overview
11
from gi.repository import Gio
13
settings = Gio.Settings.new("org.gnome.desktop.interface")
14
settings.set_boolean ("toolkit-accessibility", True)
17
from dogtail.tree import *
18
from dogtail.utils import *
19
from dogtail.procedural import *
24
app_name = 'org.gnome.Software'
25
app = root.application(app_name)
27
all_button = app.child('All')
28
installed_button = app.child('Installed')
29
updates_button = app.child('Updates')
30
back_button = app.child('Go back')
31
install_button = app.child(roleName='frame', name='Software', recursive=False).child(roleName='panel', name='', recursive=False).child(roleName='push button', name='Install')
32
remove_button = app.child(roleName='frame', name='Software', recursive=False).child(roleName='panel', name='', recursive=False).child(roleName='push button', name='Remove')
34
overview_page = app.child('Overview page')
35
installed_page = app.child('Installed page')
36
updates_page = app.child('Updates page')
37
search_page = app.child('Search page')
38
details_page = app.child('Details page')
40
search_page_listbox = search_page.child(roleName='list box')
43
assert (all_button.checked)
44
assert (not installed_button.checked)
45
assert (not updates_button.checked)
46
assert (overview_page.showing)
47
assert (not installed_page.showing)
48
assert (not updates_page.showing)
49
assert (not search_page.showing)
51
installed_button.click()
52
assert (not all_button.checked)
53
assert (installed_button.checked)
54
assert (not updates_button.checked)
55
assert (not overview_page.showing)
56
assert (installed_page.showing)
57
assert (not updates_page.showing)
58
assert (not search_page.showing)
60
updates_button.click()
61
assert (not all_button.checked)
62
assert (not installed_button.checked)
63
assert (updates_button.checked)
64
assert (not overview_page.showing)
65
assert (not installed_page.showing)
66
assert (updates_page.showing)
67
assert (not search_page.showing)
69
installed_button.click()
70
assert (not all_button.checked)
71
assert (installed_button.checked)
72
assert (not updates_button.checked)
73
assert (not overview_page.showing)
74
assert (installed_page.showing)
75
assert (not updates_page.showing)
76
assert (not search_page.showing)
79
assert (all_button.checked)
80
assert (not installed_button.checked)
81
assert (not updates_button.checked)
82
assert (overview_page.showing)
83
assert (not installed_page.showing)
84
assert (not updates_page.showing)
85
assert (not search_page.showing)
89
assert (not all_button.checked)
90
assert (not installed_button.checked)
91
assert (not updates_button.checked)
92
assert (not overview_page.showing)
93
assert (not installed_page.showing)
94
assert (not updates_page.showing)
95
assert (search_page.showing)
97
"""Details page test section"""
98
search_page_listbox.child(roleName='label', name='Geary').click()
100
assert (not overview_page.showing)
101
assert (not installed_page.showing)
102
assert (not updates_page.showing)
103
assert (not search_page.showing)
104
assert (details_page.showing)
105
assert (install_button.showing or remove_button.showing)
106
assert (back_button.showing)
107
assert (root.application(app_name).child('Details page')
108
.child(roleName='push button', name='History')
109
.states.contains(pyatspi.STATE_VISIBLE))
110
assert (root.application(app_name).child('Details page')
111
.child(roleName='push button', name='Website')
112
.states.contains(pyatspi.STATE_VISIBLE))
114
if install_button.showing:
115
assert (not root.application(app_name).child('Details page')
116
.child(roleName='push button', name='Launch')
117
.states.contains(pyatspi.STATE_VISIBLE))
119
assert (root.application(app_name).child('Details page')
120
.child(roleName='push button', name='Launch')
121
.states.contains(pyatspi.STATE_VISIBLE))
124
assert (not all_button.checked)
125
assert (not installed_button.checked)
126
assert (not updates_button.checked)
127
assert (not overview_page.showing)
128
assert (not installed_page.showing)
129
assert (not updates_page.showing)
130
assert (search_page.showing)
131
assert (not install_button.showing)
132
assert (not remove_button.showing)
133
assert (not back_button.showing)
136
assert (all_button.checked)
137
assert (not installed_button.checked)
138
assert (not updates_button.checked)
139
assert (overview_page.showing)
140
assert (not installed_page.showing)
141
assert (not updates_page.showing)
142
assert (not search_page.showing)
144
super_menu = root.application('gnome-shell').child(roleName='menu', name='Software')
146
root.application('gnome-shell').child(roleName='label', name='Software Sources').click()
147
assert (len(app.children) == 2)
148
sources_dialog = app.children[-1]
149
assert (sources_dialog.child(roleName='label', name='Software Sources'))
151
os.system("killall gnome-software")