1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-22 02:13:08 +00:00

Automate the i18n_default_fonts testcase for Japanese.

This is the automation of the optional testcase https://fedoraproject.org/wiki/QA:Testcase_i18n_default_fonts.
The test implementation runs the same commands as the mentioned test
case and checks the expected output. It is designed to run in the scope
of postinstall tests when the language is set to "japanese".
This commit is contained in:
Lukáš Růžička 2021-03-31 11:58:24 +02:00
parent 66bc59de1d
commit 1acef21fa5
7 changed files with 111 additions and 1 deletions

View File

@ -251,6 +251,12 @@ sub _load_early_postinstall_tests {
if (get_var("SWITCHED_LAYOUT") || get_var("INPUT_METHOD")) {
_load_instance("tests/_graphical_input", $instance);
}
if (get_var("LANGUAGE") eq "japanese" || get_var("LANGUAGE") eq "arabic") {
_load_instance("tests/check_default_fonts", $instance);
}
# We do not want to run this on Desktop installations or when
# the installation is interrupted on purpose.
unless (get_var("DESKTOP") || get_var("CRASH_REPORT")) {

View File

@ -0,0 +1,23 @@
{
"area": [
{
"xpos": 151,
"ypos": 6,
"width": 65,
"height": 23,
"type": "match"
},
{
"type": "match",
"ypos": 112,
"xpos": 194,
"width": 25,
"height": 20
}
],
"properties": [],
"tags": [
"apps_run_terminal",
"LANGUAGE-japanese"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 17,
"ypos": 9,
"xpos": 885,
"width": 18,
"type": "match"
}
],
"properties": [],
"tags": [
"gnome_layout_ascii",
"LANGUAGE-japanese"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 KiB

View File

@ -56,7 +56,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return { fatal => 1, always_rollback => 1 };
}
1;

View File

@ -0,0 +1,65 @@
use base "installedtest";
use strict;
use testapi;
use utils;
# This test cases automates the Testcase_i18n_default_fonts, see
# https://fedoraproject.org/wiki/QA:Testcase_i18n_default_fonts.
sub run {
my $self = shift;
# On the console, the fonts might differ than in GUI.
# We will perform the tests in the gnome-terminal.
# First, open it!
desktop_switch_layout 'ascii';
wait_still_screen(2);
menu_launch_type("terminal");
# Similarly to _graphical_input.pm, repeat running the command
# if it fails the first time (it often does).
unless (check_screen "apps_run_terminal", 30) {
check_desktop;
menu_launch_type("terminal");
}
assert_screen("apps_run_terminal");
# Run the test commands and record their output in the test file.
enter_cmd("fc-match sans > test.txt");
sleep(2);
enter_cmd("fc-match serif >> test.txt");
sleep(2);
enter_cmd("fc-match monospace >> test.txt");
sleep(2);
# Depending on the selected language (Japanese or Arabic), we
# will download a reference file and compare it with the test
# file obtained in the previous step.
my $language = get_var("LANGUAGE");
my @supported = qw(japanese arabic);
# If the language is among supported languages
if ($language ~~ @supported) {
# Go to root console for script assertions.
$self->root_console(tty=>3);
# Load us keys to be used on console
script_run("loadkeys us");
# Navigate to the home directory.
my $username = get_var("USER_LOGIN") // "test";
script_run("cd /home/$username/");
# Download the language reference file.
script_run("wget https://lruzicka.fedorapeople.org/$language-reference.txt");
# Compare the test file and the reference file.
assert_script_run("diff test.txt $language-reference.txt");
}
# For the rest of languages that are not currently defined, do nothing.
}
sub test_flags {
return {fatal => 0};
}
1;
# vim: set sw=4 et: