1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-22 05:53:09 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Adam Williamson
aa5e905b70 abstract desktop terminal launch, refactor user switch, enable for KDE
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-10-09 13:41:58 -07:00
12 changed files with 59 additions and 43 deletions

View File

@ -6,7 +6,7 @@ use base 'Exporter';
use Exporter; use Exporter;
use lockapi; use lockapi;
use testapi qw(is_serial_terminal :DEFAULT); use testapi qw(is_serial_terminal :DEFAULT);
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 boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications desktop_launch_terminal solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login/; 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 boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login desktop_launch_terminal/;
# We introduce this global variable to hold the list of applications that have # We introduce this global variable to hold the list of applications that have
@ -1609,22 +1609,6 @@ sub register_application {
print("APPLICATION REGISTERED: $application \n"); print("APPLICATION REGISTERED: $application \n");
} }
# launch a terminal from a desktop, using the most efficient/reliable
# approach (not appropriate if we really need to test launching it a
# specific way)
sub desktop_launch_terminal {
my $desktop = get_var("DESKTOP");
if ($desktop eq "i3") {
send_key "alt-ret";
}
elsif ($desktop eq "kde") {
send_key "ctrl-alt-t";
}
else {
menu_launch_type "terminal";
}
}
# The KDE desktop tests are very difficult to maintain, because the transparency # The KDE desktop tests are very difficult to maintain, because the transparency
# of the menu requires a lot of different needles to cover the elements. # of the menu requires a lot of different needles to cover the elements.
# Therefore it is useful to change the background to a solid colour. # Therefore it is useful to change the background to a solid colour.
@ -1668,8 +1652,7 @@ sub solidify_wallpaper {
} }
elsif ($desktop eq "gnome") { elsif ($desktop eq "gnome") {
# Start the terminal to set up backgrounds. # Start the terminal to set up backgrounds.
desktop_launch_terminal; menu_launch_type("terminal");
assert_screen "apps_run_terminal";
# wait to be sure it's fully open # wait to be sure it's fully open
wait_still_screen(stilltime => 5, similarity_level => 38); wait_still_screen(stilltime => 5, similarity_level => 38);
# When the application opens, run command in it to set the background to black # When the application opens, run command in it to set the background to black
@ -1777,8 +1760,7 @@ sub set_update_notification_timestamp {
sub start_applications { sub start_applications {
my @applications = @_; my @applications = @_;
# Open the terminal # Open the terminal
desktop_launch_terminal; menu_launch_type("terminal");
assert_screen("apps_run_terminal");
wait_still_screen(2); wait_still_screen(2);
# Iterate over the application list # Iterate over the application list
# and start each application from it. # and start each application from it.
@ -1840,4 +1822,20 @@ sub dm_perform_login {
send_key "ret"; send_key "ret";
} }
# launch a terminal from a desktop, using the most efficient/reliable
# approach (not appropriate if we really need to test launching it a
# specific way)
sub desktop_launch_terminal {
my $desktop = get_var("DESKTOP");
if ($desktop eq "i3") {
send_key "alt-ret";
}
elif ($desktop eq "kde") {
send_key "ctrl-alt-t";
}
else {
menu_launch_type "terminal";
}
}
1; 1;

View File

@ -6,8 +6,7 @@ use utils;
sub run { sub run {
my $self = shift; my $self = shift;
desktop_launch_terminal; menu_launch_type 'terminal';
assert_screen "apps_run_terminal";
wait_still_screen 5; wait_still_screen 5;
type_very_safely "vncviewer -FullScreen -listen\n"; type_very_safely "vncviewer -FullScreen -listen\n";
mutex_create 'vncconnect_client_ready'; mutex_create 'vncconnect_client_ready';

View File

@ -24,7 +24,7 @@ sub run {
my $self = shift; my $self = shift;
# Open the terminal to enable us to set the # Open the terminal to enable us to set the
# volume level. # volume level.
desktop_launch_terminal; menu_launch_type("terminal");
assert_screen("apps_run_terminal"); assert_screen("apps_run_terminal");
# Set the volume to 0% # Set the volume to 0%
type_safely('amixer -D pipewire sset Master 0%'); type_safely('amixer -D pipewire sset Master 0%');

View File

@ -63,8 +63,10 @@ sub connect_localhost {
# Therefore, we will use a different approach - we will enable # Therefore, we will use a different approach - we will enable
# CLI keyring integration and perform an SFTP connection # CLI keyring integration and perform an SFTP connection
# in Konsole. # in Konsole.
desktop_launch_terminal; # try and avoid double-typing issues
assert_screen("apps_run_terminal"); kde_doublek_workaround;
menu_launch_type("konsole");
assert_screen("konsole_runs");
# Export the environmental variables, this is needed for the process # Export the environmental variables, this is needed for the process
# to work correctly. # to work correctly.
export_kde_vars(); export_kde_vars();

View File

@ -28,11 +28,18 @@ sub export_kde_vars {
sub connect_localhost { sub connect_localhost {
my $type = shift; my $type = shift;
# Start the terminal application # Start the terminal application. On KDE also export the variables.
desktop_launch_terminal; if (get_var("DESKTOP") eq "gnome") {
assert_screen("apps_run_terminal"); menu_launch_type("terminal");
# On KDE also export the variables assert_screen("apps_run_terminal");
export_kde_vars() if (get_var("DESKTOP") eq "kde"); }
else {
# try and avoid double-typing issues
kde_doublek_workaround;
menu_launch_type("konsole");
assert_screen("konsole_runs");
export_kde_vars();
}
# Establish the SFTP connection to the localhost. # Establish the SFTP connection to the localhost.
# A dialogue should appear to collect credentials to open # A dialogue should appear to collect credentials to open

View File

@ -9,8 +9,6 @@ sub run {
my $self = shift; my $self = shift;
# Start the application # Start the application
# we don't use desktop_launch_terminal here as we specifically
# want to run 'konsole' from the kicker menu in this test
menu_launch_type 'konsole'; menu_launch_type 'konsole';
# Check that it is started # Check that it is started
assert_screen 'konsole_runs', timeout => 60; assert_screen 'konsole_runs', timeout => 60;

View File

@ -27,12 +27,12 @@ sub run {
desktop_switch_layout 'ascii'; desktop_switch_layout 'ascii';
wait_still_screen(2); wait_still_screen(2);
desktop_launch_terminal; menu_launch_type("terminal");
# Similarly to _graphical_input.pm, repeat running the command # Similarly to _graphical_input.pm, repeat running the command
# if it fails the first time (it often does). # if it fails the first time (it often does).
unless (check_screen "apps_run_terminal", 30) { unless (check_screen "apps_run_terminal", 30) {
check_desktop; check_desktop;
desktop_launch_terminal; menu_launch_type("terminal");
} }
assert_screen("apps_run_terminal"); assert_screen("apps_run_terminal");
wait_still_screen(stilltime => 5, similarity_level => 42); wait_still_screen(stilltime => 5, similarity_level => 42);

View File

@ -152,6 +152,7 @@ sub logout_user {
sub switch_user { sub switch_user {
# Switch the user, i.e. leave the current user logged in and # Switch the user, i.e. leave the current user logged in and
# log in another user simultaneously. # log in another user simultaneously.
send_key "ret";
if (check_screen "locked_screen_switch_user", 5) { if (check_screen "locked_screen_switch_user", 5) {
assert_and_click "locked_screen_switch_user"; assert_and_click "locked_screen_switch_user";
} }

View File

@ -146,7 +146,7 @@ sub run {
# we launch a terminal so that the top of the screen is filled with # we launch a terminal so that the top of the screen is filled with
# something that we know and can check that it is not covered by a # something that we know and can check that it is not covered by a
# notification popup from dunst # notification popup from dunst
desktop_launch_terminal; send_key('alt-ret');
assert_screen("apps_run_terminal"); assert_screen("apps_run_terminal");
assert_script_run('notify-send -t 10000 "foo"'); assert_script_run('notify-send -t 10000 "foo"');
assert_screen("i3_dunst_foo_notification", timeout => 5); assert_screen("i3_dunst_foo_notification", timeout => 5);

View File

@ -71,11 +71,17 @@ sub run {
} }
# Let's open the terminal. We will use it to start the applications # Let's open the terminal. We will use it to start the applications
# as well as to check for the name of the printed file. # as well as to check for the name of the printed file.
desktop_launch_terminal; if ($desktop eq "i3") {
assert_screen("apps_run_terminal"); send_key('alt-ret');
wait_still_screen 3; assert_screen("apps_run_terminal");
# switch to tabbed mode # switch to tabbed mode
send_key("alt-w") if ($desktop eq "i3"); send_key("alt-w");
}
else {
menu_launch_type($term);
wait_still_screen(5);
}
# Open the text editor and maximize it. # Open the text editor and maximize it.
wait_screen_change { type_very_safely "$editor /home/$user/testfile.txt &\n"; }; wait_screen_change { type_very_safely "$editor /home/$user/testfile.txt &\n"; };
wait_still_screen(stilltime => 2, similarity_level => 45); wait_still_screen(stilltime => 2, similarity_level => 45);

View File

@ -10,7 +10,12 @@ sub run {
check_desktop; check_desktop;
# try and avoid double-typing issues # try and avoid double-typing issues
kde_doublek_workaround(key => 't') if ($desktop eq "kde"); kde_doublek_workaround(key => 't') if ($desktop eq "kde");
desktop_launch_terminal; if ($desktop eq "i3") {
send_key("alt-ret");
}
else {
menu_launch_type('terminal');
}
assert_screen "apps_run_terminal"; assert_screen "apps_run_terminal";
wait_still_screen(stilltime => 5, similarity_level => 42); wait_still_screen(stilltime => 5, similarity_level => 42);
# need to be root # need to be root

View File

@ -7,7 +7,7 @@ sub run {
my $password = get_var('USER_PASSWORD', 'weakpassword'); my $password = get_var('USER_PASSWORD', 'weakpassword');
# launch a terminal first # launch a terminal first
desktop_launch_terminal; send_key("alt-ret");
assert_screen("apps_run_terminal"); assert_screen("apps_run_terminal");
# start blivet_gui, mousepad and check that they are split on the screen # start blivet_gui, mousepad and check that they are split on the screen