Adjust desktop_login and needles for KDE power option changes
KDE in F34+ is now placing sleep, restart and shutdown buttons right on the system menu, not in a submenu. So we need to sort of tweak this logic. The approach here is: we count the GNOME submenu as both a "power" and "leave" menu, so the needle to enter it has both tags. KDE still has a "leave" submenu, but the power options are not in a submenu any more, so the new "leave" needle only has the leave tag, not the power tag. For "leave" actions we just unconditionally expect the "leave" tag; for power actions we first match on *either* the submenu tag (for GNOME and earlier KDE) *or* the action tag, click whatever we found, and then if we matched the submenu (not the action), we assert and click the action. After that all paths should be in sync again and we can continue. Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
parent
818bacfb60
commit
4243932d09
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"power_entry"
|
"power_entry",
|
||||||
|
"leave_button"
|
||||||
],
|
],
|
||||||
"area": [
|
"area": [
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
],
|
],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"tags": [
|
"tags": [
|
||||||
"leave_button",
|
"leave_button"
|
||||||
"power_entry"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
15
needles/kde/reboot_entry_kde-20210212.json
Normal file
15
needles/kde/reboot_entry_kde-20210212.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 19,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 343,
|
||||||
|
"height": 20,
|
||||||
|
"ypos": 690
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"reboot_entry"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/kde/reboot_entry_kde-20210212.png
Normal file
BIN
needles/kde/reboot_entry_kde-20210212.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
@ -113,9 +113,9 @@ sub check_user_logged_in {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub logout_user {
|
sub logout_user {
|
||||||
# Do steps to log out the user to reach the GDM screen.
|
# Do steps to log out the user to reach the login screen.
|
||||||
assert_and_click "system_menu_button";
|
assert_and_click "system_menu_button";
|
||||||
assert_and_click "power_entry";
|
assert_and_click "leave_button";
|
||||||
assert_and_click "log_out_entry";
|
assert_and_click "log_out_entry";
|
||||||
assert_and_click "log_out_confirm";
|
assert_and_click "log_out_confirm";
|
||||||
wait_still_screen 5;
|
wait_still_screen 5;
|
||||||
@ -134,7 +134,7 @@ sub switch_user {
|
|||||||
# and unlocked session, where user switching differs
|
# and unlocked session, where user switching differs
|
||||||
# from a locked but active session.
|
# from a locked but active session.
|
||||||
assert_and_click "system_menu_button";
|
assert_and_click "system_menu_button";
|
||||||
assert_and_click "power_entry";
|
assert_and_click "leave_button";
|
||||||
assert_and_click "switch_user_entry";
|
assert_and_click "switch_user_entry";
|
||||||
wait_still_screen 5;
|
wait_still_screen 5;
|
||||||
# Add sleep to slow down the process a bit
|
# Add sleep to slow down the process a bit
|
||||||
@ -145,10 +145,13 @@ sub switch_user {
|
|||||||
sub reboot_system {
|
sub reboot_system {
|
||||||
# Reboots the system and handles everything until the next GDM screen.
|
# Reboots the system and handles everything until the next GDM screen.
|
||||||
if (check_screen "system_menu_button") {
|
if (check_screen "system_menu_button") {
|
||||||
# Everywhere in Gnome and inside the KDE, there is a menu through which
|
# In a logged in desktop, we access power options through system menu
|
||||||
# we can access the operationg system switching controls.
|
|
||||||
assert_and_click "system_menu_button";
|
assert_and_click "system_menu_button";
|
||||||
assert_and_click "power_entry";
|
# In KDE since F34, reboot entry is right here, otherwise we need to
|
||||||
|
# enter some kind of power option submenu
|
||||||
|
assert_screen ["power_entry", "reboot_entry"];
|
||||||
|
click_lastmatch;
|
||||||
|
if (match_has_tag("power_entry")) {
|
||||||
my $relnum = get_release_number;
|
my $relnum = get_release_number;
|
||||||
if ($desktop eq "gnome" && $relnum < 33) {
|
if ($desktop eq "gnome" && $relnum < 33) {
|
||||||
# In GNOME before F33, some of the entries are brought together, while
|
# In GNOME before F33, some of the entries are brought together, while
|
||||||
@ -156,13 +159,12 @@ sub reboot_system {
|
|||||||
# correct to me to assign restarting tags to needles powering off the
|
# correct to me to assign restarting tags to needles powering off the
|
||||||
# machine. So I split this for KDE and GNOME < F33:
|
# machine. So I split this for KDE and GNOME < F33:
|
||||||
assert_and_click "power_off_entry";
|
assert_and_click "power_off_entry";
|
||||||
assert_and_click "restart_confirm";
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# And for KDE and GNOME >= F33:
|
# And for KDE and GNOME >= F33:
|
||||||
assert_and_click "reboot_entry";
|
assert_and_click "reboot_entry";
|
||||||
assert_and_click "restart_confirm";
|
|
||||||
}
|
}
|
||||||
|
assert_and_click "restart_confirm";
|
||||||
}
|
}
|
||||||
# When we are outside KDE (not logged in), the only way to reboot is to click
|
# When we are outside KDE (not logged in), the only way to reboot is to click
|
||||||
# the reboot icon.
|
# the reboot icon.
|
||||||
@ -177,8 +179,10 @@ sub power_off {
|
|||||||
# do, because at the moment I do not know about a possibility to assert a
|
# do, because at the moment I do not know about a possibility to assert a
|
||||||
# switched-off VM.
|
# switched-off VM.
|
||||||
assert_and_click "system_menu_button";
|
assert_and_click "system_menu_button";
|
||||||
assert_and_click "power_entry";
|
# in KDE since F34, there's no submenu to access, the button is right here
|
||||||
assert_and_click "power_off_entry";
|
assert_screen ["power_entry", "power_off_entry"];
|
||||||
|
click_lastmatch;
|
||||||
|
assert_and_click "power_off_entry" if (match_has_tag("power_entry"));
|
||||||
assert_and_click "power_off_confirm";
|
assert_and_click "power_off_confirm";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user