diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:57:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:57:27 +0000 |
commit | 6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18 (patch) | |
tree | d423850ae901365e582137bdf2b5cbdffd7ca266 /tests/basic.py | |
parent | Initial commit. (diff) | |
download | gnome-software-6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18.tar.xz gnome-software-6f0f7d1b40a8fa8d46a2d6f4317600001cdbbb18.zip |
Adding upstream version 43.5.upstream/43.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rwxr-xr-x | tests/basic.py | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/tests/basic.py b/tests/basic.py new file mode 100755 index 0000000..1006ecf --- /dev/null +++ b/tests/basic.py @@ -0,0 +1,151 @@ +#! /usr/bin/python + +# This a simple test, using the dogtail framework: +# +# Click on All, Installed, Updates and check that the button state +# and the main page content update as expected. Type a few characters +# on the overview page, hit Enter, and verify that we end up on the +# search page. Hit Escape and verify that we go back to the overview +# page. + +from gi.repository import Gio + +settings = Gio.Settings.new("org.gnome.desktop.interface") +settings.set_boolean ("toolkit-accessibility", True) + +import os +from dogtail.tree import * +from dogtail.utils import * +from dogtail.procedural import * + +try: + run('gnome-software') + + app_name = 'gnome-software' + app = root.application(app_name) + + all_button = app.child('All') + installed_button = app.child('Installed') + updates_button = app.child('Updates') + back_button = app.child('Go back') + + overview_page = app.child('Overview page') + installed_page = app.child('Installed page') + updates_page = app.child('Updates page') + search_page = app.child('Search page') + details_page = app.child('Details page') + install_button = details_page.child('Install') + uninstall_button = details_page.child('Uninstall') + + search_page_listbox = search_page.child(roleName='list box') + + all_button.click() + assert (all_button.checked) + assert (not installed_button.checked) + assert (not updates_button.checked) + assert (overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + + installed_button.click() + assert (not all_button.checked) + assert (installed_button.checked) + assert (not updates_button.checked) + assert (not overview_page.showing) + assert (installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + + updates_button.click() + assert (not all_button.checked) + assert (not installed_button.checked) + assert (updates_button.checked) + assert (not overview_page.showing) + assert (not installed_page.showing) + assert (updates_page.showing) + assert (not search_page.showing) + + installed_button.click() + assert (not all_button.checked) + assert (installed_button.checked) + assert (not updates_button.checked) + assert (not overview_page.showing) + assert (installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + + all_button.click() + assert (all_button.checked) + assert (not installed_button.checked) + assert (not updates_button.checked) + assert (overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + + type("archive\n") + doDelay(2) + assert (not all_button.checked) + assert (not installed_button.checked) + assert (not updates_button.checked) + assert (not overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (search_page.showing) + + """Details page test section""" + search_page_listbox.child(roleName='label', name='Archive Manager').click() + doDelay(4) + assert (not overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + assert (details_page.showing) + assert (install_button.showing or uninstall_button.showing) + assert (back_button.showing) + assert (root.application(app_name).child('Details page') + .child(roleName='push button', name='History') + .states.contains(pyatspi.STATE_VISIBLE)) + assert (root.application(app_name).child('Details page') + .child(roleName='push button', name='Website') + .states.contains(pyatspi.STATE_VISIBLE)) + + if install_button.showing: + assert (not root.application(app_name).child('Details page') + .child(roleName='push button', name='Launch') + .states.contains(pyatspi.STATE_VISIBLE)) + else: + assert (root.application(app_name).child('Details page') + .child(roleName='push button', name='Launch') + .states.contains(pyatspi.STATE_VISIBLE)) + + back_button.click() + assert (not all_button.checked) + assert (not installed_button.checked) + assert (not updates_button.checked) + assert (not overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (search_page.showing) + assert (not install_button.showing) + assert (not uninstall_button.showing) + assert (not back_button.showing) + + keyCombo("Escape") + assert (all_button.checked) + assert (not installed_button.checked) + assert (not updates_button.checked) + assert (overview_page.showing) + assert (not installed_page.showing) + assert (not updates_page.showing) + assert (not search_page.showing) + + super_menu = root.application('gnome-shell').child(roleName='menu', name='Software') + super_menu.click() + root.application('gnome-shell').child(roleName='label', name='Software Sources').click() + assert (len(app.children) == 2) + sources_dialog = app.children[-1] + assert (sources_dialog.child(roleName='label', name='Software Sources')) +finally: + os.system("killall gnome-software") |