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(); # TEST TEST FOR DEBUGGING ONLY $self->root_console(tty => 4); type_string "while true; do date -u >> /tmp/pk.log; df -h >> /tmp/pk.log; ls -l /var/lib/PackageKit >> /tmp/pk.log 2>&1; sleep 1; done\n"; $self->root_console(tty => 3); desktop_vt; # END DEBUGGING # 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"); # Click the appropriate button to download the upgrade. assert_and_click("desktop_package_tool_upgrade_system", timeout => 180); if ($desktop eq "gnome") { # 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); assert_screen("auth_required"); # 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") { # Click on Update all assert_and_click("desktop_package_tool_update_apply", 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 see auth_required, it means the restart has been triggered # and we need to authorize it while (!check_screen("auth_required")) { sleep 15; } type_very_safely("$pword\n"); } } sub test_flags { return {fatal => 1}; } 1; # vim: set sw=4 et: