1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-24 23:03:08 +00:00
os-autoinst-distri-fedora/tests/graphical_upgrade_run.pm
Lukas Ruzicka d50d59731d Add the graphical upgrade tests.
This PR builds on some elements of the current upgrade process,
such as upgrade_boot, upgrade_preinstall, upgrade_postinstall, but
replaces the upgrade_run with graphical_upgrade_run to use graphical
methods to upgrade the system.
This would not be possible without necessary settings, that are
performed by graphical_upgrade_prerequisites.
Works for both Gnome and KDE.
2024-03-05 14:28:16 -08:00

104 lines
3.4 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
# This method does the basic login to a DE,
# it can distinguish between Gnome and KDE.
# We are using it to make the code a little
# lighter.
sub session_login {
my $desktop = shift;
my $pword = get_var("USER_PASSWORD") // "weakpassword";
if ($desktop eq "gnome") {
# For Gnome, we need to press Enter first
# to show the password field, then we type
# in the password.
send_key("ret");
wait_still_screen(1);
}
# For both DEs
type_very_safely("$pword\n");
}
sub run {
my $self = shift;
my $rawrel = get_var("RAWREL");
my $user = get_var("USER_LOGIN") // "test";
my $pword = get_var("USER_PASSWORD") // "weakpassword";
my $desktop = get_var("DESKTOP");
# The previous test, 'graphical_upgrade_prerequsites' reset
# the machine, so we will deal with booting it and
# login to the $desktop.
boot_to_login_screen();
session_login($desktop);
# If we are on Gnome, we have seen the welcome screen already
# in the previous step, so we do not want to repeat this.
# However, for KDE we will deal with it.
if ($desktop eq "kde") {
handle_welcome_screen();
}
# Let's check, that the desktop is shown.
check_desktop();
# Start the package manager application depending
# on which DE we are on.
my $pkgmgr = "software";
$pkgmgr = "discover" if ($desktop eq "kde");
menu_launch_type($pkgmgr);
# On Gnome, the upgrade is safely visible when
# we visit the Update page by clicking on the
# Update icon. Let's click on that icon on
# both DEs, just to make sure.
assert_and_click("desktop_package_tool_update");
# Check that the new upgrade version is available.
assert_screen("desktop_package_tool_updates_available", timeout => 180);
if ($desktop eq "gnome") {
# When a new release is available, there will be a download button,
# click on that button to download the upgrade packages.
assert_and_click("desktop_package_tool_update_download");
# Restart the computer to apply upgrades, when the download is complete.
# Downloading the upgrade packages may take a long time
# so let's check until we find it.
assert_and_click("desktop_package_tool_restart_upgrade", timeout => 1200);
# Type the password to confirm.
type_very_safely("$pword\n");
# Click on the 'restart and install' button
# to restart into the upgrade session.
assert_and_click("gnome_reboot_confirm");
}
elsif ($desktop eq "kde") {
# There is a button to upgrade to a new major version,
# click it.
assert_and_click("desktop_package_tool_upgrade_system");
# Click on Update all
assert_and_click("desktop_package_tool_update_all", timeout => 1200);
# Once we click that button, we can check the checkbutton
# for restarting the computer automatically.
assert_and_click("desktop_package_tool_restart_automatically");
# When we still see the 'restart_automatically' tag, we
# are still downloading. When it disappears, it means that
# the machine gets restarted and we can stop this module.
while (!check_screen("auth_required")) {
sleep 15;
}
type_very_safely("$pword\n");
}
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: