1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-01 17:53:08 +00:00
os-autoinst-distri-fedora/tests/_graphical_input.pm
Adam Williamson c424d63ea8 _graphical_input: retry launch of keyboard if it fails
First attempt at this often fails for some reason - while we're
typing 'keyboard' the results come up as normal, but before we
hit enter, they all disappear and are replaced with "no results
found" (in Japanese). Dunno why. This will hopefully work around
that, if it works reliably on the second try.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-10-20 14:07:15 -07:00

65 lines
2.1 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $relnum = get_release_number;
if (get_var("LANGUAGE") eq 'japanese' && $relnum > 33) {
# give GNOME a minute to settle
wait_still_screen 5;
# since g-i-s new user mode was dropped and the replacement
# doesn't do input method selection, and anaconda never has,
# we have to set up the input method manually:
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3749
menu_launch_type "keyboard";
unless (check_screen "desktop_add_input_source", 30) {
# first attempt to run this often fails for some reason
check_desktop;
menu_launch_type "keyboard";
}
assert_and_click "desktop_add_input_source";
assert_and_click "desktop_input_source_japanese";
assert_and_click "desktop_input_source_japanese_anthy";
send_key "ret";
wait_still_screen 3;
send_key "alt-f4";
}
# do this from the overview because the desktop uses the stupid
# transparent top bar which messes with our needles
send_key "super";
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 'super' 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: