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
48 lines
1.5 KiB
Perl
48 lines
1.5 KiB
Perl
package freeipa;
|
|
|
|
use strict;
|
|
|
|
use base 'Exporter';
|
|
use Exporter;
|
|
|
|
use testapi;
|
|
use main_common;
|
|
|
|
our @EXPORT = qw/add_user start_webui/;
|
|
|
|
# add a user with given username and surname, always uses the password
|
|
# "correcthorse". Assumes FreeIPA web UI is showing the Users screen.
|
|
sub add_user {
|
|
my ($user, $surname) = @_;
|
|
wait_still_screen 1;
|
|
assert_and_click "freeipa_webui_add_button";
|
|
assert_screen "freeipa_webui_add_user";
|
|
wait_still_screen 1;
|
|
type_safely $user;
|
|
wait_screen_change { send_key "tab"; };
|
|
# we don't need to be too careful here as the names don't matter
|
|
type_safely "Test";
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely $surname;
|
|
type_safely "\t\t\t\t";
|
|
type_safely "correcthorse";
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely "correcthorse\n";
|
|
}
|
|
|
|
# access the FreeIPA web UI and log in as a given user. Assumes
|
|
# it's at a console ready to start Firefox.
|
|
sub start_webui {
|
|
my ($user, $password) = @_;
|
|
type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.domain.local\n";
|
|
wait_still_screen 5;
|
|
assert_screen "freeipa_webui_login";
|
|
type_safely $user;
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely $password;
|
|
send_key "ret";
|
|
# if we logged in as 'admin' we should land on the admin 'Active
|
|
# users' screen, otherwise we should land on the user's own page
|
|
$user eq 'admin' ? assert_screen "freeipa_webui_users" : assert_screen "freeipa_webui_user";
|
|
wait_still_screen 3;
|
|
}
|