os-autoinst-distri-rocky/tests/_graphical_input.pm
Lukáš Růžička f3d6a9574c Add desktop login test, revise and rename check_desktop
This adds a new test that implementsQA:Testcase_desktop_login
on both GNOME and KDE.

While working on this, we realized that the "desktop_clean"
needles were really "app menu" needles, and for KDE, this was
a duplication with the new "system menu" needles, because on KDE
the app menu and the system menu are the same. So I (Adam)
started to de-duplicate that, but also realized that "app menu
button" is a much more accurate name for these needles, so I was
renaming the old desktop_clean needles to app_menu_button. That
led me to the realization that "check_desktop_clean" is itself a
dumb name, because we don't (at least, any more, way back in the
mists of time we may have done) do anything to check that the
desktop is "clean" - we're really just asserting that we're at a
desktop *at all*. While thinking *that* through, I *also* realized
that the whole "open the overview and look for the app grid icon"
workaround it did is no longer necessary, because GNOME doesn't
use a translucent top bar any more. That went away in GNOME 3.32,
which is in Fedora 30, our oldest supported release.

So I threw that away, renamed the function "check_desktop",
cleaned up all the needle naming and tagging, and also added an
app menu needle for GNOME in Japanese because we were missing
one (the Japanese tests have been using the "app grid icon"
workaround the whole time).
2020-04-17 17:27:04 -07:00

43 lines
1.2 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
# do this from the overview because the desktop uses the stupid
# transparent top bar which messes with our needles
send_key "alt-f1";
assert_screen "overview_app_grid";
# check both layouts are available at the desktop; here,
# we can expect input method switching to work too
desktop_switch_layout 'ascii';
desktop_switch_layout 'native';
# special testing for Japanese to ensure input method actually
# works. If we ever test other input-method based languages we can
# generalize this out, for now we just inline Japanese
if (get_var("LANGUAGE") eq 'japanese') {
# wait a bit for input switch to complete
sleep 3;
# assume we can test input from whatever 'alt-f1' opened
type_safely "yama";
assert_screen "desktop_yama_hiragana";
send_key "spc";
assert_screen "desktop_yama_kanji";
send_key "spc";
assert_screen "desktop_yama_chooser";
send_key "esc";
send_key "esc";
send_key "esc";
send_key "esc";
check_desktop;
}
}
sub test_flags {
return { fatal => 1 };
}
1;
# vim: set sw=4 et: