1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-22 18:33:07 +00:00
os-autoinst-distri-fedora/tests/applications/help/help.pm
Adam Williamson 0f781bdaf2 Robustify the scrolling in the Help app test
This keeps failing on the accessibility section, and looking at
the screenshots I realized why. When you press 'down', GNOME
doesn't just 'snap' to the new view, it does a smooth downward
scroll. We're often matching *while it's scrolling*, so the
needle match is right at the bottom of the screen. But then the
animation continues, so when we get to the click action (even
though we use click_lastmatch it's not *instant* in openQA),
the thing we're trying to click (the "Accessibility" section
title) is a bit further up the screen, and the click 'misses'.

So, we need to wait out the scroll then re-assert and click.
This unfortunately will make the test take about 30 seconds
longer, but I don't see another way to do it. We could maybe
shave the wait_still_screen to one second...

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-02 09:37:02 -07:00

51 lines
1.3 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
# This script check that Help can be used on Gnome.
# This subroutine opens a section, checks that its content
# is listed and returns to the main page.
sub visit_section {
my $section = shift;
send_key_until_needlematch("help_section_$section", "down", 40, 1);
# we have to wait then re-assert, because the down movement is
# animated, so we may match while it's still animating and then
# when the animation is complete the section title may be in a
# different place to where we first saw it
wait_still_screen 2;
assert_and_click("help_section_$section");
assert_screen("help_section_content_$section");
assert_and_click("help_breadcrumbs_home");
assert_screen("help_main_screen");
}
sub run {
my $self = shift;
# Run the application
menu_launch_type("Help");
assert_screen("help_main_screen", timeout => 60);
# Let us click on Section to open it and check that there is content inside.
visit_section("desktop");
visit_section("networking");
visit_section("sound");
visit_section("files");
visit_section("user");
visit_section("hardware");
visit_section("accessibility");
visit_section("tipstricks");
visit_section("morehelp");
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: