Rejig how we count the g-i-s screens we'll encounter

Trying to keep track of what these magic numbers mean is really
getting messy, so let's do it a bit more explicitly, using the
page names g-i-s uses internally, and lots of comments. This
should make it clearer and more maintainable when stuff changes.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2018-03-29 16:48:25 -07:00
parent 70d3f0269c
commit 89bdea410f

View File

@ -435,24 +435,44 @@ sub gnome_initial_setup {
timeout => 120, timeout => 120,
@_ @_
); );
my $nexts = 3;
if ($args{prelogin}) {
my $version = lc(get_var("VERSION")); my $version = lc(get_var("VERSION"));
if ($version eq 'rawhide' || $version > 27) { # the pages we *may* need to click 'next' on. *NOTE*: 'language'
# several screens are suppressed in pre-login g-i-s: # is the 'welcome' page, and is in fact never truly skipped; if
# https://fedoraproject.org/wiki/Changes/ReduceInitialSetupRedundancy # it's configured to be skipped, it just shows without the language
$nexts = 2; # selection widget (so it's a bare 'welcome' page). Current openQA
# tests never see 'eula' or 'network'. You can find the upstream
# list in gnome-initial-setup/gnome-initial-setup.c , and the skip
# config file for Fedora is vendor.conf in the package repo.
my @nexts = ('language', 'keyboard', 'privacy', 'timezone', 'software');
# now, we're going to figure out how many of them this test will
# *actually* see...
if ($args{prelogin}) {
# 'language', 'keyboard' and 'timezone' are skipped on F28+ in
# the 'new user' mode by
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
# except this doesn't seem to take effect on FAW:
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787#c16 ,
# and 'language' is never *really* skipped (see above)
@nexts = grep {$_ ne 'keyboard'} @nexts if (($version eq 'rawhide' || $version > 27) && get_var("SUBVARIANT") ne 'AtomicWorkstation');
@nexts = grep {$_ ne 'timezone'} @nexts if (($version eq 'rawhide' || $version > 27) && get_var("SUBVARIANT") ne 'AtomicWorkstation');
} }
else { else {
$nexts = 5; # 'timezone' and 'software' are suppressed for the 'existing user'
} # form of g-i-s
@nexts = grep {$_ ne 'software'} @nexts;
@nexts = grep {$_ ne 'timezone'} @nexts;
} }
# 'additional software sources' screen does not display on F28+:
# https://bugzilla.gnome.org/show_bug.cgi?id=794825
@nexts = grep {$_ ne 'software'} @nexts if ($version eq 'rawhide' || $version > 27);
assert_screen "next_button", $args{timeout}; assert_screen "next_button", $args{timeout};
# wait a bit in case of animation # wait a bit in case of animation
wait_still_screen 3; wait_still_screen 3;
# GDM 3.24.1 dumps a cursor in the middle of the screen here... # GDM 3.24.1 dumps a cursor in the middle of the screen here...
mouse_hide if ($args{prelogin}); mouse_hide if ($args{prelogin});
for my $n (1..$nexts) { for my $n (1..scalar(@nexts)) {
# click 'Next' $nexts times, moving the mouse to avoid # click 'Next' $nexts times, moving the mouse to avoid
# highlight problems, sleeping to give it time to get # highlight problems, sleeping to give it time to get
# to the next screen between clicks # to the next screen between clicks
@ -467,7 +487,7 @@ sub gnome_initial_setup {
} }
} }
} }
# click 'Skip' one time # click 'Skip' one time (this is the 'goa' screen)
mouse_set(100,100); mouse_set(100,100);
wait_screen_change { assert_and_click "skip_button"; }; wait_screen_change { assert_and_click "skip_button"; };
send_key "ret"; send_key "ret";