e1ec1997af
Summary: the main thing this does is try and type slower in X - this should cover nearly everywhere we type anything in X, and make it type slower. We also add a bit more safety checking to some old tests which didn't have it (mainly _do_install_and_reboot) - wait_still_screen after typing to make sure all the keypresses were registered before continuing. This is an attempt to mitigate the problems we've seen where the wrong text gets typed into the wrong places and the tests break. This branch is live on staging atm. It still has *some* issues, but I do think it's an improvement. Test Plan: run the tests (probably several times), compare to runs without the change, see if it's better or worse... Reviewers: jskladan, garretraziel Reviewed By: garretraziel Subscribers: tflink Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D993
72 lines
2.7 KiB
Perl
72 lines
2.7 KiB
Perl
use base "installedtest";
|
|
use strict;
|
|
use testapi;
|
|
use main_common;
|
|
|
|
# we are very paranoid with waits and typing speed in this test
|
|
# because the system can be very busy; it's effectively first boot of
|
|
# a freshly installed system and we're running Firefox for the first
|
|
# time, which causes an awful lot of system load, and there's lots of
|
|
# screen change potentially going on. This makes the test quite slow,
|
|
# but it's best to be safe. If you're working on the test you might
|
|
# want to tweak the waits down a bit and use type_safely instead of
|
|
# type_very_safely for your test runs, just to save your time.
|
|
|
|
sub run {
|
|
my $self = shift;
|
|
assert_screen 'graphical_desktop_clean';
|
|
send_key 'alt-f1';
|
|
# wait out animations
|
|
wait_still_screen 2;
|
|
assert_and_click 'browser_launcher';
|
|
assert_screen 'browser';
|
|
wait_idle 5;
|
|
# open a new tab so we don't race with the default page load
|
|
# (also focuses the location bar for us)
|
|
send_key 'ctrl-t';
|
|
wait_still_screen 2;
|
|
wait_idle 3;
|
|
# check FAS, typing slowly to avoid errors
|
|
type_very_safely "https://admin.fedoraproject.org/accounts/\n";
|
|
assert_screen "browser_fas_home";
|
|
send_key 'ctrl-t';
|
|
wait_still_screen 2;
|
|
wait_idle 2;
|
|
type_very_safely "https://kernel.org\n";
|
|
assert_and_click "browser_kernelorg_patch";
|
|
assert_and_click "browser_download_save";
|
|
send_key 'ret';
|
|
# browsers do...something...when the download completes, and we
|
|
# expect there's a single click to make it go away and return
|
|
# browser to a state where ctrl-t will work
|
|
assert_and_click "browser_download_complete";
|
|
# we'll check it actually downloaded later
|
|
# add-on test: at present all desktops we test (KDE, GNOME) are
|
|
# using Firefox by default so we do this unconditionally, but we
|
|
# may need to conditionalize it if we ever test desktops whose
|
|
# default browser doesn't support add-ons or uses different ones
|
|
send_key 'ctrl-t';
|
|
wait_still_screen 2;
|
|
wait_idle 2;
|
|
type_very_safely "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/\n";
|
|
assert_and_click "firefox_addon_add";
|
|
assert_and_click "firefox_addon_install";
|
|
assert_and_click "firefox_addon_success";
|
|
# go to a console and check download worked
|
|
$self->root_console(tty=>3);
|
|
my $user = get_var("USER_LOGIN", "test");
|
|
assert_script_run "test -e /home/$user/Downloads/patch-*.xz";
|
|
}
|
|
|
|
sub test_flags {
|
|
# without anything - rollback to 'lastgood' snapshot if failed
|
|
# 'fatal' - whole test suite is in danger if this fails
|
|
# 'milestone' - after this test succeeds, update 'lastgood'
|
|
# 'important' - if this fails, set the overall state to 'fail'
|
|
return { fatal => 1 };
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|