os-autoinst-distri-fedora/tests/_graphical_input.pm

69 lines
2.3 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $relnum = get_release_number;
if (get_var("LANGUAGE") eq 'japanese') {
# 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
# 'hotkey' seems to be the only thing we can type for which
# the 'keyboard' pane is the top result; searching for
# 'keyboard' or 'input' gives us results for uninstalled apps
# from Software
menu_launch_type "hotkey";
unless (check_screen "desktop_add_input_source", 30) {
# first attempt to run this often fails for some reason
check_desktop;
menu_launch_type "hotkey";
}
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, always_rollback => 1};
}
1;
# vim: set sw=4 et: