Create a test suite for Gnome Software.
@ -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',
|
||||
|
148
lib/desktoptools.pm
Normal file
@ -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");
|
||||
}
|
@ -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);
|
||||
|
44
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;
|
||||
|
15
needles/gnome/apps/apps_run_inkscape.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 211,
|
||||
"ypos": 122,
|
||||
"width": 250,
|
||||
"height": 65,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"apps_run_inkscape"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/apps_run_inkscape.png
Normal file
After Width: | Height: | Size: 132 KiB |
15
needles/gnome/apps/apps_run_mahjongg.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 115,
|
||||
"ypos": 5,
|
||||
"width": 98,
|
||||
"height": 23,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"apps_run_mahjongg"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/apps_run_mahjongg.png
Normal file
After Width: | Height: | Size: 170 KiB |
Before Width: | Height: | Size: 95 KiB |
@ -1,15 +0,0 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 897,
|
||||
"width": 26,
|
||||
"type": "match",
|
||||
"ypos": 42,
|
||||
"height": 24
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"evince_search_button"
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 95 KiB |
@ -1,15 +0,0 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 897,
|
||||
"type": "match",
|
||||
"ypos": 42,
|
||||
"width": 26,
|
||||
"height": 24
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"evince_search_button"
|
||||
]
|
||||
}
|
Before Width: | Height: | Size: 95 KiB |
15
needles/gnome/apps/gnome_search_button-20220531.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 29,
|
||||
"type": "match",
|
||||
"ypos": 41,
|
||||
"height": 28,
|
||||
"xpos": 9
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"gnome_search_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/gnome_search_button-20220531.png
Normal file
After Width: | Height: | Size: 27 KiB |
15
needles/gnome/apps/gnome_uninstall_button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 602,
|
||||
"ypos": 441,
|
||||
"width": 72,
|
||||
"height": 25,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"gnome_uninstall_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/gnome_uninstall_button.png
Normal file
After Width: | Height: | Size: 103 KiB |
@ -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
|
||||
]
|
||||
}
|
15
needles/gnome/apps/software/software_about.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 481,
|
||||
"ypos": 321,
|
||||
"width": 62,
|
||||
"height": 64,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_about"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_about.png
Normal file
After Width: | Height: | Size: 78 KiB |
15
needles/gnome/apps/software/software_automatic_disabled.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 511,
|
||||
"type": "match",
|
||||
"xpos": 265,
|
||||
"ypos": 411,
|
||||
"height": 25
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_automatic_disabled"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_automatic_disabled.png
Normal file
After Width: | Height: | Size: 83 KiB |
15
needles/gnome/apps/software/software_automatic_updates.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 411,
|
||||
"height": 23,
|
||||
"xpos": 264,
|
||||
"width": 129,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_automatic_updates"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_automatic_updates.png
Normal file
After Width: | Height: | Size: 83 KiB |
15
needles/gnome/apps/software/software_back_button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"width": 24,
|
||||
"xpos": 13,
|
||||
"height": 20,
|
||||
"ypos": 45
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_back_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_back_button.png
Normal file
After Width: | Height: | Size: 305 KiB |
15
needles/gnome/apps/software/software_credits.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 422,
|
||||
"ypos": 461,
|
||||
"height": 20,
|
||||
"width": 160,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_credits"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_credits.png
Normal file
After Width: | Height: | Size: 77 KiB |
15
needles/gnome/apps/software/software_emacs-found.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 248,
|
||||
"ypos": 164,
|
||||
"width": 149,
|
||||
"height": 27,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_emacs-found"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_emacs-found.png
Normal file
After Width: | Height: | Size: 30 KiB |
@ -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"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_emacs-found_installed.png
Normal file
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 121,
|
||||
"ypos": 134,
|
||||
"width": 281,
|
||||
"height": 42,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_emacs-install_pane"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 200 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 30,
|
||||
"width": 537,
|
||||
"type": "match",
|
||||
"ypos": 602,
|
||||
"xpos": 249
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_emacs-listed"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_emacs-listed-20220629.png
Normal file
After Width: | Height: | Size: 56 KiB |
15
needles/gnome/apps/software/software_emacs-listed.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 249,
|
||||
"ypos": 695,
|
||||
"type": "match",
|
||||
"height": 30,
|
||||
"width": 537
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_emacs-listed"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_emacs-listed.png
Normal file
After Width: | Height: | Size: 53 KiB |
15
needles/gnome/apps/software/software_gvim-found.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 238,
|
||||
"ypos": 163,
|
||||
"width": 120,
|
||||
"height": 26,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_gvim-found"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_gvim-found.png
Normal file
After Width: | Height: | Size: 19 KiB |
@ -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"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_gvim-found_installed.png
Normal file
After Width: | Height: | Size: 20 KiB |
15
needles/gnome/apps/software/software_gvim-install_pane.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 113,
|
||||
"ypos": 116,
|
||||
"width": 210,
|
||||
"height": 58,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_gvim-install_pane"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_gvim-install_pane.png
Normal file
After Width: | Height: | Size: 122 KiB |
15
needles/gnome/apps/software/software_gvim-listed.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 242,
|
||||
"ypos": 232,
|
||||
"width": 548,
|
||||
"height": 26,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_gvim-listed"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_gvim-listed.png
Normal file
After Width: | Height: | Size: 57 KiB |
32
needles/gnome/apps/software/software_inkscape-found.json
Normal file
@ -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
|
||||
}
|
BIN
needles/gnome/apps/software/software_inkscape-found.png
Normal file
After Width: | Height: | Size: 22 KiB |
@ -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"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 23 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 43,
|
||||
"width": 245,
|
||||
"xpos": 123,
|
||||
"type": "match",
|
||||
"ypos": 120
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_inkscape-install_pane"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 302 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 123,
|
||||
"ypos": 131,
|
||||
"width": 245,
|
||||
"height": 43,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_inkscape-install_pane"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_inkscape-install_pane.png
Normal file
After Width: | Height: | Size: 300 KiB |
15
needles/gnome/apps/software/software_inkscape-listed.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 245,
|
||||
"ypos": 322,
|
||||
"width": 547,
|
||||
"height": 31,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_inkscape-listed"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_inkscape-listed.png
Normal file
After Width: | Height: | Size: 60 KiB |
15
needles/gnome/apps/software/software_installed_button.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 41,
|
||||
"height": 27,
|
||||
"xpos": 463,
|
||||
"type": "match",
|
||||
"width": 92
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_installed_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_installed_button.png
Normal file
After Width: | Height: | Size: 65 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 85,
|
||||
"height": 21,
|
||||
"type": "match",
|
||||
"ypos": 44,
|
||||
"xpos": 470
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_installed_button"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_installed_button_active.png
Normal file
After Width: | Height: | Size: 55 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 40,
|
||||
"xpos": 241,
|
||||
"ypos": 165,
|
||||
"width": 545
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-found"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg-found-20220609.png
Normal file
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"ypos": 158,
|
||||
"height": 40,
|
||||
"xpos": 241,
|
||||
"width": 545
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-found"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg-found-20220630.png
Normal file
After Width: | Height: | Size: 28 KiB |
15
needles/gnome/apps/software/software_mahjongg-found.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 243,
|
||||
"ypos": 168,
|
||||
"width": 545,
|
||||
"height": 40,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-found"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg-found.png
Normal file
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 160,
|
||||
"type": "match",
|
||||
"xpos": 241,
|
||||
"width": 546,
|
||||
"height": 42
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-found_installed"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 241,
|
||||
"ypos": 167,
|
||||
"width": 546,
|
||||
"height": 42,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-found_installed"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 51,
|
||||
"width": 383,
|
||||
"ypos": 117,
|
||||
"xpos": 104
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-install_pane"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 131 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 383,
|
||||
"height": 51,
|
||||
"ypos": 117,
|
||||
"type": "match",
|
||||
"xpos": 0
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-install_pane"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg-install_pane.png
Normal file
After Width: | Height: | Size: 130 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 237,
|
||||
"height": 58,
|
||||
"type": "match",
|
||||
"width": 555,
|
||||
"ypos": 484
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-listed"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 58 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 555,
|
||||
"ypos": 298,
|
||||
"xpos": 237,
|
||||
"height": 58,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-listed"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 56 KiB |
15
needles/gnome/apps/software/software_mahjongg-listed.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 236,
|
||||
"ypos": 205,
|
||||
"width": 555,
|
||||
"height": 58,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg-listed"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg-listed.png
Normal file
After Width: | Height: | Size: 50 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 95,
|
||||
"ypos": 693,
|
||||
"width": 328,
|
||||
"height": 51,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_description"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_description.png
Normal file
After Width: | Height: | Size: 130 KiB |
15
needles/gnome/apps/software/software_mahjongg_icon.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 108,
|
||||
"ypos": 119,
|
||||
"width": 110,
|
||||
"height": 85,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_icon"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_icon.png
Normal file
After Width: | Height: | Size: 130 KiB |
15
needles/gnome/apps/software/software_mahjongg_name.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 248,
|
||||
"ypos": 130,
|
||||
"width": 241,
|
||||
"height": 37,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_name"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_name.png
Normal file
After Width: | Height: | Size: 130 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 165,
|
||||
"height": 44,
|
||||
"width": 76,
|
||||
"ypos": 642,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_place"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_place-20220707.png
Normal file
After Width: | Height: | Size: 125 KiB |
15
needles/gnome/apps/software/software_mahjongg_place.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 161,
|
||||
"ypos": 641,
|
||||
"width": 84,
|
||||
"height": 45,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_place"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_place.png
Normal file
After Width: | Height: | Size: 125 KiB |
15
needles/gnome/apps/software/software_mahjongg_safety.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 374,
|
||||
"ypos": 639,
|
||||
"width": 67,
|
||||
"height": 74,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_safety"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_safety.png
Normal file
After Width: | Height: | Size: 125 KiB |
15
needles/gnome/apps/software/software_mahjongg_slide.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 463,
|
||||
"ypos": 423,
|
||||
"width": 128,
|
||||
"height": 89,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_mahjongg_slide"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_mahjongg_slide.png
Normal file
After Width: | Height: | Size: 130 KiB |
15
needles/gnome/apps/software/software_menu_about.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 858,
|
||||
"ypos": 162,
|
||||
"width": 111,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_menu_about"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_menu_about.png
Normal file
After Width: | Height: | Size: 80 KiB |
15
needles/gnome/apps/software/software_menu_repositories.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 860,
|
||||
"height": 24,
|
||||
"ypos": 94,
|
||||
"width": 148,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_menu_repositories"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_menu_repositories.png
Normal file
After Width: | Height: | Size: 75 KiB |
@ -0,0 +1,15 @@
|
||||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 261,
|
||||
"height": 23,
|
||||
"ypos": 468,
|
||||
"width": 512,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"software_notifications_disabled"
|
||||
]
|
||||
}
|
BIN
needles/gnome/apps/software/software_notifications_disabled.png
Normal file
After Width: | Height: | Size: 82 KiB |