#158 Develop a test for Desktop Login
Merged 4 years ago by adamwill. Opened 4 years ago by lruzicka.

file modified
+4
@@ -72,6 +72,10 @@ 

  for pkgset in ("kde", "workstation", "minimal"):

      testliterals.append(f"anaconda_{pkgset}_highlighted")

      testliterals.append(f"anaconda_{pkgset}_selected")

+ # desktop_login stuff

+ for user in ("jack", "jim"):

+     testliterals.append(f"login_{user}")

+     testliterals.append(f"user_confirm_{user}")

  # partitioning stuff, there's a bunch of this, all in anaconda.pm

  # multiple things use this

  for part in ("swap", "root"):

file modified
+45 -37
@@ -7,7 +7,7 @@ 

  

  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 cleanup_workaround_repo gnome_initial_setup anaconda_create_user check_desktop_clean download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile bypass_1691487 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/;

+ 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 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 lo_dismiss_tip disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile bypass_1691487 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_kde/;

  

  # We introduce this global variable to hold the list of applications that have

  # registered during the apps_startstop_test when they have sucessfully run.
@@ -727,42 +727,18 @@ 

      }

  }

  

- sub check_desktop_clean {

-     # Check we're at a 'clean' desktop. This used to be a simple

-     # needle check, but Rawhide's default desktop is now one which

-     # changes over time, and the GNOME top bar is now translucent

-     # by default; together these changes mean it's impossible to

-     # make a reliable needle, so we need something more tricksy to

-     # cover that case. 'tries' is the amount of check cycles to run

-     # before giving up and failing; each cycle should take ~3 secs.

-     my %args = (

-         tries => 10,

-         @_

-     );

-     foreach my $i (1..$args{tries}) {

-         # we still *do* the needle check, for all cases it covers

-         return if (check_screen "graphical_desktop_clean", 1);

-         # now do the special GNOME case

-         if (get_var("DESKTOP") eq "gnome") {

-             send_key "super";

-             if (check_screen "overview_app_grid", 2) {

-                 send_key "super";

-                 wait_still_screen 3;

-                 # go back to the desktop, if we're still at the app

-                 # grid (can be a bit fuzzy depending on response lag)

-                 while (check_screen "overview_app_grid", 1) {

-                     send_key "super";

-                     wait_still_screen 3;

-                 }

-                 return;

-             }

-         }

-         else {

-             # to keep the timing equal

-             sleep 2;

-         }

-     }

-     die "Clean desktop not reached!";

+ sub check_desktop {

+     # Check we're at a desktop. We do this by looking for the "apps"

+     # menu button ("Activities" button on GNOME, kicker button on

+     # KDE). This is set up as a helper function because, for a while,

+     # GNOME made the top bar translucent by default *and* we had an

+     # animated background by default, which made doing this solely

+     # with needle matches hard, so we had a workaround of trying to

+     # open the overview with the super key and match on the app grid

+     # icon. But GNOME has gone back to the top bar being a solid color

+     # by default, so we don't have this problem any more and this is

+     # back to just being a simple needle match.

+     assert_screen "apps_menu_button", 30;

  }

  

  sub download_modularity_tests {
@@ -1203,4 +1179,36 @@ 

      print("APPLICATION REGISTERED: $application \n");

  }

  

+ # The KDE desktop tests are very difficult to maintain, because the transparency

+ # of the menu requires a lot of different needles to cover the elements. 

+ # Therefore it is useful to change the background to a solid colour. 

+ # Since many needles have been already created with a black background

+ # we will keep it that way. The following code has been taken from the

+ # KDE startstop tests but it is good to have it here, because it will be

+ # needed more often now, it seems.

+ sub solidify_wallpaper_kde {

+     # Run the Desktop settings

+     hold_key 'alt';

+     send_key 'd';

+     send_key 's';

+     release_key 'alt';

+     # Select type of background

+     assert_and_click "deskset_select_type";

+     wait_still_screen 2;

+     # Select plain color type

+     assert_and_click "deskset_plain_color";

+     wait_still_screen 2;

+     # Open colors selection

+     assert_and_click "deskset_select_color";

+     wait_still_screen 2;

+     # Select black

+     assert_and_click "deskset_select_black";

+     wait_still_screen 2;

+     # Confirm

+     assert_and_click "kde_ok";

+     wait_still_screen 2;

+     # Close the application

+     assert_and_click "kde_ok";

+ }

+ 

  1;

needles/gnome/apps_menu_button-20190625.json needles/gnome/desktop_clean-gnome-20190625.json
file renamed
+2 -2
@@ -20,6 +20,6 @@ 

      "DESKTOP-gnome",

      "ENV-DISTRI-fedora",

      "LANGUAGE-english",

-     "graphical_desktop_clean"

+     "apps_menu_button"

    ]

- } 

\ No newline at end of file

+ }

needles/gnome/apps_menu_button-20190625.png needles/gnome/desktop_clean-gnome-20190625.png
file renamed
file was moved with no change to the file
needles/gnome/arabic/apps_menu_button_arabic-20200117.json needles/gnome/arabic/desktop_clean_arabic-20200117.json
file renamed
+2 -2
@@ -13,6 +13,6 @@ 

      "DESKTOP-gnome",

      "ENV-DISTRI-fedora",

      "LANGUAGE-arabic",

-     "graphical_desktop_clean"

+     "apps_menu_button"

    ]

- } 

\ No newline at end of file

+ }

needles/gnome/arabic/apps_menu_button_arabic-20200117.png needles/gnome/arabic/desktop_clean_arabic-20200117.png
file renamed
file was moved with no change to the file
needles/gnome/french/apps_menu_button_french-20161215.json needles/gnome/french/desktop_clean_french-20161215.json
file renamed
+2 -2
@@ -18,7 +18,7 @@ 

    "tags": [

      "DESKTOP-gnome",

      "LANGUAGE-french",

-     "graphical_desktop_clean"

+     "apps_menu_button"

    ],

    "properties": []

