1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2025-11-30 04:45:59 +00:00

Add a French install test on Workstation and KDE live (with webUI)

Also add keyboard layout selection handling for webUI, natively
for the KDE live, via GNOME settings for Workstation live.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2025-10-08 14:56:56 -07:00
parent e26110fa89
commit 125f8f11e9
75 changed files with 628 additions and 17 deletions

View File

@ -231,6 +231,13 @@ testtags.append("anaconda_part_device_sda")
for lang in ("english", "russian", "chinese", "arabic", "japanese", "turkish", "french"):
testtags.append(f"gis_lang_{lang}_select")
testtags.append(f"gis_lang_{lang}_selected")
# keyboard layout needles (only one for now, but maybe more later)
for layout in ("french",):
testtags.append(f"anaconda_select_install_layout_{layout}_filtered")
testtags.append(f"anaconda_select_install_layout_{layout}_selected")
testtags.append(f"anaconda_webui_layout_{layout}_selected")
testtags.append(f"desktop_input_source_{layout}")
testtags.append(f"desktop_input_source_group_{layout}")
# for Anaconda help related needles.
testtags.extend(f"anaconda_help_{fsys}" for fsys in ('install_destination',
'installation_progress', 'keyboard_layout', 'language_support', 'network_host_name',

View File

@ -420,13 +420,6 @@ sub webui_create_user {
sleep(2);
send_key("tab");
sleep(2);
# on 43.33 and later geofield is now filled here, so wipe it
send_key("ctrl-a");
sleep(2);
send_key("delete");
sleep(2);
type_very_safely($user_login);
sleep(2);
send_key("tab");
sleep(1);
_type_user_password($user_password);

View File

@ -952,10 +952,10 @@ sub gnome_initial_setup {
@nexts = grep { $_ ne 'software' } @nexts;
}
# if g-i-s ran before anaconda (as expected on the live + webui
# flow), anaconda forwards a g-i-s state file to the installed
# system, causing it to skip 'language' and 'keyboard' (meaning
# 'language' is turned into 'welcome' and 'keyboard' is really
# skipped)
# flow on F44+), anaconda forwards a g-i-s state file to the
# installed system, causing it to skip 'language' and 'keyboard'
# (meaning 'language' is turned into 'welcome' and 'keyboard'
# is really skipped)
if (match_has_tag "start_setup") {
# if we saw start_setup, that means 'language' was skipped
# and we can assume 'keyboard' will also be skipped
@ -1006,7 +1006,13 @@ sub gnome_initial_setup {
# in earlier GNOMEs we have to hit tab...
send_key_until_needlematch("gis_tz_search_active", "tab", 2);
wait_still_screen 3;
type_very_safely "washington-d";
# for install_default_upload we need to pick somewhere in
# US eastern...
my $city = "washington-d";
# ...but for keyboard layout tests, this is typed the same
# on all currently-tested layouts
$city = "berlin" if (get_var("LAYOUT"));
type_very_safely $city;
send_key "down";
send_key "ret";
}
@ -1030,6 +1036,11 @@ sub gnome_initial_setup {
my $user_password = get_var("USER_PASSWORD") || "weakpassword";
type_very_safely $user_login;
wait_screen_change { assert_and_click "next_button"; };
if (get_var('LANGUAGE')) {
# check we typed the user name as expected (hence keyboard
# layout is the intended one)
assert_screen "gis_user_created";
}
type_very_safely $user_password;
# two tabs to get to the confirm box since GNOME 44
type_string "\t\t";

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 20,
"width": 176,
"height": 22,
"type": "match",
"xpos": 314
}
],
"properties": [],
"tags": [
"version_43_ident"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View File

@ -14,6 +14,7 @@
],
"properties": [],
"tags": [
"anaconda_webui_allow_root"
"anaconda_webui_allow_root",
"LANGUAGE-english"
]
}
}

View File

@ -14,6 +14,7 @@
],
"properties": [],
"tags": [
"anaconda_webui_createuser_name"
"anaconda_webui_createuser_name",
"LANGUAGE-english"
]
}

