From 1444c5030bb88a9cc55e98fc820f8ad2828d975e Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 3 Apr 2017 16:23:45 -0700 Subject: [PATCH] Add tests with no user created during install Summary: This adds a new test suite, run for Workstation and KDE live images, which does not create a user during install. It then expects initial-setup (KDE) or gnome-initial-setup (Workstation) to appear after install, creates a user, and proceeds with normal boot. Note the ARM image test already covers the initial-setup text mode, and the ARM minimal image is the only case where that actually matters (it's not included in Server). Test Plan: Run the new tests, check they work. Run all old tests, check the changes didn't break them. Reviewers: jsedlak, jskladan Reviewed By: jsedlak Subscribers: tflink Differential Revision: https://phab.qa.fedoraproject.org/D1185 --- lib/utils.pm | 117 +++++++++++++++++- .../initialsetup_finish_configuration.json | 15 +++ .../initialsetup_finish_configuration.png | Bin 0 -> 69194 bytes templates | 28 +++++ tests/_do_install_and_reboot.pm | 55 +------- tests/_graphical_wait_login.pm | 54 ++++---- 6 files changed, 185 insertions(+), 84 deletions(-) create mode 100644 needles/anaconda/initialsetup_finish_configuration.json create mode 100644 needles/anaconda/initialsetup_finish_configuration.png diff --git a/lib/utils.pm b/lib/utils.pm index fc160075..8b91409d 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 get_milestone boot_decrypt check_release menu_launch_type start_cockpit repo_setup/; +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 get_milestone boot_decrypt check_release menu_launch_type start_cockpit repo_setup gnome_initial_setup anaconda_create_user/; sub run_with_error_check { my ($func, $error_screen) = @_; @@ -365,3 +365,118 @@ sub repo_setup { assert_script_run "rm -f /etc/yum.repos.d/fedora-cisco-openh264.repo"; } +sub gnome_initial_setup { + # Handle gnome-initial-setup, with variations for the pre-login + # mode (when no user was created during install) and post-login + # mode (when user was created during install) + my %args = ( + prelogin => 0, + timeout => 120, + @_ + ); + my $nexts = 3; + if ($args{prelogin}) { + $nexts = 5; + } + assert_screen "next_button", $args{timeout}; + # wait a bit in case of animation + wait_still_screen 3; + for my $n (1..$nexts) { + # click 'Next' $nexts times, moving the mouse to avoid + # highlight problems, sleeping to give it time to get + # to the next screen between clicks + mouse_set(100, 100); + wait_screen_change { assert_and_click "next_button"; }; + # for Japanese, we need to workaround a bug on the keyboard + # selection screen + if ($n == 1 && get_var("LANGUAGE") eq 'japanese') { + if (!check_screen 'initial_setup_kana_kanji_selected', 5) { + record_soft_failure 'kana kanji not selected: bgo#776189'; + assert_and_click 'initial_setup_kana_kanji'; + } + } + } + # click 'Skip' one time + mouse_set(100,100); + wait_screen_change { assert_and_click "skip_button"; }; + send_key "ret"; + if ($args{prelogin}) { + # create user + my $user_login = get_var("USER_LOGIN") || "test"; + my $user_password = get_var("USER_PASSWORD") || "weakpassword"; + type_very_safely $user_login; + wait_screen_change { assert_and_click "next_button"; }; + type_very_safely $user_password; + send_key "tab"; + type_very_safely $user_password; + wait_screen_change { assert_and_click "next_button"; }; + send_key "ret"; + } + else { + # wait for the stupid 'help' screen to show and kill it + assert_screen "getting_started"; + send_key "alt-f4"; + wait_still_screen 5; + # don't do it again on second load + } + set_var("_setup_done", 1); +} + +sub _type_user_password { + # convenience function used by anaconda_create_user, not meant + # for direct use + my $user_password = get_var("USER_PASSWORD") || "weakpassword"; + if (get_var("SWITCHED_LAYOUT")) { + # we double the password, the second time using the native + # layout, so the password has both ASCII and native characters + desktop_switch_layout "ascii", "anaconda"; + type_very_safely $user_password; + desktop_switch_layout "native", "anaconda"; + type_very_safely $user_password; + } + else { + type_very_safely $user_password; + } +} + +sub anaconda_create_user { + # Create a user, in the anaconda interface. This is here because + # the same code works both during install and for initial-setup, + # which runs post-install, so we can share it. + my %args = ( + timeout => 90, + @_ + ); + my $user_login = get_var("USER_LOGIN") || "test"; + assert_and_click "anaconda_install_user_creation", '', $args{timeout}; + assert_screen "anaconda_install_user_creation_screen"; + # wait out animation + wait_still_screen 2; + type_very_safely $user_login; + type_very_safely "\t\t\t\t"; + _type_user_password(); + wait_screen_change { send_key "tab"; }; + wait_still_screen 2; + _type_user_password(); + # even with all our slow typing this still *sometimes* seems to + # miss a character, so let's try again if we have a warning bar. + # But not if we're installing with a switched layout, as those + # will *always* result in a warning bar at this point (see below) + if (!get_var("SWITCHED_LAYOUT") && check_screen "anaconda_warning_bar", 3) { + wait_screen_change { send_key "shift-tab"; }; + wait_still_screen 2; + _type_user_password(); + wait_screen_change { send_key "tab"; }; + wait_still_screen 2; + _type_user_password(); + } + assert_and_click "anaconda_install_user_creation_make_admin"; + assert_and_click "anaconda_spoke_done"; + # since 20170105, we will get a warning here when the password + # contains non-ASCII characters. Assume only switched layouts + # produce non-ASCII characters, though this isn't strictly true + if (get_var('SWITCHED_LAYOUT') && check_screen "anaconda_warning_bar", 3) { + wait_still_screen 1; + assert_and_click "anaconda_spoke_done"; + } +} diff --git a/needles/anaconda/initialsetup_finish_configuration.json b/needles/anaconda/initialsetup_finish_configuration.json new file mode 100644 index 00000000..aa227849 --- /dev/null +++ b/needles/anaconda/initialsetup_finish_configuration.json @@ -0,0 +1,15 @@ +{ + "tags": [ + "initialsetup_finish_configuration" + ], + "properties": [], + "area": [ + { + "xpos": 852, + "ypos": 732, + "width": 148, + "height": 12, + "type": "match" + } + ] +} diff --git a/needles/anaconda/initialsetup_finish_configuration.png b/needles/anaconda/initialsetup_finish_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..e304c789e4c4fa4c40492a34ca28219275955b97 GIT binary patch literal 69194 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 { name => "install_default" }, }, + { + machine => { name => "64bit" }, + prio => 20, + product => { + arch => "x86_64", + distri => "fedora", + flavor => "Workstation-live-iso", + version => "*", + }, + test_suite => { name => "install_no_user" }, + }, + { + machine => { name => "64bit" }, + prio => 21, + product => { + arch => "x86_64", + distri => "fedora", + flavor => "KDE-live-iso", + version => "*", + }, + test_suite => { name => "install_no_user" }, + }, { machine => { name => "64bit" }, prio => 40, @@ -2381,5 +2403,11 @@ { key => "TEST_TARGET", value => "NONE" }, ], }, + { + name => "install_no_user", + settings => [ + { key => "INSTALL_NO_USER", value => "1" }, + ], + }, ], } diff --git a/tests/_do_install_and_reboot.pm b/tests/_do_install_and_reboot.pm index 5f390c86..327089f1 100644 --- a/tests/_do_install_and_reboot.pm +++ b/tests/_do_install_and_reboot.pm @@ -3,22 +3,6 @@ use strict; use testapi; use utils; -sub type_user_password { - my $self = shift; - my $user_password = get_var("USER_PASSWORD") || "weakpassword"; - if (get_var("SWITCHED_LAYOUT")) { - # we double the password, the second time using the native - # layout, so the password has both ASCII and native characters - desktop_switch_layout "ascii", "anaconda"; - type_very_safely $user_password; - desktop_switch_layout "native", "anaconda"; - type_very_safely $user_password; - } - else { - type_very_safely $user_password; - } -} - sub run { my $self = shift; # Anaconda hub @@ -56,43 +40,10 @@ sub run { } assert_and_click "anaconda_spoke_done"; - # Set user details - # wait out animation + # Wait out animation sleep 3; - my $user_login = get_var("USER_LOGIN") || "test"; - unless ($user_login eq 'false') { - assert_and_click "anaconda_install_user_creation"; - assert_screen "anaconda_install_user_creation_screen"; - # wait out animation - wait_still_screen 2; - type_very_safely $user_login; - type_very_safely "\t\t\t\t"; - $self->type_user_password(); - wait_screen_change { send_key "tab"; }; - wait_still_screen 2; - $self->type_user_password(); - # even with all our slow typing this still *sometimes* seems to - # miss a character, so let's try again if we have a warning bar. - # But not if we're installing with a switched layout, as those - # will *always* result in a warning bar at this point (see below) - if (!get_var("SWITCHED_LAYOUT") && check_screen "anaconda_warning_bar", 3) { - wait_screen_change { send_key "shift-tab"; }; - wait_still_screen 2; - $self->type_user_password(); - wait_screen_change { send_key "tab"; }; - wait_still_screen 2; - $self->type_user_password(); - } - assert_and_click "anaconda_install_user_creation_make_admin"; - assert_and_click "anaconda_spoke_done"; - # since 20170105, we will get a warning here when the password - # contains non-ASCII characters. Assume only switched layouts - # produce non-ASCII characters, though this isn't strictly true - if (get_var('SWITCHED_LAYOUT') && check_screen "anaconda_warning_bar", 3) { - wait_still_screen 1; - assert_and_click "anaconda_spoke_done"; - } - } + # Set user details + anaconda_create_user() unless (get_var("USER_LOGIN") eq 'false' || get_var("INSTALL_NO_USER")); # Check username (and hence keyboard layout) if non-English if (get_var('LANGUAGE')) { diff --git a/tests/_graphical_wait_login.pm b/tests/_graphical_wait_login.pm index 1184f2c1..cb567f37 100644 --- a/tests/_graphical_wait_login.pm +++ b/tests/_graphical_wait_login.pm @@ -13,6 +13,18 @@ sub run { $wait_time = 1800 if (get_var("KICKSTART")); $wait_time = 6000 if (get_var("UPGRADE") && !get_var("ENCRYPT_PASSWORD")); + # Handle pre-login initial setup if we're doing INSTALL_NO_USER + if (get_var("INSTALL_NO_USER") && !get_var("_setup_done")) { + if (get_var("DESKTOP") eq 'gnome') { + gnome_initial_setup(prelogin=>1, timeout=>$wait_time); + } + else { + anaconda_create_user(timeout=>$wait_time); + assert_and_click "initialsetup_finish_configuration"; + set_var("_setup_done", 1); + } + $wait_time = 300; + } # Wait for the login screen boot_to_login_screen(timeout => $wait_time); # do user login unless USER_LOGIN is set to string 'false' @@ -42,39 +54,19 @@ sub run { # do it if ADVISORY is set, as for the update testing flow, # START_AFTER_TEST is set but a no-op and this hasn't happened if (get_var("DESKTOP") eq 'gnome' && (get_var("ADVISORY") || !get_var("START_AFTER_TEST"))) { - # as this test gets loaded twice on the ADVISORY flow, - # keep track of whether this happened already - unless (get_var("_gis_done")) { - assert_screen "next_button", 120; - # wait a bit in case of animation - wait_still_screen 3; - for my $n (1..3) { - # click 'Next' three times, moving the mouse to avoid - # highlight problems, sleeping to give it time to get - # to the next screen between clicks - mouse_set(100, 100); - wait_screen_change { assert_and_click "next_button"; }; - # for Japanese, we need to workaround a bug on the keyboard - # selection screen - if ($n == 1 && get_var("LANGUAGE") eq 'japanese') { - if (!check_screen 'initial_setup_kana_kanji_selected', 5) { - record_soft_failure 'kana kanji not selected: bgo#776189'; - assert_and_click 'initial_setup_kana_kanji'; - } - } - } - # click 'Skip' one time - mouse_set(100,100); - wait_screen_change { assert_and_click "skip_button"; }; - send_key "ret"; - # wait for the stupid 'help' screen to show and kill it - assert_screen "getting_started"; - send_key "alt-f4"; - wait_still_screen 5; - # don't do it again on second load - set_var("_gis_done", 1); + # as this test gets loaded twice on the ADVISORY flow, and + # we might be on the INSTALL_NO_USER flow, check whether + # this happened already + unless (get_var("_setup_done")) { + gnome_initial_setup(); } } + if (get_var("DESKTOP") eq 'gnome' && get_var("INSTALL_NO_USER")) { + # wait for the stupid 'help' screen to show and kill it + assert_screen "getting_started"; + send_key "alt-f4"; + wait_still_screen 5; + } # Move the mouse somewhere it won't highlight the match areas mouse_set(300, 200);