mirror of
https://github.com/rocky-linux/os-autoinst-distri-rocky.git
synced 2024-11-22 21:21:30 +00:00
669df14566
There are cases where we get logged back into the FreeIPA web UI automatically by a stale kerberos ticket or something. If we're logged in as the *right* user, let's just treat this as a soft failure and continue with the test. Signed-off-by: Adam Williamson <awilliam@redhat.com>
61 lines
1.9 KiB
Perl
61 lines
1.9 KiB
Perl
package freeipa;
|
|
|
|
use strict;
|
|
|
|
use base 'Exporter';
|
|
use Exporter;
|
|
|
|
use testapi;
|
|
use utils;
|
|
|
|
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) = @_;
|
|
# 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
|
|
my $user_screen = "freeipa_webui_user";
|
|
$user_screen = "freeipa_webui_users" if ($user eq 'admin');
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1439429
|
|
assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx";
|
|
type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.domain.local\n";
|
|
wait_still_screen 5;
|
|
# softfail on kerberos ticket bugs meaning we get auto-logged in
|
|
# as the requested user when we don't expect to be
|
|
if (check_screen $user_screen, 5) {
|
|
record_soft_failure "already logged in to web UI";
|
|
}
|
|
else {
|
|
assert_screen "freeipa_webui_login", 5;
|
|
type_safely $user;
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely $password;
|
|
send_key "ret";
|
|
assert_screen $user_screen;
|
|
}
|
|
wait_still_screen 3;
|
|
}
|