View File

@ -0,0 +1,20 @@
{
"area": [
{
"xpos": 269,
"ypos": 593,
"width": 166,
"type": "match",
"height": 21,
"click_point": {
"xpos": 11.5,
"ypos": 10.5
}
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_allow_root"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 271,
"height": 18,
"ypos": 254,
"width": 160
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-french",
"anaconda_install_destination_encrypt_data"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 270,
"height": 18,
"ypos": 261,
"width": 163
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-french",
"anaconda_install_destination_encrypt_data"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 431,
"ypos": 322,
"width": 162,
"height": 16,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_install_done"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 16,
"width": 162,
"ypos": 329,
"xpos": 432,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_install_done"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 563,
"type": "match",
"width": 40,
"ypos": 336,
"height": 17
}
],
"properties": [],
"tags": [
"anaconda_install_user_created",
"LANGUAGE-french"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"width": 193,
"ypos": 719,
"height": 15,
"xpos": 403,
"type": "match"
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-french",
"anaconda_webui_begin_installation"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 403,
"height": 15,
"ypos": 674,
"width": 193
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-french",
"anaconda_webui_begin_installation"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -0,0 +1,20 @@
{
"area": [
{
"ypos": 267,
"width": 241,
"xpos": 291,
"click_point": {
"xpos": 193.5,
"ypos": 20
},
"height": 36,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_createuser_name"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 273,
"type": "match",
"width": 127,
"ypos": 137,
"height": 23
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"_ANACONDA_WEBUI",
"anaconda_webui_datetime"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 462,
"ypos": 269,
"width": 115,
"height": 21,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_select_install_lang_filtered"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 463,
"ypos": 270,
"width": 114,
"height": 19,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_select_install_lang_filtered",
"anaconda_select_install_lang_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 461,
"ypos": 461,
"width": 122,
"height": 24,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_select_install_layout_french_filtered"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 461,
"ypos": 475,
"width": 121,
"height": 20,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_webui_layout_french_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@ -0,0 +1,19 @@
{
"area": [
{
"xpos": 453,
"ypos": 348,
"width": 41,
"height": 59,
"type": "match",
"click_point": {
"xpos": 24.5,
"ypos": 43.5
}
}
],
"properties": [],
"tags": [
"anaconda_select_install_layout_input"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 272,
"ypos": 129,
"width": 110,
"height": 23
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"_ANACONDA_WEBUI",
"anaconda_webui_installmethod"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 438,
"ypos": 441,
"width": 41,
"height": 19,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_webui_layout_french_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 474,
"ypos": 442,
"width": 150,
"height": 17,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_layout_system"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 403,
"ypos": 720,
"width": 50,
"height": 13,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_next"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 403,
"type": "match",
"width": 50,
"ypos": 675,
"height": 13
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_next"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View File

@ -0,0 +1,20 @@
{
"area": [
{
"ypos": 409,
"width": 90,
"height": 62,
"type": "match",
"xpos": 305,
"click_point": {
"xpos": 45,
"ypos": 45
}
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_passphrase"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

View File

@ -11,6 +11,7 @@
"properties": [],
"tags": [
"_ANACONDA_WEBUI",
"anaconda_webui_datetime"
"anaconda_webui_datetime",
"LANGUAGE-english"
]
}
}

View File

@ -0,0 +1,19 @@
{
"area": [
{
"xpos": 884,
"ypos": 175,
"width": 16,
"height": 79,
"type": "match",
"click_point": {
"xpos": 7,
"ypos": 11.5
}
}
],
"properties": [],
"tags": [
"desktop_input_source_first_menu"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 810,
"ypos": 350,
"width": 61,
"height": 21,
"type": "match"
}
],
"properties": [],
"tags": [
"desktop_input_source_remove"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 333,
"ypos": 320,
"width": 89,
"height": 20,
"type": "match"
}
],
"properties": [],
"tags": [
"desktop_input_source_french"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 453,
"ypos": 424,
"width": 115,
"height": 18,
"type": "match"
}
],
"properties": [],
"tags": [
"desktop_input_source_group_french"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 234,
"ypos": 424,
"width": 92,
"height": 20,
"type": "match"
}
],
"properties": [],
"tags": [
"gis_lang_french_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 41,
"ypos": 191,
"width": 33,
"type": "match",
"xpos": 282
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"gis_tz_search_active"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 658,
"ypos": 132,
"width": 86,
"height": 27,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"gis_user_created"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 945,
"ypos": 48,
"width": 57,
"height": 15,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"next_button"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 20,
"width": 59,
"ypos": 45,
"xpos": 944,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"next_button_inactive"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

View File

@ -0,0 +1,18 @@
{
"area": [
{
"xpos": 343,
"ypos": 137,
"width": 95,
"height": 30,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-english",
"LANGUAGE-japanese",
"LANGUAGE-russian",
"gis_user_created"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,19 @@
{
"area": [
{
"xpos": 377,
"ypos": 451,
"width": 81,
"height": 17,
"type": "match"
}
],
"properties": [],
"tags": [
"DESKTOP-kde",
"LANGUAGE-french",
"graphical_login",
"graphical_login_input",
"login_screen"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

View File

@ -1531,6 +1531,24 @@
"USER_LOGIN": "qwerty"
}
},
"install_european_language_webui": {
"profile_groups": {
"workstation-lives": 40
},
"profiles": {
"fedora-KDE-live-iso-x86_64-*-64bit": 40
},
"settings": {
"ENCRYPT_PASSWORD": "weakpassword",
"HDDSIZEGB": "15",
"LANGUAGE": "french",
"NO_UEFI_POST": "1",
"LAYOUT": "french",
"POSTINSTALL": "_console_login",
"QEMU_DISABLE_SNAPSHOTS": "1",
"USER_LOGIN": "qwerty"
}
},
"install_iscsi": {
"profile_groups": {
"server-dvd-3arch": 40

View File

@ -225,6 +225,33 @@ sub run {
# appropriate language, here
assert_and_click "anaconda_select_install_lang_filtered";
assert_screen "anaconda_select_install_lang_selected", 10;
my $layout = get_var('LAYOUT');
if (get_var('_ANACONDA_WEBUI') && $layout) {
assert_screen ["anaconda_webui_layout_${layout}_selected", "anaconda_webui_layout_system", "anaconda_select_install_layout_input"];
unless (match_has_tag "anaconda_webui_layout_${layout}_selected") {
wait_screen_change { click_lastmatch; };
if (match_has_tag "anaconda_webui_layout_system") {
# GNOME input settings: add the layout we want, remove the default
assert_and_click "desktop_add_input_source";
assert_and_click "desktop_input_source_group_${layout}";
assert_and_click "desktop_input_source_${layout}";
send_key "ret";
wait_still_screen 3;
assert_and_click "desktop_input_source_first_menu";
assert_and_click "desktop_input_source_remove";
wait_still_screen 3;
send_key "alt-f4";
}
if (match_has_tag "anaconda_select_install_layout_input") {
# webui native layout selection; search and pick
my $totype = $layout;
$totype = 'fran' if ($layout eq 'french');
type_very_safely $totype;
assert_and_click "anaconda_select_install_layout_${layout}_filtered";
}
assert_screen "anaconda_webui_layout_${layout}_selected";
}
}
assert_and_click ["anaconda_select_install_lang_continue", "anaconda_webui_next"];
# wait 180 secs for hub or Rawhide warning dialog to appear

View File

@ -39,6 +39,8 @@ sub _set_root_password {
sub _set_root_password_webui {
my $root_password = get_var("ROOT_PASSWORD", "weakpassword");
# hit tab till we can see the button, it may be off screen
send_key_until_needlematch("anaconda_webui_allow_root", "tab", 3, 3);
# Click the radio button, then get focus and fill the fields.
assert_and_click("anaconda_webui_allow_root");
sleep(1);