1
0
Fork 0
gnome-software/tests/basic.py
Daniel Baumann 68ee05b3fd
Adding upstream version 48.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 21:00:23 +02:00

151 lines
5.2 KiB
Python
Executable file

#! /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")