diff --git a/check-needles.py b/check-needles.py index 83bea160..f5b74d9b 100755 --- a/check-needles.py +++ b/check-needles.py @@ -72,6 +72,10 @@ for environment in ("anaconda", "gnome"): 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"): diff --git a/lib/utils.pm b/lib/utils.pm index ffb195a2..21de05a3 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 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 anaconda_create_user { } } -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 @@ sub register_application { 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; diff --git a/needles/gnome/desktop_clean-gnome-20190625.json b/needles/gnome/apps_menu_button-20190625.json similarity index 86% rename from needles/gnome/desktop_clean-gnome-20190625.json rename to needles/gnome/apps_menu_button-20190625.json index 96bfc891..7ce64529 100644 --- a/needles/gnome/desktop_clean-gnome-20190625.json +++ b/needles/gnome/apps_menu_button-20190625.json @@ -20,6 +20,6 @@ "DESKTOP-gnome", "ENV-DISTRI-fedora", "LANGUAGE-english", - "graphical_desktop_clean" + "apps_menu_button" ] -} \ No newline at end of file +} diff --git a/needles/gnome/desktop_clean-gnome-20190625.png b/needles/gnome/apps_menu_button-20190625.png similarity index 100% rename from needles/gnome/desktop_clean-gnome-20190625.png rename to needles/gnome/apps_menu_button-20190625.png diff --git a/needles/gnome/arabic/desktop_clean_arabic-20200117.json b/needles/gnome/arabic/apps_menu_button_arabic-20200117.json similarity index 82% rename from needles/gnome/arabic/desktop_clean_arabic-20200117.json rename to needles/gnome/arabic/apps_menu_button_arabic-20200117.json index d6833f92..91202293 100644 --- a/needles/gnome/arabic/desktop_clean_arabic-20200117.json +++ b/needles/gnome/arabic/apps_menu_button_arabic-20200117.json @@ -13,6 +13,6 @@ "DESKTOP-gnome", "ENV-DISTRI-fedora", "LANGUAGE-arabic", - "graphical_desktop_clean" + "apps_menu_button" ] -} \ No newline at end of file +} diff --git a/needles/gnome/arabic/desktop_clean_arabic-20200117.png b/needles/gnome/arabic/apps_menu_button_arabic-20200117.png similarity index 100% rename from needles/gnome/arabic/desktop_clean_arabic-20200117.png rename to needles/gnome/arabic/apps_menu_button_arabic-20200117.png diff --git a/needles/gnome/french/desktop_clean_french-20161215.json b/needles/gnome/french/apps_menu_button_french-20161215.json similarity index 85% rename from needles/gnome/french/desktop_clean_french-20161215.json rename to needles/gnome/french/apps_menu_button_french-20161215.json index 9dba2820..d78a79e5 100644 --- a/needles/gnome/french/desktop_clean_french-20161215.json +++ b/needles/gnome/french/apps_menu_button_french-20161215.json @@ -18,7 +18,7 @@ "tags": [ "DESKTOP-gnome", "LANGUAGE-french", - "graphical_desktop_clean" + "apps_menu_button" ], "properties": [] -} \ No newline at end of file +} diff --git a/needles/gnome/french/desktop_clean_french-20161215.png b/needles/gnome/french/apps_menu_button_french-20161215.png similarity index 100% rename from needles/gnome/french/desktop_clean_french-20161215.png rename to needles/gnome/french/apps_menu_button_french-20161215.png diff --git a/needles/gnome/japanese/apps_menu_button_japanese-20200417.json b/needles/gnome/japanese/apps_menu_button_japanese-20200417.json new file mode 100644 index 00000000..1f601c5f --- /dev/null +++ b/needles/gnome/japanese/apps_menu_button_japanese-20200417.json @@ -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 diff --git a/needles/gnome/japanese/apps_menu_button_japanese-20200417.png b/needles/gnome/japanese/apps_menu_button_japanese-20200417.png new file mode 100644 index 00000000..763ec3df Binary files /dev/null and b/needles/gnome/japanese/apps_menu_button_japanese-20200417.png differ diff --git a/needles/gnome/lock_button.json b/needles/gnome/lock_button.json new file mode 100644 index 00000000..4877989c --- /dev/null +++ b/needles/gnome/lock_button.json @@ -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 diff --git a/needles/gnome/lock_button.png b/needles/gnome/lock_button.png new file mode 100644 index 00000000..812a5198 Binary files /dev/null and b/needles/gnome/lock_button.png differ diff --git a/needles/gnome/locked_screen_switch_user.json b/needles/gnome/locked_screen_switch_user.json new file mode 100644 index 00000000..8541fea9 --- /dev/null +++ b/needles/gnome/locked_screen_switch_user.json @@ -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 diff --git a/needles/gnome/locked_screen_switch_user.png b/needles/gnome/locked_screen_switch_user.png new file mode 100644 index 00000000..868d1784 Binary files /dev/null and b/needles/gnome/locked_screen_switch_user.png differ diff --git a/needles/gnome/log_out_confirm.json b/needles/gnome/log_out_confirm.json new file mode 100644 index 00000000..5e402ee5 --- /dev/null +++ b/needles/gnome/log_out_confirm.json @@ -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 diff --git a/needles/gnome/log_out_confirm.png b/needles/gnome/log_out_confirm.png new file mode 100644 index 00000000..bd67423d Binary files /dev/null and b/needles/gnome/log_out_confirm.png differ diff --git a/needles/gnome/log_out_entry.json b/needles/gnome/log_out_entry.json new file mode 100644 index 00000000..f5cae3e9 --- /dev/null +++ b/needles/gnome/log_out_entry.json @@ -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 diff --git a/needles/gnome/log_out_entry.png b/needles/gnome/log_out_entry.png new file mode 100644 index 00000000..fa93f4e8 Binary files /dev/null and b/needles/gnome/log_out_entry.png differ diff --git a/needles/gnome/login_jack.json b/needles/gnome/login_jack.json new file mode 100644 index 00000000..eee0a9bc --- /dev/null +++ b/needles/gnome/login_jack.json @@ -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 diff --git a/needles/gnome/login_jack.png b/needles/gnome/login_jack.png new file mode 100644 index 00000000..2c5cebf2 Binary files /dev/null and b/needles/gnome/login_jack.png differ diff --git a/needles/gnome/login_jack_blue.json b/needles/gnome/login_jack_blue.json new file mode 100644 index 00000000..61db6ea7 --- /dev/null +++ b/needles/gnome/login_jack_blue.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "width": 36, + "xpos": 420, + "type": "match", + "height": 25, + "ypos": 270 + } + ], + "properties": [], + "tags": [ + "login_jack" + ] +} \ No newline at end of file diff --git a/needles/gnome/login_jack_blue.png b/needles/gnome/login_jack_blue.png new file mode 100644 index 00000000..026ad3b0 Binary files /dev/null and b/needles/gnome/login_jack_blue.png differ diff --git a/needles/gnome/login_jim.json b/needles/gnome/login_jim.json new file mode 100644 index 00000000..0139e8a1 --- /dev/null +++ b/needles/gnome/login_jim.json @@ -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 diff --git a/needles/gnome/login_jim.png b/needles/gnome/login_jim.png new file mode 100644 index 00000000..55eb71d0 Binary files /dev/null and b/needles/gnome/login_jim.png differ diff --git a/needles/gnome/login_wrong_password.json b/needles/gnome/login_wrong_password.json new file mode 100644 index 00000000..9b9ca398 --- /dev/null +++ b/needles/gnome/login_wrong_password.json @@ -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 diff --git a/needles/gnome/login_wrong_password.png b/needles/gnome/login_wrong_password.png new file mode 100644 index 00000000..e7a52017 Binary files /dev/null and b/needles/gnome/login_wrong_password.png differ diff --git a/needles/gnome/power_entry.json b/needles/gnome/power_entry.json new file mode 100644 index 00000000..8e75c109 --- /dev/null +++ b/needles/gnome/power_entry.json @@ -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 diff --git a/needles/gnome/power_entry.png b/needles/gnome/power_entry.png new file mode 100644 index 00000000..c5d54573 Binary files /dev/null and b/needles/gnome/power_entry.png differ diff --git a/needles/gnome/power_off_confirm.json b/needles/gnome/power_off_confirm.json new file mode 100644 index 00000000..f928f414 --- /dev/null +++ b/needles/gnome/power_off_confirm.json @@ -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 diff --git a/needles/gnome/power_off_confirm.png b/needles/gnome/power_off_confirm.png new file mode 100644 index 00000000..1a84f493 Binary files /dev/null and b/needles/gnome/power_off_confirm.png differ diff --git a/needles/gnome/power_off_entry.json b/needles/gnome/power_off_entry.json new file mode 100644 index 00000000..20ca031d --- /dev/null +++ b/needles/gnome/power_off_entry.json @@ -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 diff --git a/needles/gnome/power_off_entry.png b/needles/gnome/power_off_entry.png new file mode 100644 index 00000000..c9a21e62 Binary files /dev/null and b/needles/gnome/power_off_entry.png differ diff --git a/needles/gnome/restart_confirm.json b/needles/gnome/restart_confirm.json new file mode 100644 index 00000000..ea92d7c8 --- /dev/null +++ b/needles/gnome/restart_confirm.json @@ -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 diff --git a/needles/gnome/restart_confirm.png b/needles/gnome/restart_confirm.png new file mode 100644 index 00000000..e293433f Binary files /dev/null and b/needles/gnome/restart_confirm.png differ diff --git a/needles/gnome/russian/desktop_clean_russian-20200118.json b/needles/gnome/russian/apps_menu_button_russian-20200118.json similarity index 86% rename from needles/gnome/russian/desktop_clean_russian-20200118.json rename to needles/gnome/russian/apps_menu_button_russian-20200118.json index 531152bb..499967a5 100644 --- a/needles/gnome/russian/desktop_clean_russian-20200118.json +++ b/needles/gnome/russian/apps_menu_button_russian-20200118.json @@ -20,6 +20,6 @@ "DESKTOP-gnome", "ENV-DISTRI-fedora", "LANGUAGE-russian", - "graphical_desktop_clean" + "apps_menu_button" ] -} \ No newline at end of file +} diff --git a/needles/gnome/russian/desktop_clean_russian-20200118.png b/needles/gnome/russian/apps_menu_button_russian-20200118.png similarity index 100% rename from needles/gnome/russian/desktop_clean_russian-20200118.png rename to needles/gnome/russian/apps_menu_button_russian-20200118.png diff --git a/needles/gnome/switch_user_entry.json b/needles/gnome/switch_user_entry.json new file mode 100644 index 00000000..c3bc8ff0 --- /dev/null +++ b/needles/gnome/switch_user_entry.json @@ -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 diff --git a/needles/gnome/switch_user_entry.png b/needles/gnome/switch_user_entry.png new file mode 100644 index 00000000..916f4fbb Binary files /dev/null and b/needles/gnome/switch_user_entry.png differ diff --git a/needles/gnome/system_menu_button.json b/needles/gnome/system_menu_button.json new file mode 100644 index 00000000..7ae2b8b1 --- /dev/null +++ b/needles/gnome/system_menu_button.json @@ -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 diff --git a/needles/gnome/system_menu_button.png b/needles/gnome/system_menu_button.png new file mode 100644 index 00000000..09cc17c7 Binary files /dev/null and b/needles/gnome/system_menu_button.png differ diff --git a/needles/gnome/system_menu_button_grey.json b/needles/gnome/system_menu_button_grey.json new file mode 100644 index 00000000..9f7a7ffd --- /dev/null +++ b/needles/gnome/system_menu_button_grey.json @@ -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 diff --git a/needles/gnome/system_menu_button_grey.png b/needles/gnome/system_menu_button_grey.png new file mode 100644 index 00000000..2419ab6f Binary files /dev/null and b/needles/gnome/system_menu_button_grey.png differ diff --git a/needles/gnome/user_confirm_jack.json b/needles/gnome/user_confirm_jack.json new file mode 100644 index 00000000..26eadf66 --- /dev/null +++ b/needles/gnome/user_confirm_jack.json @@ -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 diff --git a/needles/gnome/user_confirm_jack.png b/needles/gnome/user_confirm_jack.png new file mode 100644 index 00000000..2540833c Binary files /dev/null and b/needles/gnome/user_confirm_jack.png differ diff --git a/needles/gnome/user_confirm_jim.json b/needles/gnome/user_confirm_jim.json new file mode 100644 index 00000000..388d8d43 --- /dev/null +++ b/needles/gnome/user_confirm_jim.json @@ -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 diff --git a/needles/gnome/user_confirm_jim.png b/needles/gnome/user_confirm_jim.png new file mode 100644 index 00000000..9de5c257 Binary files /dev/null and b/needles/gnome/user_confirm_jim.png differ diff --git a/needles/kde/apps/kde_ok-20190408.json b/needles/kde/apps/kde_ok-20190408.json index fa3ddb50..911e59b5 100644 --- a/needles/kde/apps/kde_ok-20190408.json +++ b/needles/kde/apps/kde_ok-20190408.json @@ -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 diff --git a/needles/kde/apps/konsole_runs.json b/needles/kde/apps/konsole_runs.json index 81a14736..21a8e4ac 100644 --- a/needles/kde/apps/konsole_runs.json +++ b/needles/kde/apps/konsole_runs.json @@ -1,7 +1,8 @@ { "properties": [], "tags": [ - "konsole_runs" + "konsole_runs", + "apps_run_terminal" ], "area": [ { diff --git a/needles/kde/desktop_clean-kde-larger-20180604.json b/needles/kde/desktop_clean-kde-larger-20180604.json deleted file mode 100644 index c75d7105..00000000 --- a/needles/kde/desktop_clean-kde-larger-20180604.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "area": [ - { - "ypos": 733, - "type": "match", - "width": 36, - "height": 35, - "xpos": 0 - } - ], - "tags": [ - "DESKTOP-kde", - "graphical_desktop_clean" - ], - "properties": [] -} \ No newline at end of file diff --git a/needles/kde/leave_button.json b/needles/kde/leave_button.json new file mode 100644 index 00000000..45f0ad70 --- /dev/null +++ b/needles/kde/leave_button.json @@ -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 diff --git a/needles/kde/leave_button.png b/needles/kde/leave_button.png new file mode 100644 index 00000000..d27e5842 Binary files /dev/null and b/needles/kde/leave_button.png differ diff --git a/needles/kde/lock_button_kde.json b/needles/kde/lock_button_kde.json new file mode 100644 index 00000000..65359f3c --- /dev/null +++ b/needles/kde/lock_button_kde.json @@ -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 diff --git a/needles/kde/lock_button_kde.png b/needles/kde/lock_button_kde.png new file mode 100644 index 00000000..5206c23c Binary files /dev/null and b/needles/kde/lock_button_kde.png differ diff --git a/needles/kde/log_out_entry.json b/needles/kde/log_out_entry.json new file mode 100644 index 00000000..06f05369 --- /dev/null +++ b/needles/kde/log_out_entry.json @@ -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 diff --git a/needles/kde/log_out_entry.png b/needles/kde/log_out_entry.png new file mode 100644 index 00000000..3bdd0f75 Binary files /dev/null and b/needles/kde/log_out_entry.png differ diff --git a/needles/kde/login_jack_kde.json b/needles/kde/login_jack_kde.json new file mode 100644 index 00000000..e8ed9463 --- /dev/null +++ b/needles/kde/login_jack_kde.json @@ -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 diff --git a/needles/kde/login_jack_kde.png b/needles/kde/login_jack_kde.png new file mode 100644 index 00000000..4c2b5731 Binary files /dev/null and b/needles/kde/login_jack_kde.png differ diff --git a/needles/kde/login_jim_kde.json b/needles/kde/login_jim_kde.json new file mode 100644 index 00000000..08dc4acc --- /dev/null +++ b/needles/kde/login_jim_kde.json @@ -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 diff --git a/needles/kde/login_jim_kde.png b/needles/kde/login_jim_kde.png new file mode 100644 index 00000000..0d4d9010 Binary files /dev/null and b/needles/kde/login_jim_kde.png differ diff --git a/needles/kde/login_jim_kde_bigger-20200402.json b/needles/kde/login_jim_kde_bigger-20200402.json new file mode 100644 index 00000000..bd53038c --- /dev/null +++ b/needles/kde/login_jim_kde_bigger-20200402.json @@ -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 diff --git a/needles/kde/login_jim_kde_bigger-20200402.png b/needles/kde/login_jim_kde_bigger-20200402.png new file mode 100644 index 00000000..d8895d5a Binary files /dev/null and b/needles/kde/login_jim_kde_bigger-20200402.png differ diff --git a/needles/kde/login_wrong_password_kde.json b/needles/kde/login_wrong_password_kde.json new file mode 100644 index 00000000..cc3802a7 --- /dev/null +++ b/needles/kde/login_wrong_password_kde.json @@ -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 diff --git a/needles/kde/login_wrong_password_kde.png b/needles/kde/login_wrong_password_kde.png new file mode 100644 index 00000000..75467a47 Binary files /dev/null and b/needles/kde/login_wrong_password_kde.png differ diff --git a/needles/kde/logout_confirm_kde.json b/needles/kde/logout_confirm_kde.json new file mode 100644 index 00000000..1600f584 --- /dev/null +++ b/needles/kde/logout_confirm_kde.json @@ -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 diff --git a/needles/kde/logout_confirm_kde.png b/needles/kde/logout_confirm_kde.png new file mode 100644 index 00000000..d39f610b Binary files /dev/null and b/needles/kde/logout_confirm_kde.png differ diff --git a/needles/kde/menu_button-kde-larger-20180604.json b/needles/kde/menu_button-kde-larger-20180604.json new file mode 100644 index 00000000..f66ccefc --- /dev/null +++ b/needles/kde/menu_button-kde-larger-20180604.json @@ -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" + ] +} diff --git a/needles/kde/desktop_clean-kde-larger-20180604.png b/needles/kde/menu_button-kde-larger-20180604.png similarity index 100% rename from needles/kde/desktop_clean-kde-larger-20180604.png rename to needles/kde/menu_button-kde-larger-20180604.png diff --git a/needles/kde/desktop_clean-upstream.json b/needles/kde/menu_button-upstream.json similarity index 74% rename from needles/kde/desktop_clean-upstream.json rename to needles/kde/menu_button-upstream.json index e0bd1c18..afc42a6b 100644 --- a/needles/kde/desktop_clean-upstream.json +++ b/needles/kde/menu_button-upstream.json @@ -13,6 +13,7 @@ ], "tags": [ "DESKTOP-kde", - "graphical_desktop_clean" + "apps_menu_button", + "system_menu_button" ] -} \ No newline at end of file +} diff --git a/needles/kde/desktop_clean-upstream.png b/needles/kde/menu_button-upstream.png similarity index 100% rename from needles/kde/desktop_clean-upstream.png rename to needles/kde/menu_button-upstream.png diff --git a/needles/kde/power_off_entry_kde.json b/needles/kde/power_off_entry_kde.json new file mode 100644 index 00000000..529bc2b6 --- /dev/null +++ b/needles/kde/power_off_entry_kde.json @@ -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 diff --git a/needles/kde/power_off_entry_kde.png b/needles/kde/power_off_entry_kde.png new file mode 100644 index 00000000..ab9dc64c Binary files /dev/null and b/needles/kde/power_off_entry_kde.png differ diff --git a/needles/kde/reboot_entry_kde.json b/needles/kde/reboot_entry_kde.json new file mode 100644 index 00000000..9ce267d2 --- /dev/null +++ b/needles/kde/reboot_entry_kde.json @@ -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 diff --git a/needles/kde/reboot_entry_kde.png b/needles/kde/reboot_entry_kde.png new file mode 100644 index 00000000..69522f4c Binary files /dev/null and b/needles/kde/reboot_entry_kde.png differ diff --git a/needles/kde/reboot_icon.json b/needles/kde/reboot_icon.json new file mode 100644 index 00000000..522f3b7f --- /dev/null +++ b/needles/kde/reboot_icon.json @@ -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 diff --git a/needles/kde/reboot_icon.png b/needles/kde/reboot_icon.png new file mode 100644 index 00000000..9f077c39 Binary files /dev/null and b/needles/kde/reboot_icon.png differ diff --git a/needles/kde/switch_user_entry_kde.json b/needles/kde/switch_user_entry_kde.json new file mode 100644 index 00000000..06d56596 --- /dev/null +++ b/needles/kde/switch_user_entry_kde.json @@ -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 diff --git a/needles/kde/switch_user_entry_kde.png b/needles/kde/switch_user_entry_kde.png new file mode 100644 index 00000000..bad6e84d Binary files /dev/null and b/needles/kde/switch_user_entry_kde.png differ diff --git a/needles/kde/user_confirm_jack_kde.json b/needles/kde/user_confirm_jack_kde.json new file mode 100644 index 00000000..48241b6b --- /dev/null +++ b/needles/kde/user_confirm_jack_kde.json @@ -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 diff --git a/needles/kde/user_confirm_jack_kde.png b/needles/kde/user_confirm_jack_kde.png new file mode 100644 index 00000000..3bf9ad39 Binary files /dev/null and b/needles/kde/user_confirm_jack_kde.png differ diff --git a/needles/kde/user_confirm_jim_kde.json b/needles/kde/user_confirm_jim_kde.json new file mode 100644 index 00000000..7791ca4a --- /dev/null +++ b/needles/kde/user_confirm_jim_kde.json @@ -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 diff --git a/needles/kde/user_confirm_jim_kde.png b/needles/kde/user_confirm_jim_kde.png new file mode 100644 index 00000000..ddcc62be Binary files /dev/null and b/needles/kde/user_confirm_jim_kde.png differ diff --git a/needles/kde/user_confirm_jim_term.json b/needles/kde/user_confirm_jim_term.json new file mode 100644 index 00000000..cbab1d00 --- /dev/null +++ b/needles/kde/user_confirm_jim_term.json @@ -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 diff --git a/needles/kde/user_confirm_jim_term.png b/needles/kde/user_confirm_jim_term.png new file mode 100644 index 00000000..90c2878d Binary files /dev/null and b/needles/kde/user_confirm_jim_term.png differ diff --git a/templates.fif.json b/templates.fif.json index 0ae3fab8..ce5b3356 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -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, diff --git a/tests/_graphical_input.pm b/tests/_graphical_input.pm index 86db3c54..21eb3c69 100644 --- a/tests/_graphical_input.pm +++ b/tests/_graphical_input.pm @@ -29,7 +29,7 @@ sub run { send_key "esc"; send_key "esc"; send_key "esc"; - check_desktop_clean; + check_desktop; } } diff --git a/tests/_graphical_wait_login.pm b/tests/_graphical_wait_login.pm index 5d0fe16e..e87f5861 100644 --- a/tests/_graphical_wait_login.pm +++ b/tests/_graphical_wait_login.pm @@ -91,7 +91,7 @@ sub run { # 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 { diff --git a/tests/apps_startstop/kde/aasetting.pm b/tests/apps_startstop/kde/aasetting.pm index 68c50428..8d173fbf 100644 --- a/tests/apps_startstop/kde/aasetting.pm +++ b/tests/apps_startstop/kde/aasetting.pm @@ -8,28 +8,7 @@ use utils; 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; } diff --git a/tests/desktop_background.pm b/tests/desktop_background.pm index 8579c88d..e045b274 100644 --- a/tests/desktop_background.pm +++ b/tests/desktop_background.pm @@ -4,7 +4,7 @@ use testapi; 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 diff --git a/tests/desktop_browser.pm b/tests/desktop_browser.pm index f1f2304b..1d4a9c9e 100644 --- a/tests/desktop_browser.pm +++ b/tests/desktop_browser.pm @@ -27,7 +27,7 @@ sub _open_new_tab { 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); diff --git a/tests/desktop_login.pm b/tests/desktop_login.pm new file mode 100644 index 00000000..54ad8e2e --- /dev/null +++ b/tests/desktop_login.pm @@ -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: diff --git a/tests/desktop_notifications.pm b/tests/desktop_notifications.pm index 58113e6e..31126739 100644 --- a/tests/desktop_notifications.pm +++ b/tests/desktop_notifications.pm @@ -67,7 +67,7 @@ sub run { 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. diff --git a/tests/desktop_terminal.pm b/tests/desktop_terminal.pm index 64486d3d..20f3a0ba 100644 --- a/tests/desktop_terminal.pm +++ b/tests/desktop_terminal.pm @@ -5,7 +5,7 @@ use utils; sub run { my $self=shift; - check_desktop_clean; + check_desktop; menu_launch_type('terminal'); wait_still_screen 5; # need to be root