From 06c66dcd30fa8c4d9c28dc0f7a8975013aeb9c5e Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mar 18 2022 20:51:33 +0000 Subject: desktop_update_graphical: explicitly check refresh on GNOME OK, this is annoying. GNOME Software intentionally does *not* clear the 'download' or 'reboot and update' button when you hit the refresh button, it just leaves them sitting there while the refresh happens. So let's specifically require the 'refreshing' text to appear and go away before we try and click on download or apply. Signed-off-by: Adam Williamson --- diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.json b/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.json new file mode 100644 index 0000000..0d0a148 --- /dev/null +++ b/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "type": "match", + "ypos": 41, + "width": 30, + "height": 28, + "xpos": 10 + } + ], + "properties": [], + "tags": [ + "DESKTOP-gnome", + "desktop_package_tool_update_refreshing" + ] +} \ No newline at end of file diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.png b/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.png new file mode 100644 index 0000000..b897ff5 Binary files /dev/null and b/needles/gnome/desktop_package_tool_update_refreshing-f34-20220318.png differ diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.json b/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.json new file mode 100644 index 0000000..635413b --- /dev/null +++ b/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "type": "match", + "height": 27, + "width": 30, + "ypos": 42, + "xpos": 10 + } + ], + "properties": [], + "tags": [ + "DESKTOP-gnome", + "desktop_package_tool_update_refreshing" + ] +} \ No newline at end of file diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.png b/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.png new file mode 100644 index 0000000..efaab7c Binary files /dev/null and b/needles/gnome/desktop_package_tool_update_refreshing-f35-20220318.png differ diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.json b/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.json new file mode 100644 index 0000000..29ecee1 --- /dev/null +++ b/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 9, + "height": 27, + "width": 30, + "ypos": 42, + "type": "match" + } + ], + "properties": [], + "tags": [ + "DESKTOP-gnome", + "desktop_package_tool_update_refreshing" + ] +} \ No newline at end of file diff --git a/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.png b/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.png new file mode 100644 index 0000000..b5a9ef9 Binary files /dev/null and b/needles/gnome/desktop_package_tool_update_refreshing-f36-20220318.png differ diff --git a/tests/desktop_update_graphical.pm b/tests/desktop_update_graphical.pm index 5fd4375..a649ac6 100644 --- a/tests/desktop_update_graphical.pm +++ b/tests/desktop_update_graphical.pm @@ -59,8 +59,26 @@ sub run { wait_still_screen 5, 90; # we always want to refresh to make sure we get the prepared update assert_and_click 'desktop_package_tool_update_refresh', timeout=>120; - # wait a while to make sure the UI clears to a 'refreshing' state - sleep 20; + # for GNOME, the apply/download buttons remain visible for a long + # time, annoyingly. So let's actually watch the 'refreshing' state + # till it goes away + if ($desktop eq 'gnome') { + assert_screen 'desktop_package_tool_update_refreshing'; + # now wait for it to go away + for my $n (1..30) { + last unless (check_screen 'desktop_package_tool_update_refreshing', 6); + # if we matched, we likely matched *immediately*, so sleep + # the other five seconds + sleep 5; + } + sleep 3; + } + else { + # just wait a bit to make sure the UI clears to a 'refreshing' + # state + sleep 5; + } + my $tags = ['desktop_package_tool_update_download', 'desktop_package_tool_update_apply']; # Apply updates, moving the mouse every two minutes to avoid the # idle screen blank kicking in. Depending on whether this is KDE