~ubuntu-branches/ubuntu/wily/gnome-software/wily

« back to all changes in this revision

Viewing changes to tests/basic.py

  • Committer: Package Import Robot
  • Author(s): Laurent Bigonville
  • Date: 2014-10-11 11:04:58 UTC
  • Revision ID: package-import@ubuntu.com-20141011110458-0qsyec8s0lsjevdv
Tags: upstream-3.14.0
ImportĀ upstreamĀ versionĀ 3.14.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /usr/bin/python
 
2
 
 
3
# This a simple test, using the dogtail framework:
 
4
#
 
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
 
9
# page.
 
10
 
 
11
from gi.repository import Gio
 
12
 
 
13
settings = Gio.Settings.new("org.gnome.desktop.interface")
 
14
settings.set_boolean ("toolkit-accessibility", True)
 
15
 
 
16
import os
 
17
from dogtail.tree import *
 
18
from dogtail.utils import *
 
19
from dogtail.procedural import *
 
20
 
 
21
try:
 
22
    run('gnome-software')
 
23
 
 
24
    app_name = 'org.gnome.Software'
 
25
    app = root.application(app_name)
 
26
 
 
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')
 
33
 
 
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')
 
39
 
 
40
    search_page_listbox = search_page.child(roleName='list box')
 
41
 
 
42
    all_button.click()
 
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)
 
50
 
 
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)
 
59
 
 
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)
 
68
 
 
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)
 
77
 
 
78
    all_button.click()
 
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)
 
86
 
 
87
    type("geary\n")
 
88
    doDelay(2)
 
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)
 
96
 
 
97
    """Details page test section"""
 
98
    search_page_listbox.child(roleName='label', name='Geary').click()
 
99
    doDelay(4)
 
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))
 
113
 
 
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))
 
118
    else:
 
119
        assert (root.application(app_name).child('Details page')
 
120
                .child(roleName='push button', name='Launch')
 
121
                .states.contains(pyatspi.STATE_VISIBLE))
 
122
 
 
123
    back_button.click()
 
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)
 
134
 
 
135
    keyCombo("Escape")
 
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)
 
143
 
 
144
    super_menu = root.application('gnome-shell').child(roleName='menu', name='Software')
 
145
    super_menu.click()
 
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'))
 
150
finally:
 
151
    os.system("killall gnome-software")