- } 

\ No newline at end of file

+ }

needles/gnome/french/apps_menu_button_french-20161215.png needles/gnome/french/desktop_clean_french-20161215.png
file renamed
file was moved with no change to the file
@@ -0,0 +1,16 @@ 

+ {

+   "area": [

+     {

+       "xpos": 15,

+       "ypos": 8,

+       "width": 99,

+       "height": 16,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "LANGUAGE-japanese",

+     "apps_menu_button"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "lock_button"

+   ],

+   "area": [

+     {

+       "xpos": 734,

+       "ypos": 193,

+       "width": 59,

+       "height": 21,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "locked_screen_switch_user"

+   ],

+   "area": [

+     {

+       "xpos": 963,

+       "ypos": 708,

+       "width": 22,

+       "height": 21,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "log_out_confirm"

+   ],

+   "area": [

+     {

+       "xpos": 595,

+       "ypos": 441,

+       "width": 56,

+       "height": 22,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "log_out_entry"

+   ],

+   "area": [

+     {

+       "xpos": 758,

+       "ypos": 258,

+       "width": 55,

+       "height": 20,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "ypos": 356,

+       "height": 28,

+       "type": "match",

+       "xpos": 415,

+       "width": 40

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "login_jack"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
needles/gnome/login_jack_blue.json needles/kde/desktop_clean-kde-larger-20180604.json
file renamed
+7 -8
@@ -1,16 +1,15 @@ 

  {

    "area": [

      {

-       "ypos": 733,

-       "type": "match",

        "width": 36,

-       "height": 35,

-       "xpos": 0

+       "xpos": 420,

+       "type": "match",

+       "height": 25,

+       "ypos": 270

      }

    ],

+   "properties": [],

    "tags": [

-     "DESKTOP-kde",

-     "graphical_desktop_clean"

-   ],

-   "properties": []

+     "login_jack"

+   ]

  } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "ypos": 447,

+       "height": 23,

+       "type": "match",

+       "xpos": 415,

+       "width": 36

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "login_jim"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "login_wrong_password"

+   ],

+   "area": [

+     {

+       "xpos": 381,

+       "ypos": 487,

+       "width": 264,

+       "height": 22,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "power_entry"

+   ],

+   "area": [

+     {

+       "xpos": 734,

+       "ypos": 226,

+       "width": 70,

+       "height": 19,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "power_off_confirm"

+   ],

+   "area": [

+     {

+       "xpos": 622,

+       "ypos": 461,

+       "width": 76,

+       "height": 21,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "power_off_entry"

+   ],

+   "area": [

+     {

+       "xpos": 753,

+       "ypos": 227,

+       "width": 93,

+       "height": 19,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "restart_confirm"

+   ],

+   "area": [

+     {

+       "xpos": 486,

+       "ypos": 461,

+       "width": 55,

+       "height": 20,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
needles/gnome/russian/apps_menu_button_russian-20200118.json needles/gnome/russian/desktop_clean_russian-20200118.json
file renamed
+2 -2
@@ -20,6 +20,6 @@ 

      "DESKTOP-gnome",

      "ENV-DISTRI-fedora",

      "LANGUAGE-russian",

-     "graphical_desktop_clean"

+     "apps_menu_button"

    ]

- } 

\ No newline at end of file

+ }

needles/gnome/russian/apps_menu_button_russian-20200118.png needles/gnome/russian/desktop_clean_russian-20200118.png
file renamed
file was moved with no change to the file
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "switch_user_entry"

+   ],

+   "area": [

+     {

+       "xpos": 758,

+       "ypos": 289,

+       "width": 96,

+       "height": 19,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "system_menu_button"

+   ],

+   "area": [

+     {

+       "xpos": 969,

+       "ypos": 2,

+       "width": 45,

+       "height": 25,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 969,

+       "ypos": 2,

+       "width": 45,

+       "height": 25,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "system_menu_button"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+     "area": [

+         {

+             "height": 21,

+             "type": "match",

+             "width": 41,

+             "xpos": 192,

+             "ypos": 162

+         }

+     ],

+     "properties": [],

+     "tags": [

+         "user_confirm_jack"

+     ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 194,

+       "ypos": 165,

+       "width": 31,

+       "height": 15,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "user_confirm_jim"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -1,15 +1,16 @@ 

- {

-   "area": [

-     {

-       "xpos": 618,

-       "ypos": 514,

-       "width": 43,

-       "height": 17,

-       "type": "match"

-     }

-   ],

-   "properties": [],

-   "tags": [

-     "kde_ok"

-   ]

+ {

+   "area": [

+     {

+       "xpos": 618,

+       "ypos": 514,

+       "width": 43,

+       "height": 17,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "kde_ok",

+     "add_button"

+   ]

  } 

\ No newline at end of file

@@ -1,7 +1,8 @@ 

  {

    "properties": [],

    "tags": [

-     "konsole_runs"

+     "konsole_runs",

+     "apps_run_terminal"

    ],

    "area": [

      {

@@ -0,0 +1,16 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "leave_button",

+     "power_entry"

+   ],

+   "area": [

+     {

+       "xpos": 412,

+       "ypos": 655,

+       "width": 32,

+       "height": 32,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 73,

+       "height": 17,

+       "width": 43,

+       "ypos": 242,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "lock_button"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "type": "match",

+       "xpos": 76,

+       "height": 20,

+       "width": 55,

+       "ypos": 281

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "log_out_entry"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "ypos": 390,

+       "xpos": 202,

+       "width": 109,

+       "type": "match",

+       "height": 19

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "login_jack"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "ypos": 389,

+       "xpos": 601,

+       "width": 77,

+       "type": "match",

+       "height": 22

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "login_jim"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+     "area": [

+         {

+             "height": 17,

+             "type": "match",

+             "width": 76,

+             "xpos": 472,

+             "ypos": 393

+         }

+     ],

+     "properties": [],

+     "tags": [

+         "login_jim"

+     ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "login_wrong_password"

+   ],

+   "area": [

+     {

+       "xpos": 464,

+       "ypos": 416,

+       "width": 98,

+       "height": 20,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,16 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "log_out_confirm",

+     "power_off_confirm"

+   ],

+   "area": [

+     {

+       "xpos": 435,

+       "ypos": 575,

+       "width": 45,

+       "height": 19,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,17 @@ 

+ {

+     "area": [

+         {

+             "height": 24,

+             "type": "match",

+             "width": 25,

+             "xpos": 5,

+             "ypos": 738

+         }

+     ],

+     "properties": [],

+     "tags": [

+         "DESKTOP-kde",

+         "system_menu_button",

+         "apps_menu_button"

+     ]

+ }

needles/kde/menu_button-kde-larger-20180604.png needles/kde/desktop_clean-kde-larger-20180604.png
file renamed
file was moved with no change to the file
needles/kde/menu_button-upstream.json needles/kde/desktop_clean-upstream.json
file renamed
+3 -2
@@ -13,6 +13,7 @@ 

    ],

    "tags": [

      "DESKTOP-kde",

-     "graphical_desktop_clean"

+     "apps_menu_button",

+     "system_menu_button"

    ]

- } 

\ No newline at end of file

+ }

needles/kde/menu_button-upstream.png needles/kde/desktop_clean-upstream.png
file renamed
file was moved with no change to the file
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "power_off_entry"

+   ],

+   "area": [

+     {

+       "xpos": 76,

+       "ypos": 514,

+       "width": 77,

+       "height": 17,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+     "area": [

+         {

+             "height": 26,

+             "type": "match",

+             "width": 30,

+             "xpos": 30,

+             "ypos": 435

+         }

+     ],

+     "properties": [],

+     "tags": [

+         "reboot_entry"

+     ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "height": 38,

+       "type": "match",

+       "width": 39,

+       "xpos": 449,

+       "ypos": 610

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "reboot_icon"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "switch_user_entry"

+   ],

+   "area": [

+     {

+       "xpos": 75,

+       "ypos": 321,

+       "width": 84,

+       "height": 17,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "properties": [],

+   "tags": [

+     "user_confirm_jack"

+   ],

+   "area": [

+     {

+       "xpos": 93,

+       "ypos": 137,

+       "width": 40,

+       "height": 21,

+       "type": "match"

+     }

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "type": "match",

+       "ypos": 135,

+       "width": 35,

+       "xpos": 91,

+       "height": 21

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "user_confirm_jim"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "width": 32,

+       "ypos": 66,

+       "xpos": 9,

+       "type": "match",

+       "height": 21

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "user_confirm_jim"

+   ]

+ } 

\ No newline at end of file

empty or binary file added
file modified
+13
@@ -609,6 +609,19 @@ 

                  "START_AFTER_TEST": "install_default_upload"

              }

          },

+         "desktop_login": {

+             "profiles": {

+                 "fedora-KDE-live-iso-x86_64-*-64bit": 30,

+                 "fedora-Workstation-live-iso-x86_64-*-64bit": 30,

+                 "fedora-Workstation-live-iso-ppc64le-*-ppc64le": 30

+             },

+             "settings": {

+                 "BOOTFROM": "c",

+                 "HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",

+                 "POSTINSTALL": "desktop_login",

+                 "START_AFTER_TEST": "install_default_upload"

+             }

+         },

          "desktop_browser": {

              "profiles": {

                  "fedora-KDE-live-iso-x86_64-*-64bit": 22,

file modified
+1 -1
@@ -29,7 +29,7 @@ 

          send_key "esc";

          send_key "esc";

          send_key "esc";

-         check_desktop_clean;

+         check_desktop;

      }

  }

  

@@ -91,7 +91,7 @@ 

      # Move the mouse somewhere it won't highlight the match areas

      mouse_set(300, 800);

      # KDE can take ages to start up

-     check_desktop_clean(tries=>40);

+     check_desktop(tries=>40);

  }

  

  sub test_flags {

@@ -8,28 +8,7 @@ 

  

  sub run {

      my $self = shift;

-     # Run the Desktop settings

-     hold_key 'alt';

-     send_key 'd';

-     send_key 's';

-     release_key 'alt';

-     # Select type of background

-     assert_and_click "deskset_select_type";

-     wait_still_screen 2;

-     # Select plain color type

-     assert_and_click "deskset_plain_color";

-     wait_still_screen 2;

-     # Open colors selection

-     assert_and_click "deskset_select_color";

-     wait_still_screen 2;

-     # Select black

-     assert_and_click "deskset_select_black";

-     wait_still_screen 2;

-     # Confirm

-     assert_and_click "kde_ok";

-     wait_still_screen 2;

-     # Close the application

-     assert_and_click "kde_ok";

+     solidify_wallpaper_kde;

      # get rid of unwanted notifications that interfere with tests

      click_unwanted_notifications;

  }

file modified
+1 -1
@@ -4,7 +4,7 @@ 

  use utils;

  

  sub run {

-     check_desktop_clean;

+     check_desktop;

      # If we want to check that there is a correct background used, as a part

      # of self identification test, we will do it here. For now we don't do

      # this for Rawhide as Rawhide doesn't have its own backgrounds and we

file modified
+1 -1
@@ -27,7 +27,7 @@ 

  

  sub run {

      my $self = shift;

-     check_desktop_clean;

+     check_desktop;

      send_key 'alt-f1';

      # wait out animations

      wait_still_screen(stilltime=>2, similarity_level=>45);

file added
+335
@@ -0,0 +1,335 @@ 

+ use base "installedtest";

+ use strict;

+ use testapi;

+ use utils;

+ 

+ our $desktop = get_var("DESKTOP");

+ our $syspwd = get_var("USER_PASSWORD") || "weakpassword";

+ our $term = "gnome-terminal";

+ if ($desktop eq "kde") {

+     $term = "konsole";

+ }

+ 

+ sub type_password {

+     # Safe typing prolongs the operation terribly.

+     # Let's just use type_string and wait afterwards.

+     my $string = shift;

+     type_string "$string\n";

+     sleep 3;

+ }

+ 

+ sub adduser {

+     # Add user to the system.

+     my %args = @_;

+     $args{termstart} //= 1;

+     $args{termstop} //= 1;

+     my $name = $args{name};

+     my $login = $args{login};

+     my $password = $args{password};

+ 

+     if ($args{termstart}) {

+         menu_launch_type $term;

+         wait_still_screen 2;

+         assert_screen "apps_run_terminal";

+         type_very_safely "sudo -i\n";

+         type_password $syspwd;

+     }

+     assert_script_run "useradd -c '$name' $login";

+     if ($password ne "askuser") {

+         # If we want to create a user with a defined password.

+         type_very_safely "passwd $login\n";

+         type_password $password;

+         type_password $password;

+     }

+     else {

+         # If we want to create a user without a password,

+         # that forces GDM to create a password upon the

+         # first login.

+         assert_script_run "passwd -d $login";

+         assert_script_run "chage --lastday 0 $login";

+     }

+     assert_script_run "grep $login /etc/passwd";

+     # Disable Gnome initial setup on accounts when testing

+     # inside Gnome.

+     if ($desktop eq "gnome") {

+         assert_script_run "mkdir /home/$login/.config";

+         assert_script_run "echo 'yes' >> /home/$login/.config/gnome-initial-setup-done";

+     }

+     if ($args{termstop}) {

+         type_very_safely "exit\n";

+         send_key 'alt-f4';

+     }

+ }

+ 

+ sub lock_screen {

+     # Click on buttons to lock the screen.

+     #my $desktop = get_var("DESKTOP");

+     assert_and_click "system_menu_button";

+     if ($desktop eq "kde") {

+         assert_and_click "leave_button";

+     }

+     assert_and_click "lock_button";

+     wait_still_screen 10;

+ }

+ 

+ sub login_user {

+     # Do steps to unlock a previously locked screen. We use it to handle

+     # logins as well, because it is practically the same.

+     my %args = @_;

+     $args{checklogin} //= 1;

+     $args{method} //= "";

+     my $user = $args{user};

+     my $password = $args{password};

+     my $method = $args{method};

+     if (!check_screen "login_$user") {

+         # Sometimes, especially in SDDM, we do not get the user list

+         # but rather a "screensaver" screen for the DM. If this is the

+         # case, hit Enter to bring back the user list.

+         send_key "ret";

+         wait_still_screen 5;

+     }

+     if ($method ne "unlock") {

+         # When we do not just want to unlock the screen, we need to select a user.

+         assert_and_click "login_$user";

+         wait_still_screen 5;

+     }

+     if ($method eq "create") {

+         # With users that do not have passwords, we need to make an extra round

+         # of password typing.

+         type_very_safely $password;

+         send_key "ret";

+     }

+     type_very_safely $password;

+     send_key "ret";

+     check_desktop if ($args{checklogin});

+     wait_still_screen 5;

+ }

+ 

+ sub check_user_logged_in {

+     # Performs a check that a correct user has been locked in.

+     my $user = shift;

+     # In Gnome, the name of the user was accessible through menu

+     # in the upper right corner, but apparently it has been removed.

+     # Reading the login name from the terminal prompt seems to be

+     # the most reliable thing to do.

+     if ($desktop eq "gnome") {

+         menu_launch_type $term;

+         wait_still_screen 2;

+     }

+     # With KDE, the user is shown in the main menu, so let us just

+     # open this and see.

+     else {

+         assert_and_click "system_menu_button";

+     }

+     assert_screen "user_confirm_$user";

+     send_key "alt-f4";

+     wait_still_screen 5;

+ }

+ 

+ sub logout_user {

+     # Do steps to log out the user to reach the GDM screen.

+     assert_and_click "system_menu_button";

+     assert_and_click "power_entry";

+     assert_and_click "log_out_entry";

+     assert_and_click "log_out_confirm";

+     wait_still_screen 5;

+     sleep 10;

+ }

+ 

+ sub switch_user {

+     # Switch the user, i.e. leave the current user logged in and

+     # log in another user simultaneously.

+     if (check_screen "system_menu_button") {

+         # The system_menu_button indicates that we are in an active

+         # and unlocked session, where user switching differs

+         # from a locked but active session.

+         assert_and_click "system_menu_button";

+         assert_and_click "power_entry";

+         assert_and_click "switch_user_entry";

+         wait_still_screen 5;

+         # Add sleep to slow down the process a bit

+         sleep 10;

+     }

+     else {

+         # When the screen is locked, use the icon.

+         assert_and_click "locked_screen_switch_user";

+     }

+ }

+ 

+ sub reboot_system {

+     # Reboots the system and handles everything until the next GDM screen.

+     if (check_screen "system_menu_button") {

+         # Everywhere in Gnome and inside the KDE, there is a menu through which

+         # we can access the operationg system switching controls.

+         assert_and_click "system_menu_button";

+         assert_and_click "power_entry";

+         if ($desktop eq "gnome") {

+             # In Gnome, some of the entries are brought together, while in KDE they are

+             # split and it does not seem correct to me to assign restarting tags to

+             # needles powering off the machine. So I split this for KDE and Gnome.

+             # This holds true for Gnome:

+             assert_and_click "power_off_entry";

+             assert_and_click "restart_confirm";

+         }

+         else {

+             # And for KDE:

+             assert_and_click "reboot_entry";

+             assert_and_click "log_out_confirm";

+         }

+     }

+     # When we are outside KDE (not logged in), the only way to reboot is to click

+     # the reboot icon.

+     else {

+         assert_and_click "reboot_icon";

+     }

+     boot_to_login_screen();

+ }

+ 

+ sub power_off {

+     # Powers-off the machine. I am not sure if this is not a useless thing to

+     # do, because at the moment I do not know about a possibility to assert a

+     # switched-off VM.

+     assert_and_click "system_menu_button";

+     assert_and_click "power_entry";

+     assert_and_click "power_off_entry";

+     assert_and_click "power_off_confirm";

+ }

+ 

+ sub run {

+     # Do a default installation of the Fedora release you wish to test. Create two user accounts.

+     my $self = shift;

+     my $jackpass = "kozapanijezibaby";

+     my $jimpass = "babajagakozaroza";

+     our $desktop = get_var("DESKTOP");

+     # Get rid of the KDE wallpaper and make background black.

+     if ($desktop eq "kde") {

+         solidify_wallpaper_kde;

+         # also get rid of the wallpaper on SDDM screen. This is system

+         # wide so we only need do it once

+         menu_launch_type $term;

+         wait_still_screen 2;

+         assert_screen "apps_run_terminal";

+         type_very_safely "sudo -i\n";

+         type_password $syspwd;

+         assert_script_run "sed -i -e 's,image,solid,g' /usr/share/sddm/themes/01-breeze-fedora/theme.conf.user";

+     }

+     if ($desktop eq "kde") {

+         # we're already at a terminal! EFFICIENCY!

+         adduser(name=>"Jack Sparrow", login=>"jack", password=>$jackpass, termstart=>0, termstop=>0);

+     }

+     else {

+         # gotta start the terminal

+         adduser(name=>"Jack Sparrow", login=>"jack", password=>$jackpass, termstart=>1, termstop=>0);

+     }

+     if ($desktop eq "gnome") {

+         # In Gnome, we can create a passwordless user that can provide his password upon

+         # the first login. So we can create the second user in this way to test this feature

+         # later.

+         adduser(name=>"Jim Eagle", login=>"jim", password=>"askuser", termstart=>0, termstop=>1);

+     }

+     else {

+         # In KDE, we can also create a passwordless user, but we cannot log into the system

+         # later, so we will create the second user the standard way.

+         adduser(name=>"Jim Eagle", login=>"jim", password=>$jimpass, termstart=>0, termstop=>1);

+     }

+ 

+     # Clean boot the system, and note what accounts are listed on the login screen.

+     # Log out the default user "test" and reboot the system

+     # before the actual testing starts. There is no need to check specifically

+     # if the users are listed, because if they are not, the login tests will fail

+     # later.

+     logout_user();

+     reboot_system();

+ 

+     # Log in with the first user account.

+     login_user(user=>"jack", password=>$jackpass);

+     if ($desktop eq "kde") {

+         solidify_wallpaper_kde;

+     }

+     check_user_logged_in("jack");

+     # Log out the user.

+     logout_user();

+ 

+     # Log in with the second user account. The second account, Jim Eagle,

+     if ($desktop eq "gnome") {

+         # If we are in Gnome, we will this time assign a password on first log-in.

+         login_user(user=>"jim", password=>$jimpass, method=>"create");

+     }

+     else {

+         # If not, we are in KDE and we will log in normally.

+         login_user(user=>"jim", password=>$jimpass);

+         solidify_wallpaper_kde;

+     }

+     check_user_logged_in("jim");

+     # And this time reboot the system using the menu.

+     reboot_system();

+ 

+     # Try to log in with either account, intentionally entering the wrong password.

+     login_user(user=>"jack", password=>"wrongpassword", checklogin=>0);

+     if ($desktop eq "gnome") {

+         # In GDM, a message is shown about an unsuccessful login and it can be

+         # asserted, so let's do it. In SDDM, there is also a message, but it

+         # is only displayed for a short moment and the assertion fails here, 

+         # so we will skip the assertion. Not being able to login in with

+         # a wrong password is enough here.

+         assert_screen "login_wrong_password";

+         send_key 'esc';

+     }

+ 

+     # Now, log into the system again using the correct password.

+     login_user(user=>"jim", password=>$jimpass);

+     check_user_logged_in("jim");

+ 

+     # Lock the screen and unlock again.

+     lock_screen();

+     # Use the password to unlock the screen.

+     login_user(user=>"jim", password=>$jimpass, method=>"unlock");

+ 

+     # Switch user tests

+     if ($desktop eq "gnome") {

+         # Because KDE at the moment (20200403) is very unreliable concerning switching the users inside

+         # the virtual machine, we will skip this part, until situation is better. Switching users will

+         # be only tested in Gnome.

+ 

+         # Start a terminal session to monitor on which sessions we are, when we start switching users.

+         # This time, we will open the terminal window manually because we want to leave it open later.

+         menu_launch_type "terminal";

+         wait_still_screen 2;

+         # Initiate switch user

+         switch_user();

+         # Now, we get a new login screen, so let's do the login into the new session.

+         login_user(user=>"jack", password=>$jackpass);

+         # Check that it is a new session, the terminal window should not be visible.

+         if (check_screen "user_confirm_jim") {

+             die "The session was not switched!";

+         }

+         else {

+             check_user_logged_in("jack");

+         }

+         # Log out the user.

+         logout_user();

+         # Now, let us log into the original session, this time, the terminal window

+         # should still be visible.

+         login_user(user=>"jim", password=>$jimpass);

+         assert_screen "user_confirm_jim";

+ 

+         # We will also test another alternative - switching the user from

+         # a locked screen.

+         lock_screen();

+         send_key "ret";

+         switch_user();

+         login_user(user=>"jack", password=>$jackpass);

+         check_user_logged_in("jack");

+     }

+     # Power off the machine

+     power_off();

+     check_shutdown;

+ }

+ 

+ sub test_flags {

+     return { fatal => 1 };

+ }

+ 

+ 1;

+ 

+ # vim: set sw=4 et:

@@ -67,7 +67,7 @@ 

          type_very_safely get_var("USER_PASSWORD", "weakpassword");

          send_key 'ret';

      }

-     check_desktop_clean(tries=>30);

+     check_desktop(tries=>30);

      # now, WE WAIT. this is just an unconditional wait - rather than

      # breaking if we see an update notification appear - so we catch

      # things that crash a few minutes after startup, etc.

file modified
+1 -1
@@ -5,7 +5,7 @@ 

  

  sub run {

      my $self=shift;

-     check_desktop_clean;

+     check_desktop;

      menu_launch_type('terminal');

      wait_still_screen 5;

      # need to be root

This should cover the most features of the Desktop Login test case, except:

  • switch users for KDE, due to a bug in KDE.
  • any kind of suspend because I am not aware of anything that could deal with suspended VM

Metadata Update from @lruzicka:
- Pull-request tagged with: newtest
- Request assigned

4 years ago

Build failed.

BOT SAYS NO

(tox failure looks like a CI bug, diff-cover not working in py39 environment, but perl failure looks like a genuine bug, probably a missing import)

1 new commit added

  • Fix name of subroutine.
4 years ago

1 new commit added

  • Diminish the needle area to prevent failures.
4 years ago

Build failed.

1 new commit added

  • Fix typo from Insert mode.
4 years ago

Build failed.

Took a bat,
visited bot,
talked a lot
result is that:

BOT SAYS YES.

Thanks.

Our tox problem, btw, is probably this:

"The xml.etree.cElementTree module has been removed, use the xml.etree.ElementTree module instead"

so guess who gets to go write a pull request for diff-cover...

rebased onto cbd8152a5636c9b24e73db0598036d7b60359e16

4 years ago

Build succeeded.

rebased onto 5f0164f4a7f2268667f184c1597470644ca14931

4 years ago

Build succeeded.

rebased onto cd9a510bdac05d91f0b9835ad3ab2f0010bcf88e

4 years ago

Build succeeded.

rebased onto 7997a26487f74321cdef261ce884a6b9dc2a1082

4 years ago

1 new commit added

  • Add login_user whitelists to check-needles.py
4 years ago

Build failed.

5 new commits added

  • Add desktop_login whitelists to check-needles.py
  • Fix typo from Insert mode.
  • Diminish the needle area to prevent failures.
  • Fix name of subroutine.
  • Develop a test for Desktop Login
4 years ago

Build failed.

So I took one look at the giant list of new needles in this PR, decided I wasn't going to cross-compare them all with the tests, and made a robot to do it instead. And now THAT robot says no. :)

The script finds 16 needles added in this PR that do not appear to actually be used in the tests it adds. Can you please check through this list and clean it up? If any of the needles actually are used but the script is missing them because the needle name is concatenated or uses variable substitution or whatever, please add whitelists to the script (I did a couple of these already). Thanks!

1 new commit added

  • Remove unused needles.
4 years ago

Build succeeded.

needles/gnome/user_confirm_jim seems to actually be a KDE screenshot. Do we need that and user_confirm_jim-20200406 (which really is a GNOME needle) and needles/kde/user_confirm_jim_kde (which is another KDE needle that seems to match the GNOME one more closely)?

Why is user_confirm_jim_kde a console match, but user_confirm_jack_kde is an overview match?

Have you checked how reliable this is? Dropped / repeated characters in passwords are a big part of why type_safely and type_very_safely exist at all...

consistent whitespace, please...

is there a reason for this not to be assert_script-run?

why not just grep $login /etc/passwd?

okay, so, I guess calling this "menu_button" allows us to use the exact same code on KDE and GNOME, but the name might be a bit confusing...can we call it "power_menu_button" or "user_menu_button" or "system_menu_button"?

BTW, 'ctrl-alt-del' is apparently a keyboard shortcut for logout on GNOME, not sure if we want to use that. not sure if it works on KDE either. probably good to check the menu entries are there anyway.

there is a check_shutdown in testapi. Don't remember if I've ever tried it, but it's supposed to do this!

for the record, the wiki test case actually kinda envisioned creating the user accounts during installation, or on first boot. checking that user creation within the desktops themselves works wasn't really originally intended to be part of the test. I don't see any harm in doing it that way though, really, just thought I'd note it.

needles/gnome/user_confirm_jim seems to actually be a KDE screenshot. Do we need that and user_confirm_jim-20200406 (which really is a GNOME needle) and needles/kde/user_confirm_jim_kde (which is another KDE needle that seems to match the GNOME one more closely)?
Why is user_confirm_jim_kde a console match, but user_confirm_jack_kde is an overview match?

Yeah, the user_confirm_jim was misplaced. I corrected it. There is a difference, in how the system enables us to check the user name. While, the user name can be obtained from the Application menu in KDE, you cannot do that in latest Gnome. Therefore, for Gnome I am using the terminal check. Do you want me to unite it?

Have you checked how reliable this is? Dropped / repeated characters in passwords are a big part of why type_safely and type_very_safely exist at all...

It has not failed a single time. I am only using this "fragile" method to pass passwords to sudo and passwd commands. These silent commands caused the safe typing to be very very slow using type_safely or type_very_safely. To send a password, it needed more than a minute. Occasionally, the test even timed out. Therefore, I changed the original type_very_safely via type_safely to type_string to achieve something like "normal" behaviour.
However, if you think that it is absolutely necessary to use the above methods, I will do it. I'd personally try it this way and change if there'd be some failures in real situations.

consistent whitespace, please...

Fixed.

is there a reason for this not to be assert_script-run?

Not really. Fixed.

why not just grep $login /etc/passwd?

Fixed.

okay, so, I guess calling this "menu_button" allows us to use the exact same code on KDE and GNOME, but the name might be a bit confusing...can we call it "power_menu_button" or "user_menu_button" or "system_menu_button"?

system_menu_button it is.

... probably good to check the menu entries are there anyway.

That was my assumption :)

there is a check_shutdown in testapi. Don't remember if I've ever tried it, but it's supposed to do this!

I will add this and see what it does :D

1 new commit added

  • Fix after review, before testing again.
4 years ago

7 new commits added

  • Fix after review, before testing again.
  • Remove unused needles.
  • Add desktop_login whitelists to check-needles.py
  • Fix typo from Insert mode.
  • Diminish the needle area to prevent failures.
  • Fix name of subroutine.
  • Develop a test for Desktop Login
4 years ago

Build succeeded.

Yeah, the user_confirm_jim was misplaced. I corrected it. There is a difference, in how the system enables us to check the user name. While, the user name can be obtained from the Application menu in KDE, you cannot do that in latest Gnome. Therefore, for Gnome I am using the terminal check. Do you want me to unite it?

No, that's fine, just make sure the needles are in the right directories :P (terminal check needles in GNOME dir, menu needles in KDE dir).

It has not failed a single time. I am only using this "fragile" method to pass passwords to sudo and passwd commands. These silent commands caused the safe typing to be very very slow using type_safely or type_very_safely. To send a password, it needed more than a minute. Occasionally, the test even timed out. Therefore, I changed the original type_very_safely via type_safely to type_string to achieve something like "normal" behaviour.
However, if you think that it is absolutely necessary to use the above methods, I will do it. I'd personally try it this way and change if there'd be some failures in real situations.

Yeah, if it hasn't failed in your testing yet we can leave it and see how it goes.

rebased onto d0bd6751447408f8fc0fec980ee0b4c350fc1e46

4 years ago

rebased onto 4312e3f0d89497166eaba4be8347e64f7790f774

4 years ago

Build succeeded.

1 new commit added

  • Tweak jack needle not to include a bit of the hostname
4 years ago

Build succeeded.

Why do we need both needles/gnome/user_confirm_jim and needles/gnome/user_confirm_jim-20200406?

rebased onto ec9fe0993fe0ffd5de4a8e6becc2c7ce0bb5550a

4 years ago

Build succeeded.

1 new commit added

  • Merge two similar needles into one.
4 years ago

Build succeeded.

Why do we need both needles/gnome/user_confirm_jim and needles/gnome/user_confirm_jim-20200406?

We don't. This was caused by the fact that I misplaced the needles and put them into the root directory of the repository where they could not be found by the engine and I recreated a replacement from the OpenQA UI.

1 new commit added

  • Rename needles to match their purpose better.
4 years ago

No, that's fine, just make sure the needles are in the right directories :P (terminal check needles in GNOME dir, menu needles in KDE dir).

I renamed the needles also to be more self explanatory.

Build succeeded.

rebased onto e36850ce0b6c711178df42e2c430f8f586b62311

4 years ago

Build succeeded.

1 new commit added

  • Revise and rename check_desktop_clean and related needles
4 years ago

Build succeeded.

1 new commit added

  • Tweak KDE reboot_entry needle to match on icon not text
4 years ago

Build succeeded.

1 new commit added

  • Set SDDM background to solid color, fix wrong password login
4 years ago

4 new commits added

  • Set SDDM background to solid color, fix wrong password login
  • Tweak KDE reboot_entry needle to match on icon not text
  • Revise and rename check_desktop_clean and related needles
  • Develop a test for Desktop Login
4 years ago

Build succeeded.

4 new commits added

  • Set SDDM background to solid color, fix wrong password login
  • Tweak KDE reboot_entry needle to match on icon not text
  • Revise and rename check_desktop_clean and related needles
  • Develop a test for Desktop Login
4 years ago

Build succeeded.

4 new commits added

  • Set SDDM background to solid color, fix wrong password login
  • Tweak KDE reboot_entry needle to match on icon not text
  • Revise and rename check_desktop_clean and related needles
  • Develop a test for Desktop Login
4 years ago

Build succeeded.

rebased onto f3d6a95

4 years ago

So I tested this out on staging today and wound up tweaking it a bit, and it also kinda led me into a minor rewrite of check_desktop_clean and associated needles (now called check_desktop). I've squashed the commits down again and documented those changes in the commit message.

The major change i made to this test itself was to find a way to change SDDM's background to a flat color, which should avoid problems with the needles on that screen when the background changes (we already had problems here because Rawhide had the 'final' F32 background, while F32 still has the older one from Beta right now). I redid all the SDDM needles for that change (and also to just match on the usernames - we don't need to match on the icon above as well, clicking on the usernames works). I also made a few little optimizations to user creation (we don't need to keep quitting and restarting the terminal) and added a check that we actually reach a desktop after login_user, except when we do an intentional wrong password attempt.

This is now working on KDE and GNOME on F32, and failing on GNOME on Rawhide because user switch is crashing, and I think all the needles are in order, so I'm going to merge it. Thanks for the work!

Pull-Request has been merged by adamwill

4 years ago

Build succeeded.

Metadata
Flags
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
failure
Jobs result is failure
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
failure
Jobs result is failure
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
success
Jobs result is success
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
failure
Jobs result is failure
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
failure
Jobs result is failure
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Zuul
failure
Jobs result is failure
4 years ago
Zuul
pending
Jobs result is pending
4 years ago
Changes Summary 91
+4 -0
file changed
check-needles.py
+45 -37
file changed
lib/utils.pm
+2 -2
file renamed
needles/gnome/desktop_clean-gnome-20190625.json
needles/gnome/apps_menu_button-20190625.json
+0 -0
file renamed
needles/gnome/desktop_clean-gnome-20190625.png
needles/gnome/apps_menu_button-20190625.png
+2 -2
file renamed
needles/gnome/arabic/desktop_clean_arabic-20200117.json
needles/gnome/arabic/apps_menu_button_arabic-20200117.json
+0 -0
file renamed
needles/gnome/arabic/desktop_clean_arabic-20200117.png
needles/gnome/arabic/apps_menu_button_arabic-20200117.png
+2 -2
file renamed
needles/gnome/french/desktop_clean_french-20161215.json
needles/gnome/french/apps_menu_button_french-20161215.json
+0 -0
file renamed
needles/gnome/french/desktop_clean_french-20161215.png
needles/gnome/french/apps_menu_button_french-20161215.png
+16
file added
needles/gnome/japanese/apps_menu_button_japanese-20200417.json
+0
file added
needles/gnome/japanese/apps_menu_button_japanese-20200417.png
+15
file added
needles/gnome/lock_button.json
+0
file added
needles/gnome/lock_button.png
+15
file added
needles/gnome/locked_screen_switch_user.json
+0
file added
needles/gnome/locked_screen_switch_user.png
+15
file added
needles/gnome/log_out_confirm.json
+0
file added
needles/gnome/log_out_confirm.png
+15
file added
needles/gnome/log_out_entry.json
+0
file added
needles/gnome/log_out_entry.png
+15
file added
needles/gnome/login_jack.json
+0
file added
needles/gnome/login_jack.png
+7 -8
file renamed
needles/kde/desktop_clean-kde-larger-20180604.json
needles/gnome/login_jack_blue.json
+0
file added
needles/gnome/login_jack_blue.png
+15
file added
needles/gnome/login_jim.json
+0
file added
needles/gnome/login_jim.png
+15
file added
needles/gnome/login_wrong_password.json
+0
file added
needles/gnome/login_wrong_password.png
+15
file added
needles/gnome/power_entry.json
+0
file added
needles/gnome/power_entry.png
+15
file added
needles/gnome/power_off_confirm.json
+0
file added
needles/gnome/power_off_confirm.png
+15
file added
needles/gnome/power_off_entry.json
+0
file added
needles/gnome/power_off_entry.png
+15
file added
needles/gnome/restart_confirm.json
+0
file added
needles/gnome/restart_confirm.png
+2 -2
file renamed
needles/gnome/russian/desktop_clean_russian-20200118.json
needles/gnome/russian/apps_menu_button_russian-20200118.json
+0 -0
file renamed
needles/gnome/russian/desktop_clean_russian-20200118.png
needles/gnome/russian/apps_menu_button_russian-20200118.png
+15
file added
needles/gnome/switch_user_entry.json
+0
file added
needles/gnome/switch_user_entry.png
+15
file added
needles/gnome/system_menu_button.json
+0
file added
needles/gnome/system_menu_button.png
+15
file added
needles/gnome/system_menu_button_grey.json
+0
file added
needles/gnome/system_menu_button_grey.png
+15
file added
needles/gnome/user_confirm_jack.json
+0
file added
needles/gnome/user_confirm_jack.png
+15
file added
needles/gnome/user_confirm_jim.json
+0
file added
needles/gnome/user_confirm_jim.png
+15 -14
file changed
needles/kde/apps/kde_ok-20190408.json
+2 -1
file changed
needles/kde/apps/konsole_runs.json
+16
file added
needles/kde/leave_button.json
+0
file added
needles/kde/leave_button.png
+15
file added
needles/kde/lock_button_kde.json
+0
file added
needles/kde/lock_button_kde.png
+15
file added
needles/kde/log_out_entry.json
+0
file added
needles/kde/log_out_entry.png
+15
file added
needles/kde/login_jack_kde.json
+0
file added
needles/kde/login_jack_kde.png
+15
file added
needles/kde/login_jim_kde.json
+0
file added
needles/kde/login_jim_kde.png
+15
file added
needles/kde/login_jim_kde_bigger-20200402.json
+0
file added
needles/kde/login_jim_kde_bigger-20200402.png
+15
file added
needles/kde/login_wrong_password_kde.json
+0
file added
needles/kde/login_wrong_password_kde.png
+16
file added
needles/kde/logout_confirm_kde.json
+0
file added
needles/kde/logout_confirm_kde.png
+17
file added
needles/kde/menu_button-kde-larger-20180604.json
+0 -0
file renamed
needles/kde/desktop_clean-kde-larger-20180604.png
needles/kde/menu_button-kde-larger-20180604.png
+3 -2
file renamed
needles/kde/desktop_clean-upstream.json
needles/kde/menu_button-upstream.json
+0 -0
file renamed
needles/kde/desktop_clean-upstream.png
needles/kde/menu_button-upstream.png
+15
file added
needles/kde/power_off_entry_kde.json
+0
file added
needles/kde/power_off_entry_kde.png
+15
file added
needles/kde/reboot_entry_kde.json
+0
file added
needles/kde/reboot_entry_kde.png
+15
file added
needles/kde/reboot_icon.json
+0
file added
needles/kde/reboot_icon.png
+15
file added
needles/kde/switch_user_entry_kde.json
+0
file added
needles/kde/switch_user_entry_kde.png
+15
file added
needles/kde/user_confirm_jack_kde.json
+0
file added
needles/kde/user_confirm_jack_kde.png
+15
file added
needles/kde/user_confirm_jim_kde.json
+0
file added
needles/kde/user_confirm_jim_kde.png
+15
file added
needles/kde/user_confirm_jim_term.json
+0
file added
needles/kde/user_confirm_jim_term.png
+13 -0
file changed
templates.fif.json
+1 -1
file changed
tests/_graphical_input.pm
+1 -1
file changed
tests/_graphical_wait_login.pm
+1 -22
file changed
tests/apps_startstop/kde/aasetting.pm
+1 -1
file changed
tests/desktop_background.pm
+1 -1
file changed
tests/desktop_browser.pm
+335
file added
tests/desktop_login.pm
+1 -1
file changed
tests/desktop_notifications.pm
+1 -1
file changed
tests/desktop_terminal.pm