diff --git a/check-needles.py b/check-needles.py index fd719182..ea8d2449 100755 --- a/check-needles.py +++ b/check-needles.py @@ -130,6 +130,18 @@ for location in ("vilnius", "denali", "wellington", "poysdorf", "pune"): testliterals.append(f"maps_info_{location}") # variable-y in custom_change_device but we only have one value testliterals.append("anaconda_part_device_sda") +# For various application needles used by installation, removal, and +# checking methods. +for application in ("mahjongg","gvim","emacs","inkscape"): + testliterals.append(f"software_{application}-found") + testliterals.append(f"software_{application}-found_installed") + testliterals.append(f"software_{application}-listed") + testliterals.append(f"software_{application}-install_pane") + testliterals.append(f"apps_run_{application}") +# For RPM and Flatpak source used by installation methods. +for source in ("rpm", "flatpak"): + testliterals.append(f"software_source_available_{source}") + testliterals.append(f"software_source_fedora_{source}") # for Anaconda help related needles. testliterals.extend(f"anaconda_help_{fsys}" for fsys in ('install_destination', 'installation_progress', 'keyboard_layout', 'language_support', 'network_host_name', diff --git a/lib/desktoptools.pm b/lib/desktoptools.pm new file mode 100644 index 00000000..90847beb --- /dev/null +++ b/lib/desktoptools.pm @@ -0,0 +1,148 @@ +package desktoptools; + +use strict; + +use base 'Exporter'; +use Exporter; + +use testapi; +use utils; + +our @EXPORT = qw/install_application start_application_via_packagemanager check_app_installed remove_application restart_application/; + +# This subroutine installs an application via the +# GUI application, such as Gnome Software, or Discover. +# Currently, only Gnome Software is supported. +# The $application takes the name of the application, while +# $source takes the installation source, rpm or flatpak. +# The subroutine does not start the application itself, +# you need to start it before running this. +sub install_application { + my ($application, $source) = @_; + # Sometimes, especially when this method is used several + # times in a row, Software can be located on the + # installation tab and we need to leave it until + # we can proceed. + if (check_screen("software_back_button")) { + click_lastmatch(); + } + # Search for the application. + assert_and_click("gnome_search_button"); + wait_still_screen(2); + type_safely($application); + # Confirm that the application has been found and shown + # in the overview, click on it to enter the installation + # tab and confirm it has opened. + assert_and_click("software_$application-found"); + wait_still_screen(2); + assert_screen("software_$application-install_pane"); + + # For some applications, there are more installation sources + # available. Pick the desired one. + if (check_screen("software_sources_available", timeout => 5)) { + click_lastmatch(); + wait_still_screen(2); + assert_and_click("software_source_fedora_$source"); + wait_still_screen(2); + # Confirm that the source is indeed correctly selected. + assert_screen("software_sources_available_$source"); + } + # Click the Install button to start the installation. + assert_and_click("gnome_install_button"); + # When the installation is finished, the Open button + # will be shown. We are going to wait for this for + # a certain time. In case of Flatpak, this should be longer. + my $wait_time = 180; + if ($source eq "flatpak") { + $wait_time = 1200; + } + assert_screen("gnome_button_open", timeout => $wait_time); +} + +# This subroutine opens the $application using Gnome Software. +# It is useful to check that the installed application can +# be run immediately from withing the application. +sub start_application_via_packagemanager { + my $application = shift; + # We do not have to be on the application tab, so let's + # start over and navigate there from scratch if needed - + # if no Open button is visible. + unless (check_screen("gnome_button_open")) { + assert_and_click("gnome_search_button"); + wait_still_screen(2); + type_safely($application); + assert_and_click("software_$application-found"); + wait_still_screen(2); + assert_screen("software_$application-install_pane"); + } + # An Open button must be visible now, if the application + # has been installed, otherwise the command will fail. + assert_and_click("gnome_button_open"); + wait_still_screen(3); + assert_screen("apps_run_$application"); +} + +# This subroutine checks that the $application has been found +# in the list of installed applications. +# It will send a key and circle through the GUI list until the +# application has been found (or it will fail). +sub check_app_installed { + my $application = shift; + # It is possible that we still find ourselves in the Installation + # pane. In that case, the Installed button is not visible, therefore + # we need to go back in the GUI if this is the sitation. + unless (check_screen("software_installed_button")) { + assert_and_click("software_back_button"); + } + # Look for the application and confirm that it is listed as installed + # in the application overview. + assert_and_click("gnome_search_button"); + type_safely($application); + send_key("ret"); + assert_screen("software_$application-found_installed"); + + # Enter the Installed application view and circle through the items + # until the desired application has been found. + assert_and_click("software_installed_button"); + send_key_until_needlematch("software_$application-listed", "tab", 70); +} + +# This subroutine removes the application using a default package manager. +# This will not start the package manager application, you need to start +# it manualy or using a different subroutine. +# Currently only works for Software. +sub remove_application { + my $application = shift; + + # Find the application. + assert_and_click("gnome_search_button"); + wait_still_screen(2); + type_safely($application); + + assert_and_click("software_$application-found_installed"); + wait_still_screen(2); + assert_screen("software_$application-install_pane"); + + # Click the Delete button to delete the application. + assert_and_click("software_remove_button"); + + # Confirm to progress with the removal + assert_and_click("gnome_uninstall_button"); + + # Wait until the Open button changes to Install to indicate + # that the application has been removed. + assert_screen("gnome_install_button", timeout => 180); +} + +# This routine records a soft failure and starts the application. +# We have identified tests where the tested application crashes +# after the VM has been rolled back, probably due to changes +# to the underlying system, such as in Software. +sub restart_application { + my $application = shift; + + record_soft_failure("$application crashed and had to be restarted to continue the tests."); + menu_launch_type($application); + wait_still_screen(2); + assert_screen("apps_run_$application"); +} diff --git a/lib/fedoradistribution.pm b/lib/fedoradistribution.pm index a634e87b..d7966df1 100644 --- a/lib/fedoradistribution.pm +++ b/lib/fedoradistribution.pm @@ -101,7 +101,7 @@ sub ensure_installed { sub become_root { # If ROOT_PASSWORD exists, it means that the root account exists, too. # To become root, we will use the real root account and we'll switch to it. - if (check_var("ROOT_PASSWORD")) { + if (get_var("ROOT_PASSWORD")) { my $password = get_var("ROOT_PASSWORD"); enter_cmd("su -", max_interval => 15, wait_screen_changes => 3); type_password($password, max_interval => 15); diff --git a/lib/utils.pm b/lib/utils.pm index b9b73835..60dd63d9 100644 --- a/lib/utils.pm +++ b/lib/utils.pm @@ -7,7 +7,7 @@ use Exporter; use lockapi; use testapi; -our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable/; +our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable start_gnome_software/; # We introduce this global variable to hold the list of applications that have # registered during the apps_startstop_test when they have sucessfully run. @@ -1618,7 +1618,25 @@ sub download_testdata { # We agree that this is not the "correct" way, to enable users to type onto serial console # and that it correctly should be done via groups (dialout) but that would require rebooting # the virtual machine. Therefore we do it this way, which has immediate effect. +# +# Use "cli" or "desktop" as an argument to use this either from CLI or desktop. sub make_serial_writable { + my $env = shift; + # Get the name of the desktop + my $desktop = get_var("DESKTOP"); + # If we are running it from the desktop + if ($env eq "desktop") { + # The default terminal application is gnome-terminal + my $term = "gnome-terminal"; + # On KDE, change this to konsole + if ($desktop eq "kde") { + $term = "konsole"; + } + # Run the terminal application + menu_launch_type($term); + wait_still_screen(3); + } + # Become root become_root(); sleep 2; # Make serial console writable for everyone. @@ -1627,6 +1645,30 @@ sub make_serial_writable { # Exit the root account enter_cmd("exit"); sleep 2; + # If we are on the desktop, than a terminal was + # started for us. Leave it now. + if ($env eq "desktop") { + # Exit the terminal + enter_cmd("exit"); + sleep 2; + } +} + +# This subroutine start Gnome Software and deals with +# the welcome dialogue and checks that the application +# has started successfully. If 'started' is true, skip +# actually running the app and just do the welcome +# screen check. +# FIXME: the welcome screen was removed upstream between +# F35 and F36. When F35 goes EOL we can just drop this +# whole thing and have things that call it just launch the +# app and do `assert_screen "apps_run_software";` +sub start_gnome_software { + my %args = @_; + $args{started} //= 0; + menu_launch_type "gnome-software" unless $args{started}; + click_lastmatch if (check_screen "gnome_software_welcome", timeout => 15); + assert_screen "apps_run_software"; } 1; diff --git a/needles/gnome/apps/apps_run_inkscape.json b/needles/gnome/apps/apps_run_inkscape.json new file mode 100644 index 00000000..f6fac350 --- /dev/null +++ b/needles/gnome/apps/apps_run_inkscape.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 211, + "ypos": 122, + "width": 250, + "height": 65, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_run_inkscape" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/apps_run_inkscape.png b/needles/gnome/apps/apps_run_inkscape.png new file mode 100644 index 00000000..7f498d9e Binary files /dev/null and b/needles/gnome/apps/apps_run_inkscape.png differ diff --git a/needles/gnome/apps/apps_run_mahjongg.json b/needles/gnome/apps/apps_run_mahjongg.json new file mode 100644 index 00000000..0e16f855 --- /dev/null +++ b/needles/gnome/apps/apps_run_mahjongg.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 115, + "ypos": 5, + "width": 98, + "height": 23, + "type": "match" + } + ], + "properties": [], + "tags": [ + "apps_run_mahjongg" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/apps_run_mahjongg.png b/needles/gnome/apps/apps_run_mahjongg.png new file mode 100644 index 00000000..f0cd0490 Binary files /dev/null and b/needles/gnome/apps/apps_run_mahjongg.png differ diff --git a/needles/gnome/apps/evince/evince_search_button-20210916.png b/needles/gnome/apps/evince/evince_search_button-20210916.png deleted file mode 100644 index 2ee169be..00000000 Binary files a/needles/gnome/apps/evince/evince_search_button-20210916.png and /dev/null differ diff --git a/needles/gnome/apps/evince/evince_search_button-20220219.json b/needles/gnome/apps/evince/evince_search_button-20220219.json deleted file mode 100644 index bc7ba572..00000000 --- a/needles/gnome/apps/evince/evince_search_button-20220219.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "area": [ - { - "xpos": 897, - "width": 26, - "type": "match", - "ypos": 42, - "height": 24 - } - ], - "properties": [], - "tags": [ - "evince_search_button" - ] -} \ No newline at end of file diff --git a/needles/gnome/apps/evince/evince_search_button-20220219.png b/needles/gnome/apps/evince/evince_search_button-20220219.png deleted file mode 100644 index 3df44dea..00000000 Binary files a/needles/gnome/apps/evince/evince_search_button-20220219.png and /dev/null differ diff --git a/needles/gnome/apps/evince/evince_search_button.json b/needles/gnome/apps/evince/evince_search_button.json deleted file mode 100644 index f231ee1f..00000000 --- a/needles/gnome/apps/evince/evince_search_button.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "area": [ - { - "xpos": 897, - "type": "match", - "ypos": 42, - "width": 26, - "height": 24 - } - ], - "properties": [], - "tags": [ - "evince_search_button" - ] -} \ No newline at end of file diff --git a/needles/gnome/apps/evince/evince_search_button.png b/needles/gnome/apps/evince/evince_search_button.png deleted file mode 100644 index 341addab..00000000 Binary files a/needles/gnome/apps/evince/evince_search_button.png and /dev/null differ diff --git a/needles/gnome/apps/gnome_search_button-20220531.json b/needles/gnome/apps/gnome_search_button-20220531.json new file mode 100644 index 00000000..9911cfdf --- /dev/null +++ b/needles/gnome/apps/gnome_search_button-20220531.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 29, + "type": "match", + "ypos": 41, + "height": 28, + "xpos": 9 + } + ], + "properties": [], + "tags": [ + "gnome_search_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/gnome_search_button-20220531.png b/needles/gnome/apps/gnome_search_button-20220531.png new file mode 100644 index 00000000..2ed822ac Binary files /dev/null and b/needles/gnome/apps/gnome_search_button-20220531.png differ diff --git a/needles/gnome/apps/gnome_uninstall_button.json b/needles/gnome/apps/gnome_uninstall_button.json new file mode 100644 index 00000000..acb6b416 --- /dev/null +++ b/needles/gnome/apps/gnome_uninstall_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 602, + "ypos": 441, + "width": 72, + "height": 25, + "type": "match" + } + ], + "properties": [], + "tags": [ + "gnome_uninstall_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/gnome_uninstall_button.png b/needles/gnome/apps/gnome_uninstall_button.png new file mode 100644 index 00000000..77fe880a Binary files /dev/null and b/needles/gnome/apps/gnome_uninstall_button.png differ diff --git a/needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json b/needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json index dd121b04..dc4a1dd4 100644 --- a/needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json +++ b/needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json @@ -1,15 +1,25 @@ { "area": [ { +<<<<<<<< HEAD:needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json "xpos": 971, "ypos": 191, "width": 19, +======== + "xpos": 258, + "ypos": 446, + "width": 213, +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_update_notifications.json "height": 18, "type": "match" } ], "properties": [], "tags": [ +<<<<<<<< HEAD:needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json "nautilus_star_selected_file" +======== + "software_update_notifications" +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_update_notifications.json ] } \ No newline at end of file diff --git a/needles/gnome/apps/software/software_about.json b/needles/gnome/apps/software/software_about.json new file mode 100644 index 00000000..e90f7a2d --- /dev/null +++ b/needles/gnome/apps/software/software_about.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 481, + "ypos": 321, + "width": 62, + "height": 64, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_about" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_about.png b/needles/gnome/apps/software/software_about.png new file mode 100644 index 00000000..3b9e332f Binary files /dev/null and b/needles/gnome/apps/software/software_about.png differ diff --git a/needles/gnome/apps/software/software_automatic_disabled.json b/needles/gnome/apps/software/software_automatic_disabled.json new file mode 100644 index 00000000..d141fac3 --- /dev/null +++ b/needles/gnome/apps/software/software_automatic_disabled.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 511, + "type": "match", + "xpos": 265, + "ypos": 411, + "height": 25 + } + ], + "properties": [], + "tags": [ + "software_automatic_disabled" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_automatic_disabled.png b/needles/gnome/apps/software/software_automatic_disabled.png new file mode 100644 index 00000000..36cb868a Binary files /dev/null and b/needles/gnome/apps/software/software_automatic_disabled.png differ diff --git a/needles/gnome/apps/software/software_automatic_updates.json b/needles/gnome/apps/software/software_automatic_updates.json new file mode 100644 index 00000000..821e49ca --- /dev/null +++ b/needles/gnome/apps/software/software_automatic_updates.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 411, + "height": 23, + "xpos": 264, + "width": 129, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_automatic_updates" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_automatic_updates.png b/needles/gnome/apps/software/software_automatic_updates.png new file mode 100644 index 00000000..8d559e01 Binary files /dev/null and b/needles/gnome/apps/software/software_automatic_updates.png differ diff --git a/needles/gnome/apps/software/software_back_button.json b/needles/gnome/apps/software/software_back_button.json new file mode 100644 index 00000000..7f055d91 --- /dev/null +++ b/needles/gnome/apps/software/software_back_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "width": 24, + "xpos": 13, + "height": 20, + "ypos": 45 + } + ], + "properties": [], + "tags": [ + "software_back_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_back_button.png b/needles/gnome/apps/software/software_back_button.png new file mode 100644 index 00000000..7335a6cb Binary files /dev/null and b/needles/gnome/apps/software/software_back_button.png differ diff --git a/needles/gnome/apps/software/software_credits.json b/needles/gnome/apps/software/software_credits.json new file mode 100644 index 00000000..04bf28a5 --- /dev/null +++ b/needles/gnome/apps/software/software_credits.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 422, + "ypos": 461, + "height": 20, + "width": 160, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_credits" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_credits.png b/needles/gnome/apps/software/software_credits.png new file mode 100644 index 00000000..9ec24c04 Binary files /dev/null and b/needles/gnome/apps/software/software_credits.png differ diff --git a/needles/gnome/apps/software/software_emacs-found.json b/needles/gnome/apps/software/software_emacs-found.json new file mode 100644 index 00000000..a70f0553 --- /dev/null +++ b/needles/gnome/apps/software/software_emacs-found.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 248, + "ypos": 164, + "width": 149, + "height": 27, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_emacs-found" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_emacs-found.png b/needles/gnome/apps/software/software_emacs-found.png new file mode 100644 index 00000000..96e2fd5c Binary files /dev/null and b/needles/gnome/apps/software/software_emacs-found.png differ diff --git a/needles/gnome/apps/software/software_emacs-found_installed.json b/needles/gnome/apps/software/software_emacs-found_installed.json new file mode 100644 index 00000000..343c9065 --- /dev/null +++ b/needles/gnome/apps/software/software_emacs-found_installed.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 248, + "ypos": 165, + "width": 147, + "height": 24, + "type": "match" + }, + { + "xpos": 700, + "ypos": 183, + "width": 80, + "height": 27, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_emacs-found_installed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_emacs-found_installed.png b/needles/gnome/apps/software/software_emacs-found_installed.png new file mode 100644 index 00000000..cb289385 Binary files /dev/null and b/needles/gnome/apps/software/software_emacs-found_installed.png differ diff --git a/needles/gnome/apps/software/software_emacs-install_pane-20220628.json b/needles/gnome/apps/software/software_emacs-install_pane-20220628.json new file mode 100644 index 00000000..33356303 --- /dev/null +++ b/needles/gnome/apps/software/software_emacs-install_pane-20220628.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 121, + "ypos": 134, + "width": 281, + "height": 42, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_emacs-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_emacs-install_pane-20220628.png b/needles/gnome/apps/software/software_emacs-install_pane-20220628.png new file mode 100644 index 00000000..4fd2692b Binary files /dev/null and b/needles/gnome/apps/software/software_emacs-install_pane-20220628.png differ diff --git a/needles/gnome/apps/software/software_emacs-listed-20220629.json b/needles/gnome/apps/software/software_emacs-listed-20220629.json new file mode 100644 index 00000000..04bf7d31 --- /dev/null +++ b/needles/gnome/apps/software/software_emacs-listed-20220629.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 30, + "width": 537, + "type": "match", + "ypos": 602, + "xpos": 249 + } + ], + "properties": [], + "tags": [ + "software_emacs-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_emacs-listed-20220629.png b/needles/gnome/apps/software/software_emacs-listed-20220629.png new file mode 100644 index 00000000..e0a99029 Binary files /dev/null and b/needles/gnome/apps/software/software_emacs-listed-20220629.png differ diff --git a/needles/gnome/apps/software/software_emacs-listed.json b/needles/gnome/apps/software/software_emacs-listed.json new file mode 100644 index 00000000..2533f245 --- /dev/null +++ b/needles/gnome/apps/software/software_emacs-listed.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 249, + "ypos": 695, + "type": "match", + "height": 30, + "width": 537 + } + ], + "properties": [], + "tags": [ + "software_emacs-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_emacs-listed.png b/needles/gnome/apps/software/software_emacs-listed.png new file mode 100644 index 00000000..a9890f14 Binary files /dev/null and b/needles/gnome/apps/software/software_emacs-listed.png differ diff --git a/needles/gnome/apps/software/software_gvim-found.json b/needles/gnome/apps/software/software_gvim-found.json new file mode 100644 index 00000000..b9464fdb --- /dev/null +++ b/needles/gnome/apps/software/software_gvim-found.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 238, + "ypos": 163, + "width": 120, + "height": 26, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_gvim-found" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_gvim-found.png b/needles/gnome/apps/software/software_gvim-found.png new file mode 100644 index 00000000..15cd809b Binary files /dev/null and b/needles/gnome/apps/software/software_gvim-found.png differ diff --git a/needles/gnome/apps/software/software_gvim-found_installed.json b/needles/gnome/apps/software/software_gvim-found_installed.json new file mode 100644 index 00000000..167b9b68 --- /dev/null +++ b/needles/gnome/apps/software/software_gvim-found_installed.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 242, + "ypos": 168, + "width": 118, + "height": 21, + "type": "match" + }, + { + "xpos": 702, + "ypos": 185, + "width": 77, + "height": 24, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_gvim-found_installed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_gvim-found_installed.png b/needles/gnome/apps/software/software_gvim-found_installed.png new file mode 100644 index 00000000..71e31dd4 Binary files /dev/null and b/needles/gnome/apps/software/software_gvim-found_installed.png differ diff --git a/needles/gnome/apps/software/software_gvim-install_pane.json b/needles/gnome/apps/software/software_gvim-install_pane.json new file mode 100644 index 00000000..94112375 --- /dev/null +++ b/needles/gnome/apps/software/software_gvim-install_pane.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 113, + "ypos": 116, + "width": 210, + "height": 58, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_gvim-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_gvim-install_pane.png b/needles/gnome/apps/software/software_gvim-install_pane.png new file mode 100644 index 00000000..55c206c2 Binary files /dev/null and b/needles/gnome/apps/software/software_gvim-install_pane.png differ diff --git a/needles/gnome/apps/software/software_gvim-listed.json b/needles/gnome/apps/software/software_gvim-listed.json new file mode 100644 index 00000000..9fbcaf4d --- /dev/null +++ b/needles/gnome/apps/software/software_gvim-listed.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 242, + "ypos": 232, + "width": 548, + "height": 26, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_gvim-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_gvim-listed.png b/needles/gnome/apps/software/software_gvim-listed.png new file mode 100644 index 00000000..ddde6651 Binary files /dev/null and b/needles/gnome/apps/software/software_gvim-listed.png differ diff --git a/needles/gnome/apps/software/software_inkscape-found.json b/needles/gnome/apps/software/software_inkscape-found.json new file mode 100644 index 00000000..3c9a440e --- /dev/null +++ b/needles/gnome/apps/software/software_inkscape-found.json @@ -0,0 +1,32 @@ +<<<<<<<< HEAD:needles/gnome/apps/weather/weather_report_hourly_later.json +{ + "area": [ + { + "xpos": 707, + "ypos": 221, + "width": 45, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "weather_report_hourly" + ] +======== +{ + "area": [ + { + "xpos": 240, + "ypos": 169, + "width": 137, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_inkscape-found" + ] +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_inkscape-found.json +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_inkscape-found.png b/needles/gnome/apps/software/software_inkscape-found.png new file mode 100644 index 00000000..b5bce7f4 Binary files /dev/null and b/needles/gnome/apps/software/software_inkscape-found.png differ diff --git a/needles/gnome/apps/software/software_inkscape-found_installed.json b/needles/gnome/apps/software/software_inkscape-found_installed.json new file mode 100644 index 00000000..648b6f77 --- /dev/null +++ b/needles/gnome/apps/software/software_inkscape-found_installed.json @@ -0,0 +1,22 @@ +{ + "area": [ + { + "xpos": 241, + "ypos": 168, + "width": 150, + "height": 23, + "type": "match" + }, + { + "xpos": 699, + "ypos": 179, + "width": 80, + "height": 32, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_inkscape-found_installed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_inkscape-found_installed.png b/needles/gnome/apps/software/software_inkscape-found_installed.png new file mode 100644 index 00000000..3d384a80 Binary files /dev/null and b/needles/gnome/apps/software/software_inkscape-found_installed.png differ diff --git a/needles/gnome/apps/software/software_inkscape-install_pane-20220630.json b/needles/gnome/apps/software/software_inkscape-install_pane-20220630.json new file mode 100644 index 00000000..05bccb71 --- /dev/null +++ b/needles/gnome/apps/software/software_inkscape-install_pane-20220630.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 43, + "width": 245, + "xpos": 123, + "type": "match", + "ypos": 120 + } + ], + "properties": [], + "tags": [ + "software_inkscape-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_inkscape-install_pane-20220630.png b/needles/gnome/apps/software/software_inkscape-install_pane-20220630.png new file mode 100644 index 00000000..645993c8 Binary files /dev/null and b/needles/gnome/apps/software/software_inkscape-install_pane-20220630.png differ diff --git a/needles/gnome/apps/software/software_inkscape-install_pane.json b/needles/gnome/apps/software/software_inkscape-install_pane.json new file mode 100644 index 00000000..74d50e0d --- /dev/null +++ b/needles/gnome/apps/software/software_inkscape-install_pane.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 123, + "ypos": 131, + "width": 245, + "height": 43, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_inkscape-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_inkscape-install_pane.png b/needles/gnome/apps/software/software_inkscape-install_pane.png new file mode 100644 index 00000000..b7763ad6 Binary files /dev/null and b/needles/gnome/apps/software/software_inkscape-install_pane.png differ diff --git a/needles/gnome/apps/software/software_inkscape-listed.json b/needles/gnome/apps/software/software_inkscape-listed.json new file mode 100644 index 00000000..b4b8d1df --- /dev/null +++ b/needles/gnome/apps/software/software_inkscape-listed.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 245, + "ypos": 322, + "width": 547, + "height": 31, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_inkscape-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_inkscape-listed.png b/needles/gnome/apps/software/software_inkscape-listed.png new file mode 100644 index 00000000..8040e874 Binary files /dev/null and b/needles/gnome/apps/software/software_inkscape-listed.png differ diff --git a/needles/gnome/apps/software/software_installed_button.json b/needles/gnome/apps/software/software_installed_button.json new file mode 100644 index 00000000..d7c1ca80 --- /dev/null +++ b/needles/gnome/apps/software/software_installed_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 41, + "height": 27, + "xpos": 463, + "type": "match", + "width": 92 + } + ], + "properties": [], + "tags": [ + "software_installed_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_installed_button.png b/needles/gnome/apps/software/software_installed_button.png new file mode 100644 index 00000000..36879aef Binary files /dev/null and b/needles/gnome/apps/software/software_installed_button.png differ diff --git a/needles/gnome/apps/software/software_installed_button_active.json b/needles/gnome/apps/software/software_installed_button_active.json new file mode 100644 index 00000000..6d2bc21b --- /dev/null +++ b/needles/gnome/apps/software/software_installed_button_active.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 85, + "height": 21, + "type": "match", + "ypos": 44, + "xpos": 470 + } + ], + "properties": [], + "tags": [ + "software_installed_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_installed_button_active.png b/needles/gnome/apps/software/software_installed_button_active.png new file mode 100644 index 00000000..febcd85f Binary files /dev/null and b/needles/gnome/apps/software/software_installed_button_active.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-found-20220609.json b/needles/gnome/apps/software/software_mahjongg-found-20220609.json new file mode 100644 index 00000000..61a5bbb6 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-found-20220609.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "height": 40, + "xpos": 241, + "ypos": 165, + "width": 545 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-found" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-found-20220609.png b/needles/gnome/apps/software/software_mahjongg-found-20220609.png new file mode 100644 index 00000000..e931cac5 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-found-20220609.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-found-20220630.json b/needles/gnome/apps/software/software_mahjongg-found-20220630.json new file mode 100644 index 00000000..53dadfeb --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-found-20220630.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "ypos": 158, + "height": 40, + "xpos": 241, + "width": 545 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-found" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-found-20220630.png b/needles/gnome/apps/software/software_mahjongg-found-20220630.png new file mode 100644 index 00000000..82fb6321 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-found-20220630.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-found.json b/needles/gnome/apps/software/software_mahjongg-found.json new file mode 100644 index 00000000..d1a03414 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-found.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 243, + "ypos": 168, + "width": 545, + "height": 40, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg-found" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-found.png b/needles/gnome/apps/software/software_mahjongg-found.png new file mode 100644 index 00000000..6759f897 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-found.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.json b/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.json new file mode 100644 index 00000000..17285ef5 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 160, + "type": "match", + "xpos": 241, + "width": 546, + "height": 42 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-found_installed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.png b/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.png new file mode 100644 index 00000000..a85a4029 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-found_installed-20220630.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-found_installed.json b/needles/gnome/apps/software/software_mahjongg-found_installed.json new file mode 100644 index 00000000..b5844d74 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-found_installed.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 241, + "ypos": 167, + "width": 546, + "height": 42, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg-found_installed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-found_installed.png b/needles/gnome/apps/software/software_mahjongg-found_installed.png new file mode 100644 index 00000000..0270693b Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-found_installed.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.json b/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.json new file mode 100644 index 00000000..ebb60683 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "height": 51, + "width": 383, + "ypos": 117, + "xpos": 104 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.png b/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.png new file mode 100644 index 00000000..c6db30dd Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-install_pane-20220628.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-install_pane.json b/needles/gnome/apps/software/software_mahjongg-install_pane.json new file mode 100644 index 00000000..a9a59f37 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-install_pane.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 383, + "height": 51, + "ypos": 117, + "type": "match", + "xpos": 0 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-install_pane" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-install_pane.png b/needles/gnome/apps/software/software_mahjongg-install_pane.png new file mode 100644 index 00000000..6e61e2f7 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-install_pane.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-listed-20220607.json b/needles/gnome/apps/software/software_mahjongg-listed-20220607.json new file mode 100644 index 00000000..a863bd2c --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-listed-20220607.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 237, + "height": 58, + "type": "match", + "width": 555, + "ypos": 484 + } + ], + "properties": [], + "tags": [ + "software_mahjongg-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-listed-20220607.png b/needles/gnome/apps/software/software_mahjongg-listed-20220607.png new file mode 100644 index 00000000..eacbc21c Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-listed-20220607.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-listed-20220609.json b/needles/gnome/apps/software/software_mahjongg-listed-20220609.json new file mode 100644 index 00000000..344f9153 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-listed-20220609.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 555, + "ypos": 298, + "xpos": 237, + "height": 58, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-listed-20220609.png b/needles/gnome/apps/software/software_mahjongg-listed-20220609.png new file mode 100644 index 00000000..e9b7fd97 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-listed-20220609.png differ diff --git a/needles/gnome/apps/software/software_mahjongg-listed.json b/needles/gnome/apps/software/software_mahjongg-listed.json new file mode 100644 index 00000000..2a0cde94 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg-listed.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 236, + "ypos": 205, + "width": 555, + "height": 58, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg-listed" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg-listed.png b/needles/gnome/apps/software/software_mahjongg-listed.png new file mode 100644 index 00000000..fcbfd4e1 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg-listed.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_description.json b/needles/gnome/apps/software/software_mahjongg_description.json new file mode 100644 index 00000000..07df2f86 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_description.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 95, + "ypos": 693, + "width": 328, + "height": 51, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_description" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_description.png b/needles/gnome/apps/software/software_mahjongg_description.png new file mode 100644 index 00000000..de85bf26 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_description.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_icon.json b/needles/gnome/apps/software/software_mahjongg_icon.json new file mode 100644 index 00000000..0e2c997a --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_icon.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 108, + "ypos": 119, + "width": 110, + "height": 85, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_icon" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_icon.png b/needles/gnome/apps/software/software_mahjongg_icon.png new file mode 100644 index 00000000..f06403ec Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_icon.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_name.json b/needles/gnome/apps/software/software_mahjongg_name.json new file mode 100644 index 00000000..a51803d4 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_name.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 248, + "ypos": 130, + "width": 241, + "height": 37, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_name" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_name.png b/needles/gnome/apps/software/software_mahjongg_name.png new file mode 100644 index 00000000..2aeb1a8c Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_name.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_place-20220707.json b/needles/gnome/apps/software/software_mahjongg_place-20220707.json new file mode 100644 index 00000000..b2fac988 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_place-20220707.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 165, + "height": 44, + "width": 76, + "ypos": 642, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_place" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_place-20220707.png b/needles/gnome/apps/software/software_mahjongg_place-20220707.png new file mode 100644 index 00000000..956f9065 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_place-20220707.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_place.json b/needles/gnome/apps/software/software_mahjongg_place.json new file mode 100644 index 00000000..d8f327e1 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_place.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 161, + "ypos": 641, + "width": 84, + "height": 45, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_place" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_place.png b/needles/gnome/apps/software/software_mahjongg_place.png new file mode 100644 index 00000000..9b5ba3c2 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_place.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_safety.json b/needles/gnome/apps/software/software_mahjongg_safety.json new file mode 100644 index 00000000..e4eb71c5 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_safety.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 374, + "ypos": 639, + "width": 67, + "height": 74, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_safety" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_safety.png b/needles/gnome/apps/software/software_mahjongg_safety.png new file mode 100644 index 00000000..570517e0 Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_safety.png differ diff --git a/needles/gnome/apps/software/software_mahjongg_slide.json b/needles/gnome/apps/software/software_mahjongg_slide.json new file mode 100644 index 00000000..005eaab6 --- /dev/null +++ b/needles/gnome/apps/software/software_mahjongg_slide.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 463, + "ypos": 423, + "width": 128, + "height": 89, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_mahjongg_slide" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_mahjongg_slide.png b/needles/gnome/apps/software/software_mahjongg_slide.png new file mode 100644 index 00000000..3a4e31cf Binary files /dev/null and b/needles/gnome/apps/software/software_mahjongg_slide.png differ diff --git a/needles/gnome/apps/software/software_menu_about.json b/needles/gnome/apps/software/software_menu_about.json new file mode 100644 index 00000000..2164fe39 --- /dev/null +++ b/needles/gnome/apps/software/software_menu_about.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 858, + "ypos": 162, + "width": 111, + "height": 19, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_menu_about" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_menu_about.png b/needles/gnome/apps/software/software_menu_about.png new file mode 100644 index 00000000..a6e95f1c Binary files /dev/null and b/needles/gnome/apps/software/software_menu_about.png differ diff --git a/needles/gnome/apps/software/software_menu_repositories.json b/needles/gnome/apps/software/software_menu_repositories.json new file mode 100644 index 00000000..2674325e --- /dev/null +++ b/needles/gnome/apps/software/software_menu_repositories.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 860, + "height": 24, + "ypos": 94, + "width": 148, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_menu_repositories" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_menu_repositories.png b/needles/gnome/apps/software/software_menu_repositories.png new file mode 100644 index 00000000..f28a9adb Binary files /dev/null and b/needles/gnome/apps/software/software_menu_repositories.png differ diff --git a/needles/gnome/apps/software/software_notifications_disabled.json b/needles/gnome/apps/software/software_notifications_disabled.json new file mode 100644 index 00000000..7cd19b43 --- /dev/null +++ b/needles/gnome/apps/software/software_notifications_disabled.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 261, + "height": 23, + "ypos": 468, + "width": 512, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_notifications_disabled" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_notifications_disabled.png b/needles/gnome/apps/software/software_notifications_disabled.png new file mode 100644 index 00000000..16c549a1 Binary files /dev/null and b/needles/gnome/apps/software/software_notifications_disabled.png differ diff --git a/needles/gnome/apps/software/software_remove_button.json b/needles/gnome/apps/software/software_remove_button.json new file mode 100644 index 00000000..913ac723 --- /dev/null +++ b/needles/gnome/apps/software/software_remove_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 895, + "ypos": 160, + "width": 25, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_remove_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_remove_button.png b/needles/gnome/apps/software/software_remove_button.png new file mode 100644 index 00000000..46e4f76e Binary files /dev/null and b/needles/gnome/apps/software/software_remove_button.png differ diff --git a/needles/gnome/apps/software/software_repo_disable.json b/needles/gnome/apps/software/software_repo_disable.json new file mode 100644 index 00000000..b37404cf --- /dev/null +++ b/needles/gnome/apps/software/software_repo_disable.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 452, + "height": 22, + "xpos": 628, + "width": 62, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repo_disable" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_disable.png b/needles/gnome/apps/software/software_repo_disable.png new file mode 100644 index 00000000..6c6b4e27 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_disable.png differ diff --git a/needles/gnome/apps/software/software_repo_fedora_modular-off.json b/needles/gnome/apps/software/software_repo_fedora_modular-off.json new file mode 100644 index 00000000..96ed0f9f --- /dev/null +++ b/needles/gnome/apps/software/software_repo_fedora_modular-off.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 253, + "ypos": 410, + "width": 520, + "height": 48, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repo_fedora_modular", + "software_repo_fedora_modular-off" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_fedora_modular-off.png b/needles/gnome/apps/software/software_repo_fedora_modular-off.png new file mode 100644 index 00000000..ec1f51a9 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_fedora_modular-off.png differ diff --git a/needles/gnome/apps/software/software_repo_fedora_modular-on.json b/needles/gnome/apps/software/software_repo_fedora_modular-on.json new file mode 100644 index 00000000..f31016e9 --- /dev/null +++ b/needles/gnome/apps/software/software_repo_fedora_modular-on.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "ypos": 409, + "width": 516, + "type": "match", + "height": 46, + "xpos": 254 + } + ], + "properties": [], + "tags": [ + "software_repo_fedora_modular", + "software_repo_fedora_modular-on" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_fedora_modular-on.png b/needles/gnome/apps/software/software_repo_fedora_modular-on.png new file mode 100644 index 00000000..02bc9765 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_fedora_modular-on.png differ diff --git a/needles/gnome/apps/software/software_repo_fedora_modular.json b/needles/gnome/apps/software/software_repo_fedora_modular.json new file mode 100644 index 00000000..6a0a1e5e --- /dev/null +++ b/needles/gnome/apps/software/software_repo_fedora_modular.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 123, + "type": "match", + "xpos": 254, + "height": 33, + "ypos": 409 + } + ], + "properties": [], + "tags": [ + "software_repo_fedora_modular" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_fedora_modular.png b/needles/gnome/apps/software/software_repo_fedora_modular.png new file mode 100644 index 00000000..04d128b3 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_fedora_modular.png differ diff --git a/needles/gnome/apps/software/software_repo_test_updates-off.json b/needles/gnome/apps/software/software_repo_test_updates-off.json new file mode 100644 index 00000000..de080a14 --- /dev/null +++ b/needles/gnome/apps/software/software_repo_test_updates-off.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "width": 515, + "ypos": 593, + "xpos": 257, + "height": 61, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repo_test_updates", + "software_repo_test_updates-off" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_test_updates-off.png b/needles/gnome/apps/software/software_repo_test_updates-off.png new file mode 100644 index 00000000..957dc8d4 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_test_updates-off.png differ diff --git a/needles/gnome/apps/software/software_repo_test_updates-on.json b/needles/gnome/apps/software/software_repo_test_updates-on.json new file mode 100644 index 00000000..0dd74a02 --- /dev/null +++ b/needles/gnome/apps/software/software_repo_test_updates-on.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 249, + "ypos": 597, + "width": 522, + "height": 57, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repo_test_updates", + "software_repo_test_updates-on" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_test_updates-on.png b/needles/gnome/apps/software/software_repo_test_updates-on.png new file mode 100644 index 00000000..5b68cb55 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_test_updates-on.png differ diff --git a/needles/gnome/apps/software/software_repo_test_updates.json b/needles/gnome/apps/software/software_repo_test_updates.json new file mode 100644 index 00000000..87f23ba1 --- /dev/null +++ b/needles/gnome/apps/software/software_repo_test_updates.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 373, + "ypos": 595, + "width": 152, + "height": 46, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repo_test_updates" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repo_test_updates.png b/needles/gnome/apps/software/software_repo_test_updates.png new file mode 100644 index 00000000..7f62ed05 Binary files /dev/null and b/needles/gnome/apps/software/software_repo_test_updates.png differ diff --git a/needles/gnome/apps/software/software_repositories.json b/needles/gnome/apps/software/software_repositories.json new file mode 100644 index 00000000..642d6045 --- /dev/null +++ b/needles/gnome/apps/software/software_repositories.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 434, + "height": 20, + "ypos": 126, + "width": 156, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_repositories" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_repositories.png b/needles/gnome/apps/software/software_repositories.png new file mode 100644 index 00000000..13b0bde3 Binary files /dev/null and b/needles/gnome/apps/software/software_repositories.png differ diff --git a/needles/gnome/apps/software/software_source_fedora_flatpak.json b/needles/gnome/apps/software/software_source_fedora_flatpak.json new file mode 100644 index 00000000..46fad1ff --- /dev/null +++ b/needles/gnome/apps/software/software_source_fedora_flatpak.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "width": 147, + "ypos": 106, + "height": 25, + "xpos": 786 + } + ], + "properties": [], + "tags": [ + "software_source_fedora_flatpak" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_source_fedora_flatpak.png b/needles/gnome/apps/software/software_source_fedora_flatpak.png new file mode 100644 index 00000000..6e36491d Binary files /dev/null and b/needles/gnome/apps/software/software_source_fedora_flatpak.png differ diff --git a/needles/gnome/apps/evince/evince_search_button-20210916.json b/needles/gnome/apps/software/software_source_fedora_rpm-20220524.json similarity index 51% rename from needles/gnome/apps/evince/evince_search_button-20210916.json rename to needles/gnome/apps/software/software_source_fedora_rpm-20220524.json index 4d5b762e..d90ab7d1 100644 --- a/needles/gnome/apps/evince/evince_search_button-20210916.json +++ b/needles/gnome/apps/software/software_source_fedora_rpm-20220524.json @@ -1,15 +1,15 @@ { "area": [ { - "width": 26, - "type": "match", - "ypos": 42, + "ypos": 217, "height": 24, - "xpos": 897 + "xpos": 783, + "type": "match", + "width": 139 } ], "properties": [], "tags": [ - "evince_search_button" + "software_source_fedora_rpm" ] } \ No newline at end of file diff --git a/needles/gnome/apps/software/software_source_fedora_rpm-20220524.png b/needles/gnome/apps/software/software_source_fedora_rpm-20220524.png new file mode 100644 index 00000000..20914ddf Binary files /dev/null and b/needles/gnome/apps/software/software_source_fedora_rpm-20220524.png differ diff --git a/needles/gnome/apps/software/software_source_fedora_rpm.json b/needles/gnome/apps/software/software_source_fedora_rpm.json new file mode 100644 index 00000000..f5a03c4f --- /dev/null +++ b/needles/gnome/apps/software/software_source_fedora_rpm.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 742, + "ypos": 241, + "width": 139, + "height": 24, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_source_fedora_rpm" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_source_fedora_rpm.png b/needles/gnome/apps/software/software_source_fedora_rpm.png new file mode 100644 index 00000000..b5ce5887 Binary files /dev/null and b/needles/gnome/apps/software/software_source_fedora_rpm.png differ diff --git a/needles/gnome/apps/software/software_sources_available_flatpak.json b/needles/gnome/apps/software/software_sources_available_flatpak.json new file mode 100644 index 00000000..c2e64e97 --- /dev/null +++ b/needles/gnome/apps/software/software_sources_available_flatpak.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "width": 179, + "type": "match", + "xpos": 795, + "ypos": 45, + "height": 22 + } + ], + "properties": [], + "tags": [ + "software_sources_available", + "software_sources_available_flatpak" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_sources_available_flatpak.png b/needles/gnome/apps/software/software_sources_available_flatpak.png new file mode 100644 index 00000000..4c579e94 Binary files /dev/null and b/needles/gnome/apps/software/software_sources_available_flatpak.png differ diff --git a/needles/gnome/apps/software/software_sources_available_rpm.json b/needles/gnome/apps/software/software_sources_available_rpm.json new file mode 100644 index 00000000..813359d4 --- /dev/null +++ b/needles/gnome/apps/software/software_sources_available_rpm.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "height": 21, + "ypos": 46, + "xpos": 810, + "width": 160, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_sources_available", + "software_sources_available_rpm" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_sources_available_rpm.png b/needles/gnome/apps/software/software_sources_available_rpm.png new file mode 100644 index 00000000..f939e021 Binary files /dev/null and b/needles/gnome/apps/software/software_sources_available_rpm.png differ diff --git a/needles/gnome/apps/software/software_update_notifications-20220525.json b/needles/gnome/apps/software/software_update_notifications-20220525.json new file mode 100644 index 00000000..f08a1943 --- /dev/null +++ b/needles/gnome/apps/software/software_update_notifications-20220525.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 213, + "type": "match", + "xpos": 264, + "ypos": 471, + "height": 18 + } + ], + "properties": [], + "tags": [ + "software_update_notifications" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_update_notifications-20220525.png b/needles/gnome/apps/software/software_update_notifications-20220525.png new file mode 100644 index 00000000..70fa37bb Binary files /dev/null and b/needles/gnome/apps/software/software_update_notifications-20220525.png differ diff --git a/needles/gnome/apps/software/software_update_notifications.json b/needles/gnome/apps/software/software_update_notifications.json new file mode 100644 index 00000000..dc4a1dd4 --- /dev/null +++ b/needles/gnome/apps/software/software_update_notifications.json @@ -0,0 +1,25 @@ +{ + "area": [ + { +<<<<<<<< HEAD:needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json + "xpos": 971, + "ypos": 191, + "width": 19, +======== + "xpos": 258, + "ypos": 446, + "width": 213, +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_update_notifications.json + "height": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ +<<<<<<<< HEAD:needles/gnome/apps/nautilus/nautilus_star_selected_file-20220811.json + "nautilus_star_selected_file" +======== + "software_update_notifications" +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_update_notifications.json + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_update_notifications.png b/needles/gnome/apps/software/software_update_notifications.png new file mode 100644 index 00000000..7404b241 Binary files /dev/null and b/needles/gnome/apps/software/software_update_notifications.png differ diff --git a/needles/gnome/apps/software/software_update_preferences.json b/needles/gnome/apps/software/software_update_preferences.json new file mode 100644 index 00000000..6fd4fbd3 --- /dev/null +++ b/needles/gnome/apps/software/software_update_preferences.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 858, + "height": 23, + "ypos": 130, + "width": 140, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_update_preferences" + ] +} \ No newline at end of file diff --git a/needles/gnome/apps/software/software_update_preferences.png b/needles/gnome/apps/software/software_update_preferences.png new file mode 100644 index 00000000..f28a9adb Binary files /dev/null and b/needles/gnome/apps/software/software_update_preferences.png differ diff --git a/needles/gnome/apps/weather/weather_report_hourly_later.json b/needles/gnome/apps/weather/weather_report_hourly_later.json index 32151541..3c9a440e 100644 --- a/needles/gnome/apps/weather/weather_report_hourly_later.json +++ b/needles/gnome/apps/weather/weather_report_hourly_later.json @@ -1,3 +1,4 @@ +<<<<<<<< HEAD:needles/gnome/apps/weather/weather_report_hourly_later.json { "area": [ { @@ -12,4 +13,20 @@ "tags": [ "weather_report_hourly" ] +======== +{ + "area": [ + { + "xpos": 240, + "ypos": 169, + "width": 137, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "software_inkscape-found" + ] +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/apps/software/software_inkscape-found.json } \ No newline at end of file diff --git a/needles/gnome/desktop_package_tool_update-gnome-20210723.json b/needles/gnome/desktop_package_tool_update-gnome-20210723.json index bd3514cd..f4bb3021 100644 --- a/needles/gnome/desktop_package_tool_update-gnome-20210723.json +++ b/needles/gnome/desktop_package_tool_update-gnome-20210723.json @@ -10,7 +10,8 @@ ], "properties": [], "tags": [ + "apps_run_software", "desktop_package_tool_update", "DESKTOP-gnome" ] -} \ No newline at end of file +} diff --git a/needles/gnome/desktop_package_tool_update-gnome-20220112.json b/needles/gnome/desktop_package_tool_update-gnome-20220112.json index 915bb39a..9dede6a4 100644 --- a/needles/gnome/desktop_package_tool_update-gnome-20220112.json +++ b/needles/gnome/desktop_package_tool_update-gnome-20220112.json @@ -10,7 +10,8 @@ ], "properties": [], "tags": [ + "apps_run_software", "desktop_package_tool_update", "DESKTOP-gnome" ] -} \ No newline at end of file +} diff --git a/needles/gnome/desktop_package_tool_update-gnome-20220219.json b/needles/gnome/desktop_package_tool_update-gnome-20220219.json index ebe74c4d..78efeecf 100644 --- a/needles/gnome/desktop_package_tool_update-gnome-20220219.json +++ b/needles/gnome/desktop_package_tool_update-gnome-20220219.json @@ -10,7 +10,8 @@ ], "properties": [], "tags": [ + "apps_run_software", "desktop_package_tool_update", "DESKTOP-gnome" ] -} \ No newline at end of file +} diff --git a/needles/gnome/desktop_package_tool_update-gnome-gtk3245-20190207.json b/needles/gnome/desktop_package_tool_update-gnome-gtk3245-20190207.json index ec25fed4..a6517e5f 100644 --- a/needles/gnome/desktop_package_tool_update-gnome-gtk3245-20190207.json +++ b/needles/gnome/desktop_package_tool_update-gnome-gtk3245-20190207.json @@ -10,7 +10,8 @@ ], "properties": [], "tags": [ + "apps_run_software", "desktop_package_tool_update", "DESKTOP-gnome" ] -} \ No newline at end of file +} diff --git a/needles/gnome/gnome_button_credits-bold.json b/needles/gnome/gnome_button_credits-bold.json index 433a7fc4..2164fe39 100644 --- a/needles/gnome/gnome_button_credits-bold.json +++ b/needles/gnome/gnome_button_credits-bold.json @@ -1,15 +1,15 @@ { "area": [ { - "xpos": 550, - "ypos": 221, - "width": 56, + "xpos": 858, + "ypos": 162, + "width": 111, "height": 19, "type": "match" } ], "properties": [], "tags": [ - "gnome_button_credits" + "software_menu_about" ] } \ No newline at end of file diff --git a/needles/gnome/gnome_button_credits-eog-dark.json b/needles/gnome/gnome_button_credits-eog-dark.json index b28e9961..f5e48049 100644 --- a/needles/gnome/gnome_button_credits-eog-dark.json +++ b/needles/gnome/gnome_button_credits-eog-dark.json @@ -10,6 +10,10 @@ ], "properties": [], "tags": [ +<<<<<<<< HEAD:needles/gnome/gnome_button_credits-eog-dark.json "gnome_button_credits" +======== + "gnome_credits_button" +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/gnome_credits_button-dark.json ] } diff --git a/needles/gnome/gnome_credits_button-dark.json b/needles/gnome/gnome_credits_button-dark.json new file mode 100644 index 00000000..f5e48049 --- /dev/null +++ b/needles/gnome/gnome_credits_button-dark.json @@ -0,0 +1,19 @@ +{ + "area": [ + { + "xpos": 543, + "ypos": 227, + "width": 56, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ +<<<<<<<< HEAD:needles/gnome/gnome_button_credits-eog-dark.json + "gnome_button_credits" +======== + "gnome_credits_button" +>>>>>>>> e0a281f8 (Create a test suite for Gnome Software.):needles/gnome/gnome_credits_button-dark.json + ] +} diff --git a/needles/gnome/gnome_credits_button-dark.png b/needles/gnome/gnome_credits_button-dark.png new file mode 100644 index 00000000..7e12dd53 Binary files /dev/null and b/needles/gnome/gnome_credits_button-dark.png differ diff --git a/needles/gnome/gnome_credits_button-regular-20220713.json b/needles/gnome/gnome_credits_button-regular-20220713.json new file mode 100644 index 00000000..3581615d --- /dev/null +++ b/needles/gnome/gnome_credits_button-regular-20220713.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "type": "match", + "ypos": 224, + "height": 20, + "xpos": 545, + "width": 52 + } + ], + "properties": [], + "tags": [ + "gnome_credits_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/gnome_credits_button-regular-20220713.png b/needles/gnome/gnome_credits_button-regular-20220713.png new file mode 100644 index 00000000..539f5f56 Binary files /dev/null and b/needles/gnome/gnome_credits_button-regular-20220713.png differ diff --git a/needles/gnome/gnome_credits_button.json b/needles/gnome/gnome_credits_button.json new file mode 100644 index 00000000..ce9926fb --- /dev/null +++ b/needles/gnome/gnome_credits_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "height": 20, + "type": "match", + "width": 58, + "xpos": 551, + "ypos": 243 + } + ], + "properties": [], + "tags": [ + "gnome_credits_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/gnome_credits_button.png b/needles/gnome/gnome_credits_button.png new file mode 100644 index 00000000..86ad4849 Binary files /dev/null and b/needles/gnome/gnome_credits_button.png differ diff --git a/needles/gnome/gnome_install_button.json b/needles/gnome/gnome_install_button.json new file mode 100644 index 00000000..330a08ce --- /dev/null +++ b/needles/gnome/gnome_install_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 49, + "type": "match", + "height": 22, + "ypos": 159, + "xpos": 846 + } + ], + "properties": [], + "tags": [ + "gnome_install_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/gnome_install_button.png b/needles/gnome/gnome_install_button.png new file mode 100644 index 00000000..f6cc2686 Binary files /dev/null and b/needles/gnome/gnome_install_button.png differ diff --git a/needles/gnome/gnome_search_button-20220531.json b/needles/gnome/gnome_search_button-20220531.json new file mode 100644 index 00000000..9911cfdf --- /dev/null +++ b/needles/gnome/gnome_search_button-20220531.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 29, + "type": "match", + "ypos": 41, + "height": 28, + "xpos": 9 + } + ], + "properties": [], + "tags": [ + "gnome_search_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/gnome_search_button-20220531.png b/needles/gnome/gnome_search_button-20220531.png new file mode 100644 index 00000000..2ed822ac Binary files /dev/null and b/needles/gnome/gnome_search_button-20220531.png differ diff --git a/needles/gnome/gnome_search_button.json b/needles/gnome/gnome_search_button.json new file mode 100644 index 00000000..c67df037 --- /dev/null +++ b/needles/gnome/gnome_search_button.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "height": 24, + "type": "match", + "match": 90, + "width": 24, + "xpos": 11, + "ypos": 44 + } + ], + "properties": [], + "tags": [ + "gnome_search_button" + ] +} diff --git a/needles/gnome/gnome_search_button.png b/needles/gnome/gnome_search_button.png new file mode 100644 index 00000000..de1ef8c8 Binary files /dev/null and b/needles/gnome/gnome_search_button.png differ diff --git a/needles/gnome/gnome_uninstall_button.json b/needles/gnome/gnome_uninstall_button.json new file mode 100644 index 00000000..acb6b416 --- /dev/null +++ b/needles/gnome/gnome_uninstall_button.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 602, + "ypos": 441, + "width": 72, + "height": 25, + "type": "match" + } + ], + "properties": [], + "tags": [ + "gnome_uninstall_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/gnome_uninstall_button.png b/needles/gnome/gnome_uninstall_button.png new file mode 100644 index 00000000..77fe880a Binary files /dev/null and b/needles/gnome/gnome_uninstall_button.png differ diff --git a/templates.fif.json b/templates.fif.json index 71da2711..1ddc2ec1 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -1206,6 +1206,7 @@ "fedora-Silverblue-dvd_ostree-iso-x86_64-*-64bit": 50, "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 20, "fedora-Workstation-live-iso-x86_64-*-64bit": 20, + "fedora-Workstation-upgrade-x86_64-*-64bit": 40, "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22 }, @@ -1216,6 +1217,23 @@ "START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%" } }, + "software": { + "profiles": { + "fedora-Silverblue-dvd_ostree-iso-ppc64le-*-ppc64le": 50, + "fedora-Silverblue-dvd_ostree-iso-x86_64-*-64bit": 50, + "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 20, + "fedora-Workstation-live-iso-x86_64-*-64bit": 20, + "fedora-Workstation-upgrade-x86_64-*-64bit": 40, + "fedora-Workstation-upgrade-aarch64-*-aarch64": 40, + "fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22 + }, + "settings": { + "BOOTFROM": "c", + "HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2", + "POSTINSTALL_PATH": "tests/applications/software", + "START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%" + } + }, "weather": { "profiles": { "fedora-Silverblue-dvd_ostree-iso-ppc64le-*-ppc64le": 50, @@ -1229,6 +1247,9 @@ "BOOTFROM": "c", "HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2", "POSTINSTALL_PATH": "tests/applications/weather", +======= + "POSTINSTALL_PATH": "tests/applications/software", +>>>>>>> e0a281f8 (Create a test suite for Gnome Software.) "START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%" } }, diff --git a/tests/applications/clocks/about.pm b/tests/applications/clocks/about.pm index 4bda6811..cc3f28b4 100644 --- a/tests/applications/clocks/about.pm +++ b/tests/applications/clocks/about.pm @@ -14,7 +14,7 @@ sub run { # Click on About Clocks to see the About info. assert_and_click("clocks_menu_about"); assert_screen("clocks_about_displayed"); - assert_and_click("gnome_button_credits"); + assert_and_click("gnome_credits_button"); assert_screen("clocks_credits_shown"); } diff --git a/tests/applications/evince/search.pm b/tests/applications/evince/search.pm index e1d42bd1..d9db8fc7 100644 --- a/tests/applications/evince/search.pm +++ b/tests/applications/evince/search.pm @@ -9,7 +9,7 @@ sub run { my $self = shift; # Click on the Search button to search for text - assert_and_click("evince_search_button", button => "left", timeout => 30); + assert_and_click("gnome_search_button", button => "left", timeout => 30); # Type *pages*. type_very_safely("pages"); diff --git a/tests/applications/software/aaa_setup.pm b/tests/applications/software/aaa_setup.pm new file mode 100644 index 00000000..d99d87b3 --- /dev/null +++ b/tests/applications/software/aaa_setup.pm @@ -0,0 +1,45 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script will prepare the installation for Software tests: +# a) it will switch off blanking the monitor on inactivity +# b) it will make serial console writable for normal users. + +sub run { + my $self = shift; + + # Switch to console to make necessary settings and + # make the serial console writable. + # First, we will log onto a user console. + send_key("ctrl-alt-f3"); + wait_still_screen(3); + console_login(user => get_var("USER_LOGIN", "test"), password => get_var("USER_PASSWORD", "weakpassword")); + # Make serial console writable for normal users. + make_serial_writable(); + + # Use gsettings to disable the power management in the VM. + assert_script_run("gsettings set org.gnome.desktop.screensaver idle-activation-enabled false"); + assert_script_run("gsettings set org.gnome.desktop.session idle-delay 0"); + assert_script_run("gsettings set org.gnome.settings-daemon.plugins.power idle-dim false"); + + # Return to the Desktop + desktop_vt(); + + # Start the Software + start_gnome_software(); + # Wait for things to settle a bit before snapshotting + wait_still_screen(5); +} + +sub test_flags { + # If this script fails, there is no need to continue. If it passes + # it will set up a milestone for the following tests. + return {fatal => 1, milestone => 1}; +} + +1; + +# vim: set sw=4 et: diff --git a/tests/applications/software/about.pm b/tests/applications/software/about.pm new file mode 100644 index 00000000..b78337b2 --- /dev/null +++ b/tests/applications/software/about.pm @@ -0,0 +1,36 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; + +# This script checks that the About section can be displayed +# in Software. + +sub run { + my $self = shift; + + # Open the menu + assert_and_click("gnome_burger_menu"); + wait_still_screen(2); + + # Click on the About menu item. + assert_and_click("software_menu_about"); + + # Check that About is shown. + assert_screen("software_about"); + + # The About dialogue also has a Credits tab, click on that. + assert_and_click("gnome_credits_button"); + + # Check that the Credits tab is displayed. + assert_screen("software_credits"); +} + +sub test_flags { + # When finished, rollback to the last milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: diff --git a/tests/applications/software/install_flatpak.pm b/tests/applications/software/install_flatpak.pm new file mode 100644 index 00000000..7d7189ea --- /dev/null +++ b/tests/applications/software/install_flatpak.pm @@ -0,0 +1,43 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software can install applications from Flatpaks. + +sub run { + my $self = shift; + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + # Install the application using Flatpak + install_application("inkscape", "flatpak"); + + # Check that it has been installed using the GUI tools. + check_app_installed("inkscape"); + + # Start the application using the Software to confirm + # it can be opened directly. + start_application_via_packagemanager("inkscape"); + + # Although the GUI tells us that the installation was successful, + # we should also check in the background, so we move to the CLI + # and perform an easy check there. + $self->root_console(tty => 3); + assert_script_run("flatpak list | grep Inkscape"); +} + +sub test_flags { + # When finished, rollback to the milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/install_multi_rpm.pm b/tests/applications/software/install_multi_rpm.pm new file mode 100644 index 00000000..df75c6c8 --- /dev/null +++ b/tests/applications/software/install_multi_rpm.pm @@ -0,0 +1,55 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software can install multiple applications +# one after another without waiting for any installation to complete. +# In order not to spend time waiting, we will only use RPM as installation +# sources in this test. + +# As we will perform three consecutive installations, we do not want to +# repeat the code, so let's create a subroutine to handle one installation. + +# Main part +sub run { + my $self = shift; + + unless (get_var("SUBVARIANT") eq "Silverblue") { + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + # Perform all installations one after another. + install_application("mahjongg", "rpm"); + install_application("gvim", "rpm"); + install_application("emacs", "rpm"); + + # Check that the installations have completed successfully. + check_app_installed("mahjongg"); + check_app_installed("gvim"); + check_app_installed("emacs"); + + # Also confirm using the CLI method. + $self->root_console(tty => 3); + assert_script_run("rpm -qa gnome-mahjongg"); + assert_script_run("rpm -qa vim-X11"); + assert_script_run("rpm -qa emacs"); + } + else { + record_info("Silverblue override", "The test has been skipped because the functionality is not available on Silverblue."); + } +} + +sub test_flags { + # When finished, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/install_rpm.pm b/tests/applications/software/install_rpm.pm new file mode 100644 index 00000000..32fe5e3e --- /dev/null +++ b/tests/applications/software/install_rpm.pm @@ -0,0 +1,54 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software can install applications from RPMs, verify +# the installation and open the application directly from Software. + +# We copied the subroutine from the install_multi_rpms.pm and adapted it +# to only install one single application. +# We have decided to duplicate that code here and not place in the library, +# as we will probably not use it anywhere else than this Software test. + + + +sub run { + my $self = shift; + + unless (get_var("SUBVARIANT") eq "Silverblue") { + # Sometimes, after rollback, Software crashes. If it + # happens, let's restart it. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + # Install the application. + install_application("mahjongg", "rpm"); + wait_still_screen(10); + # Check that it is installed. + check_app_installed("mahjongg"); + # Start it from Software. + start_application_via_packagemanager("mahjongg"); + + # Confirm that it has been installed using CLI tools. + # Switch to console + $self->root_console(tty => 3); + # Check that the rpm is installed. + assert_script_run("rpm -qa gnome-mahjongg"); + } + else { + record_info("Silverblue override", "This test has been skipped because the functionality is not available on Silverblue."); + } +} + +sub test_flags { + # When finished, rollback to milestone + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/list_installed.pm.mask b/tests/applications/software/list_installed.pm.mask new file mode 100644 index 00000000..19cf480a --- /dev/null +++ b/tests/applications/software/list_installed.pm.mask @@ -0,0 +1,57 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; + +# With installation tests, we have already proven that Software +# can list applications installed with it. This test checks +# if applications installed using different methods (DNF) +# are also listed correctly. + +sub run { + my $self = shift; + + # We will switch to the console and perform the installation + # of the packages. + $self->root_console(tty=>3); + script_run("dnf install -y gnome-mahjongg", timeout => 240); + + # Sometimes, PackageKit does not know about the changed status + # until the computer is restared, or PackageKit is refreshed. + # Let's refresh it by force to make sure we have done all we could. + script_run("pkcon refresh force", timeout => 240); + + # Return to the GUI + desktop_vt(); + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless(check_screen("apps_run_software")) { + restart_application("software"); + } + + # Search for the application and confirm its status + assert_and_click("gnome_search_button"); + type_very_safely("mahjongg"); + send_key("ret"); + assert_screen("software_mahjongg_found_installed"); + + # Go to the Installed view to see the list of all installed + # applications and find the new application there. + assert_and_click("software_installed_button"); + wait_still_screen(2); + # We know that currently this part of the test will fail as there is + # a known and reported bug #1950037. + send_key_until_needlematch("software_mahjongg_listed", "tab", 100); + record_info("Known bug", "This is due to a long known bug.", result => "ok"); + +} + +sub test_flags { + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/remove_flatpak.pm b/tests/applications/software/remove_flatpak.pm new file mode 100644 index 00000000..104e1684 --- /dev/null +++ b/tests/applications/software/remove_flatpak.pm @@ -0,0 +1,46 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software can remove a previously installed Flatpak applications. + +sub run { + my $self = shift; + + # Prerequisites for the test. + $self->root_console(tty => 3); + script_run("flatpak install -y org.inkscape.Inkscape", timeout => 1000); + desktop_vt(); + + # Sometimes, Software crashes at this point. + # If that is the case, restart it. + unless (check_screen("apps_run_software", timeout => 10)) { + restart_application("software"); + } + + # Remove the application + remove_application("inkscape"); + + # Now, let us check that the application has been correctly installed. + # We use the CLI method. + $self->root_console(tty => 3); + # Check that the application is not installed. + # The following command returns 0 if successful which is interpreted as False + # by Perl. The test will pass if the number is different from 0 and therefore + # True. + unless (script_run("flatpak list | grep Inkscape")) { + die("The application is still installed, but it should not be."); + } +} + +sub test_flags { + # When finished, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/remove_rpm.pm b/tests/applications/software/remove_rpm.pm new file mode 100644 index 00000000..562d9692 --- /dev/null +++ b/tests/applications/software/remove_rpm.pm @@ -0,0 +1,46 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software can remove a previously installed RPM applications. + +sub run { + my $self = shift; + + unless (get_var("SUBVARIANT") eq "Silverblue") { + # Test prerequisites. + $self->root_console(tty => 3); + script_run("dnf install -y gnome-mahjongg", timeout => 240); + script_run("pkcon refresh force", timeout => 240); + desktop_vt(); + + # Sometimes, the Software might crash here. If that happens, + # let's restart it. + # + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + # Remove the application + remove_application("mahjongg"); + + # Check in the CLI that the application has been correctly removed. + $self->root_console(tty => 3); + assert_script_run("! rpm -q gnome-mahjongg"); + } + else { + record_info("Silverblue override", "This test has been skipped because the functionality is not available on Silverblue."); + } +} + +sub test_flags { + # When finish, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/repositories.pm b/tests/applications/software/repositories.pm new file mode 100644 index 00000000..76d9ce7a --- /dev/null +++ b/tests/applications/software/repositories.pm @@ -0,0 +1,107 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script checks that the Software repositories can be shown +# and toggled in Software. + +# This subroutine does the repository switching. +sub toggle_repo_status { + # The $status identifies the status we want to end up with. + my ($repository, $status) = @_; + # If the $status differ from the current status quo, then + # we need to do the actually toggle. + unless (check_screen("software_repo_$repository-$status")) { + # Click on the $needle to toggle the repository + assert_and_click($repository); + # If we want to switch the repository to "off", then a dialogue appears that asks us + # to confirm that we want to disable the repository. Let's click on the disable button. + if ($status eq "off") { + assert_and_click("software_repo_disable"); + } + # Toggling a repo is an administrative task that needs permissions. When no permission + # has been obtained prior to this operation, an authentication dialogue appears + # and we need to provide the user password to enable the operation. + if (check_screen("auth_required", timeout => 10)) { + type_safely(get_var('USER_PASSWORD') || "weakpassword"); + send_key("ret"); + # Wait for the screen to get still. + wait_still_screen(3); + } + } + # Now, let us check that the repository was successfully toggled by + # comparing the repository status against the off needle. + # If this time, the statuses still don't match, let's die with a message, + # as it seems that the repository cannot be toggled. + # However, sometimes it takes a little time before the toggle button + # reacts, so wait a bit to give it some time. + wait_still_screen(10); + # Check the repo status or die + if (check_screen("software_repo_$repository-$status")) { + die("The repository status does not match the expected situation."); + } +} + +sub run { + my $self = shift; + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + # Open the menu + assert_and_click("gnome_burger_menu"); + wait_still_screen(2); + # Open the Repositories overview + assert_and_click("software_menu_repositories"); + # Check that Repositories are shown + assert_screen("software_repositories"); + wait_still_screen(5); + + # Find the Fedora Test Updates repository, switch to the switcher button + # and toggle the repo to ON. + send_key_until_needlematch("software_repo_test_updates", 'tab'); + + toggle_repo_status("software_repo_test_updates", "on"); + + # Find Fedora Modular repository, switch to the switcher button + # and toggle the repo to OFF. + send_key_until_needlematch("software_repo_fedora_modular", 'tab'); + toggle_repo_status("software_repo_fedora_modular", "off"); + + # Switch to the root console to check if the repositories were + # correctly switched off and on. + $self->root_console(tty => 3); + # Check that updates testing is switched on. + # Mind that the script_run returns the exit code, which is interpreted by Perl + # in an opposite way, therefore if the exit code is 1, we expect True in Perl. + if (script_run("dnf repolist | grep updates-testing")) { + die("The updates testing repository is not switched on, but should be."); + } + # On Rawhide, the installation actually includes the fedora-modular + # as well as the rawhide-modular repository and the one that gets + # switched off is the rawhide-modular. Therefore, we need to distinguish + # according to the version. + my $version = "fedora"; + if (get_var('VERSION') eq "Rawhide") { + $version = "rawhide"; + } + unless (script_run("dnf repolist | grep $version-modular")) { + die("The Modular repository is not switched off, but should be."); + } +} + +sub test_flags { + # When finished, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + + diff --git a/tests/applications/software/show_details.pm b/tests/applications/software/show_details.pm new file mode 100644 index 00000000..f6dd5569 --- /dev/null +++ b/tests/applications/software/show_details.pm @@ -0,0 +1,46 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script tests if Software shows some details on the application screen. + +sub run { + my $self = shift; + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + # Search for the application and navigate to its screen. + assert_and_click("gnome_search_button"); + wait_still_screen(2); + type_safely("mahjongg"); + assert_and_click("software_mahjongg-found"); + wait_still_screen(2); + assert_screen("software_mahjongg-install_pane"); + + # Check various info. + assert_and_click("software_mahjongg_name"); + assert_screen("software_mahjongg_icon"); + assert_screen("software_mahjongg_slide"); + assert_screen("software_mahjongg_description"); + + # Hit several down arrows to reach more informations. + send_key_until_needlematch("software_mahjongg_place", "down"); + # Check for application safety. + assert_and_click("software_mahjongg_safety"); +} + +sub test_flags { + # When finished, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: + diff --git a/tests/applications/software/update_settings.pm b/tests/applications/software/update_settings.pm new file mode 100644 index 00000000..765e1685 --- /dev/null +++ b/tests/applications/software/update_settings.pm @@ -0,0 +1,52 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; +use desktoptools; + +# This script checks that automatic updates can be switched on. + +sub run { + my $self = shift; + + # Sometimes, Software crashes after the VM has been rolled back. + # If so, restart the application. + unless (check_screen("apps_run_software")) { + restart_application("software"); + } + + + # Open the menu + assert_and_click("gnome_burger_menu"); + wait_still_screen(2); + + # Open the Update selections information + assert_and_click("software_update_preferences"); + wait_still_screen(2); + + # Disable automatic updates and check that the status changes + assert_and_click("software_automatic_updates"); + assert_screen("software_automatic_disabled"); + + # Disable updates notifications and check that the status changes + assert_and_click("software_update_notifications"); + assert_screen("software_notifications_disabled"); + + # Switch to console to run background checks, too. + send_key("ctrl-alt-f3"); + sleep 5; + console_login(user => "test", password => get_var("USER_PASSWORD") || "weakpassword"); + # Check that the settings above was switched off. + validate_script_output("gsettings get org.gnome.software download-updates", sub { m/false/ }); + validate_script_output("gsettings get org.gnome.software download-updates-notify", sub { m/false/ }); + +} + +sub test_flags { + # When finished, rollback to milestone. + return {always_rollback => 1}; +} + +1; + +# vim: set sw=4 et: diff --git a/tests/desktop_update_graphical.pm b/tests/desktop_update_graphical.pm index 3ec6c6e2..7ccebfda 100644 --- a/tests/desktop_update_graphical.pm +++ b/tests/desktop_update_graphical.pm @@ -32,8 +32,6 @@ sub run { wait_still_screen 2; } else { - # this launches GNOME Software on GNOME, dunno for any other - # desktop yet sleep 3; menu_launch_type('update'); }