diff --git a/check-needles.py b/check-needles.py index edf3bc9e..d7a8fc2e 100755 --- a/check-needles.py +++ b/check-needles.py @@ -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', diff --git a/lib/anaconda.pm b/lib/anaconda.pm index 57d4fd91..349f6776 100644 --- a/lib/anaconda.pm +++ b/lib/anaconda.pm @@ -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); diff --git a/lib/utils.pm b/lib/utils.pm index 51e57016..6f871a17 100644 --- a/lib/utils.pm +++ b/lib/utils.pm @@ -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"; diff --git a/needles/anaconda/identification/version_43-webui-french-20251010.json b/needles/anaconda/identification/version_43-webui-french-20251010.json new file mode 100644 index 00000000..7c503e67 --- /dev/null +++ b/needles/anaconda/identification/version_43-webui-french-20251010.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "ypos": 20, + "width": 176, + "height": 22, + "type": "match", + "xpos": 314 + } + ], + "properties": [], + "tags": [ + "version_43_ident" + ] +} \ No newline at end of file diff --git a/needles/anaconda/identification/version_43-webui-french-20251010.png b/needles/anaconda/identification/version_43-webui-french-20251010.png new file mode 100644 index 00000000..d7db0d26 Binary files /dev/null and b/needles/anaconda/identification/version_43-webui-french-20251010.png differ diff --git a/needles/anaconda/webui/anaconda_webui_allow_root-20250625.json b/needles/anaconda/webui/anaconda_webui_allow_root-20250625.json index 0fef5184..a8736f89 100644 --- a/needles/anaconda/webui/anaconda_webui_allow_root-20250625.json +++ b/needles/anaconda/webui/anaconda_webui_allow_root-20250625.json @@ -14,6 +14,7 @@ ], "properties": [], "tags": [ - "anaconda_webui_allow_root" + "anaconda_webui_allow_root", + "LANGUAGE-english" ] -} \ No newline at end of file +} diff --git a/needles/anaconda/webui/anaconda_webui_createuser_name.json b/needles/anaconda/webui/anaconda_webui_createuser_name.json index ceb899a1..d6bc1be5 100644 --- a/needles/anaconda/webui/anaconda_webui_createuser_name.json +++ b/needles/anaconda/webui/anaconda_webui_createuser_name.json @@ -14,6 +14,7 @@ ], "properties": [], "tags": [ - "anaconda_webui_createuser_name" + "anaconda_webui_createuser_name", + "LANGUAGE-english" ] } diff --git a/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.json b/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.json new file mode 100644 index 00000000..20956c45 --- /dev/null +++ b/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.png b/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.png new file mode 100644 index 00000000..d1c1d020 Binary files /dev/null and b/needles/anaconda/webui/french/anaconda_webui_allow_root_french-20251009.png differ diff --git a/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.json b/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.json new file mode 100644 index 00000000..2b965545 --- /dev/null +++ b/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.png b/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.png new file mode 100644 index 00000000..cdc58ee8 Binary files /dev/null and b/needles/anaconda/webui/french/encrypt_data_french-webui-20251008.png differ diff --git a/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.json b/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.json new file mode 100644 index 00000000..b41f29e7 --- /dev/null +++ b/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.png b/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.png new file mode 100644 index 00000000..d87730a8 Binary files /dev/null and b/needles/anaconda/webui/french/encrypt_data_french-webui-alt-20251009.png differ diff --git a/needles/anaconda/webui/french/install_done_french-webui-20251008.json b/needles/anaconda/webui/french/install_done_french-webui-20251008.json new file mode 100644 index 00000000..d8ea7745 --- /dev/null +++ b/needles/anaconda/webui/french/install_done_french-webui-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 431, + "ypos": 322, + "width": 162, + "height": 16, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_install_done" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/install_done_french-webui-20251008.png b/needles/anaconda/webui/french/install_done_french-webui-20251008.png new file mode 100644 index 00000000..48a7f926 Binary files /dev/null and b/needles/anaconda/webui/french/install_done_french-webui-20251008.png differ diff --git a/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.json b/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.json new file mode 100644 index 00000000..37596b65 --- /dev/null +++ b/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "height": 16, + "width": 162, + "ypos": 329, + "xpos": 432, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_install_done" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.png b/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.png new file mode 100644 index 00000000..120907ac Binary files /dev/null and b/needles/anaconda/webui/french/install_done_french-webui-alt-20251009.png differ diff --git a/needles/anaconda/webui/french/user_created_french_webui-20251009.json b/needles/anaconda/webui/french/user_created_french_webui-20251009.json new file mode 100644 index 00000000..2d12ae91 --- /dev/null +++ b/needles/anaconda/webui/french/user_created_french_webui-20251009.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 563, + "type": "match", + "width": 40, + "ypos": 336, + "height": 17 + } + ], + "properties": [], + "tags": [ + "anaconda_install_user_created", + "LANGUAGE-french" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/user_created_french_webui-20251009.png b/needles/anaconda/webui/french/user_created_french_webui-20251009.png new file mode 100644 index 00000000..eb1b86a3 Binary files /dev/null and b/needles/anaconda/webui/french/user_created_french_webui-20251009.png differ diff --git a/needles/anaconda/webui/french/webui_begin_installation_french-20251008.json b/needles/anaconda/webui/french/webui_begin_installation_french-20251008.json new file mode 100644 index 00000000..45f80ed8 --- /dev/null +++ b/needles/anaconda/webui/french/webui_begin_installation_french-20251008.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_begin_installation_french-20251008.png b/needles/anaconda/webui/french/webui_begin_installation_french-20251008.png new file mode 100644 index 00000000..6a67c573 Binary files /dev/null and b/needles/anaconda/webui/french/webui_begin_installation_french-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.json b/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.json new file mode 100644 index 00000000..46f973fe --- /dev/null +++ b/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.png b/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.png new file mode 100644 index 00000000..585df1e4 Binary files /dev/null and b/needles/anaconda/webui/french/webui_begin_installation_french-alt-20251009.png differ diff --git a/needles/anaconda/webui/french/webui_createuser_name_french-20251009.json b/needles/anaconda/webui/french/webui_createuser_name_french-20251009.json new file mode 100644 index 00000000..5ebd374d --- /dev/null +++ b/needles/anaconda/webui/french/webui_createuser_name_french-20251009.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_createuser_name_french-20251009.png b/needles/anaconda/webui/french/webui_createuser_name_french-20251009.png new file mode 100644 index 00000000..8ca25208 Binary files /dev/null and b/needles/anaconda/webui/french/webui_createuser_name_french-20251009.png differ diff --git a/needles/anaconda/webui/french/webui_datetime_french-20251009.json b/needles/anaconda/webui/french/webui_datetime_french-20251009.json new file mode 100644 index 00000000..e2b2ac62 --- /dev/null +++ b/needles/anaconda/webui/french/webui_datetime_french-20251009.json @@ -0,0 +1,17 @@ +{ + "area": [ + { + "xpos": 273, + "type": "match", + "width": 127, + "ypos": 137, + "height": 23 + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "_ANACONDA_WEBUI", + "anaconda_webui_datetime" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_datetime_french-20251009.png b/needles/anaconda/webui/french/webui_datetime_french-20251009.png new file mode 100644 index 00000000..ba991414 Binary files /dev/null and b/needles/anaconda/webui/french/webui_datetime_french-20251009.png differ diff --git a/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.json b/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.json new file mode 100644 index 00000000..9b38424d --- /dev/null +++ b/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 462, + "ypos": 269, + "width": 115, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_select_install_lang_filtered" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.png b/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.png new file mode 100644 index 00000000..32e6f60f Binary files /dev/null and b/needles/anaconda/webui/french/webui_install_lang_french_filtered-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.json b/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.json new file mode 100644 index 00000000..204841fd --- /dev/null +++ b/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.png b/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.png new file mode 100644 index 00000000..3a01ced3 Binary files /dev/null and b/needles/anaconda/webui/french/webui_install_lang_french_selected-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.json b/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.json new file mode 100644 index 00000000..6fe7f135 --- /dev/null +++ b/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 461, + "ypos": 461, + "width": 122, + "height": 24, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_select_install_layout_french_filtered" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.png b/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.png new file mode 100644 index 00000000..30cf4dee Binary files /dev/null and b/needles/anaconda/webui/french/webui_install_layout_french_filtered-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.json b/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.json new file mode 100644 index 00000000..b6446e14 --- /dev/null +++ b/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 461, + "ypos": 475, + "width": 121, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_webui_layout_french_selected" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.png b/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.png new file mode 100644 index 00000000..f2306532 Binary files /dev/null and b/needles/anaconda/webui/french/webui_install_layout_french_selected-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_install_layout_input-20251008.json b/needles/anaconda/webui/french/webui_install_layout_input-20251008.json new file mode 100644 index 00000000..fedff75e --- /dev/null +++ b/needles/anaconda/webui/french/webui_install_layout_input-20251008.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_install_layout_input-20251008.png b/needles/anaconda/webui/french/webui_install_layout_input-20251008.png new file mode 100644 index 00000000..58567136 Binary files /dev/null and b/needles/anaconda/webui/french/webui_install_layout_input-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_installmethod_french-20251008.json b/needles/anaconda/webui/french/webui_installmethod_french-20251008.json new file mode 100644 index 00000000..93c692e6 --- /dev/null +++ b/needles/anaconda/webui/french/webui_installmethod_french-20251008.json @@ -0,0 +1,17 @@ +{ + "area": [ + { + "type": "match", + "xpos": 272, + "ypos": 129, + "width": 110, + "height": 23 + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "_ANACONDA_WEBUI", + "anaconda_webui_installmethod" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_installmethod_french-20251008.png b/needles/anaconda/webui/french/webui_installmethod_french-20251008.png new file mode 100644 index 00000000..d99c303f Binary files /dev/null and b/needles/anaconda/webui/french/webui_installmethod_french-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_layout_french_selected-20251008.json b/needles/anaconda/webui/french/webui_layout_french_selected-20251008.json new file mode 100644 index 00000000..6c1d480e --- /dev/null +++ b/needles/anaconda/webui/french/webui_layout_french_selected-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 438, + "ypos": 441, + "width": 41, + "height": 19, + "type": "match" + } + ], + "properties": [], + "tags": [ + "anaconda_webui_layout_french_selected" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_layout_french_selected-20251008.png b/needles/anaconda/webui/french/webui_layout_french_selected-20251008.png new file mode 100644 index 00000000..2d1a11a6 Binary files /dev/null and b/needles/anaconda/webui/french/webui_layout_french_selected-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_layout_system_french-20251008.json b/needles/anaconda/webui/french/webui_layout_system_french-20251008.json new file mode 100644 index 00000000..b8ac7b54 --- /dev/null +++ b/needles/anaconda/webui/french/webui_layout_system_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 474, + "ypos": 442, + "width": 150, + "height": 17, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_webui_layout_system" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_layout_system_french-20251008.png b/needles/anaconda/webui/french/webui_layout_system_french-20251008.png new file mode 100644 index 00000000..2e47d355 Binary files /dev/null and b/needles/anaconda/webui/french/webui_layout_system_french-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_next_french-20251008.json b/needles/anaconda/webui/french/webui_next_french-20251008.json new file mode 100644 index 00000000..5f0956fa --- /dev/null +++ b/needles/anaconda/webui/french/webui_next_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 403, + "ypos": 720, + "width": 50, + "height": 13, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_webui_next" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_next_french-20251008.png b/needles/anaconda/webui/french/webui_next_french-20251008.png new file mode 100644 index 00000000..2d1a11a6 Binary files /dev/null and b/needles/anaconda/webui/french/webui_next_french-20251008.png differ diff --git a/needles/anaconda/webui/french/webui_next_french-alt-20251009.json b/needles/anaconda/webui/french/webui_next_french-alt-20251009.json new file mode 100644 index 00000000..e193b523 --- /dev/null +++ b/needles/anaconda/webui/french/webui_next_french-alt-20251009.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 403, + "type": "match", + "width": 50, + "ypos": 675, + "height": 13 + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "anaconda_webui_next" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_next_french-alt-20251009.png b/needles/anaconda/webui/french/webui_next_french-alt-20251009.png new file mode 100644 index 00000000..aa88b410 Binary files /dev/null and b/needles/anaconda/webui/french/webui_next_french-alt-20251009.png differ diff --git a/needles/anaconda/webui/french/webui_passphrase_french-20251010.json b/needles/anaconda/webui/french/webui_passphrase_french-20251010.json new file mode 100644 index 00000000..d6ce9c88 --- /dev/null +++ b/needles/anaconda/webui/french/webui_passphrase_french-20251010.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/anaconda/webui/french/webui_passphrase_french-20251010.png b/needles/anaconda/webui/french/webui_passphrase_french-20251010.png new file mode 100644 index 00000000..e8143d9a Binary files /dev/null and b/needles/anaconda/webui/french/webui_passphrase_french-20251010.png differ diff --git a/needles/anaconda/webui/webui_datetime-20250801.json b/needles/anaconda/webui/webui_datetime-20250801.json index cd3203aa..723e071d 100644 --- a/needles/anaconda/webui/webui_datetime-20250801.json +++ b/needles/anaconda/webui/webui_datetime-20250801.json @@ -11,6 +11,7 @@ "properties": [], "tags": [ "_ANACONDA_WEBUI", - "anaconda_webui_datetime" + "anaconda_webui_datetime", + "LANGUAGE-english" ] -} \ No newline at end of file +} diff --git a/needles/gnome/desktop_input_source_first_menu-20251008.json b/needles/gnome/desktop_input_source_first_menu-20251008.json new file mode 100644 index 00000000..663a546e --- /dev/null +++ b/needles/gnome/desktop_input_source_first_menu-20251008.json @@ -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" + ] +} \ No newline at end of file diff --git a/needles/gnome/desktop_input_source_first_menu-20251008.png b/needles/gnome/desktop_input_source_first_menu-20251008.png new file mode 100644 index 00000000..101e8a4d Binary files /dev/null and b/needles/gnome/desktop_input_source_first_menu-20251008.png differ diff --git a/needles/gnome/desktop_input_source_remove-20251008.json b/needles/gnome/desktop_input_source_remove-20251008.json new file mode 100644 index 00000000..c45cf045 --- /dev/null +++ b/needles/gnome/desktop_input_source_remove-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 810, + "ypos": 350, + "width": 61, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "desktop_input_source_remove" + ] +} \ No newline at end of file diff --git a/needles/gnome/desktop_input_source_remove-20251008.png b/needles/gnome/desktop_input_source_remove-20251008.png new file mode 100644 index 00000000..c959f88f Binary files /dev/null and b/needles/gnome/desktop_input_source_remove-20251008.png differ diff --git a/needles/gnome/french/desktop_input_source_french-20251008.json b/needles/gnome/french/desktop_input_source_french-20251008.json new file mode 100644 index 00000000..3278ea0f --- /dev/null +++ b/needles/gnome/french/desktop_input_source_french-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 333, + "ypos": 320, + "width": 89, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "desktop_input_source_french" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/desktop_input_source_french-20251008.png b/needles/gnome/french/desktop_input_source_french-20251008.png new file mode 100644 index 00000000..5918ad27 Binary files /dev/null and b/needles/gnome/french/desktop_input_source_french-20251008.png differ diff --git a/needles/gnome/french/desktop_input_source_group_french-20251008.json b/needles/gnome/french/desktop_input_source_group_french-20251008.json new file mode 100644 index 00000000..29fe8f48 --- /dev/null +++ b/needles/gnome/french/desktop_input_source_group_french-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 453, + "ypos": 424, + "width": 115, + "height": 18, + "type": "match" + } + ], + "properties": [], + "tags": [ + "desktop_input_source_group_french" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/desktop_input_source_group_french-20251008.png b/needles/gnome/french/desktop_input_source_group_french-20251008.png new file mode 100644 index 00000000..b1e3da31 Binary files /dev/null and b/needles/gnome/french/desktop_input_source_group_french-20251008.png differ diff --git a/needles/gnome/french/gis_lang_french_selected-20251008.json b/needles/gnome/french/gis_lang_french_selected-20251008.json new file mode 100644 index 00000000..71b130ac --- /dev/null +++ b/needles/gnome/french/gis_lang_french_selected-20251008.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 234, + "ypos": 424, + "width": 92, + "height": 20, + "type": "match" + } + ], + "properties": [], + "tags": [ + "gis_lang_french_selected" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/gis_lang_french_selected-20251008.png b/needles/gnome/french/gis_lang_french_selected-20251008.png new file mode 100644 index 00000000..b20368f2 Binary files /dev/null and b/needles/gnome/french/gis_lang_french_selected-20251008.png differ diff --git a/needles/gnome/french/gis_tz_search_active_french-20251008.json b/needles/gnome/french/gis_tz_search_active_french-20251008.json new file mode 100644 index 00000000..541c5ca9 --- /dev/null +++ b/needles/gnome/french/gis_tz_search_active_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "height": 41, + "ypos": 191, + "width": 33, + "type": "match", + "xpos": 282 + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "gis_tz_search_active" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/gis_tz_search_active_french-20251008.png b/needles/gnome/french/gis_tz_search_active_french-20251008.png new file mode 100644 index 00000000..094ab611 Binary files /dev/null and b/needles/gnome/french/gis_tz_search_active_french-20251008.png differ diff --git a/needles/gnome/french/gis_user_created_french-20251008.json b/needles/gnome/french/gis_user_created_french-20251008.json new file mode 100644 index 00000000..168d159c --- /dev/null +++ b/needles/gnome/french/gis_user_created_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 658, + "ypos": 132, + "width": 86, + "height": 27, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "gis_user_created" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/gis_user_created_french-20251008.png b/needles/gnome/french/gis_user_created_french-20251008.png new file mode 100644 index 00000000..6c35f81b Binary files /dev/null and b/needles/gnome/french/gis_user_created_french-20251008.png differ diff --git a/needles/gnome/french/next_button_french-20251008.json b/needles/gnome/french/next_button_french-20251008.json new file mode 100644 index 00000000..3104c859 --- /dev/null +++ b/needles/gnome/french/next_button_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "xpos": 945, + "ypos": 48, + "width": 57, + "height": 15, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "next_button" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/next_button_french-20251008.png b/needles/gnome/french/next_button_french-20251008.png new file mode 100644 index 00000000..b20368f2 Binary files /dev/null and b/needles/gnome/french/next_button_french-20251008.png differ diff --git a/needles/gnome/french/next_button_inactive_french-20251008.json b/needles/gnome/french/next_button_inactive_french-20251008.json new file mode 100644 index 00000000..0560670a --- /dev/null +++ b/needles/gnome/french/next_button_inactive_french-20251008.json @@ -0,0 +1,16 @@ +{ + "area": [ + { + "height": 20, + "width": 59, + "ypos": 45, + "xpos": 944, + "type": "match" + } + ], + "properties": [], + "tags": [ + "LANGUAGE-french", + "next_button_inactive" + ] +} \ No newline at end of file diff --git a/needles/gnome/french/next_button_inactive_french-20251008.png b/needles/gnome/french/next_button_inactive_french-20251008.png new file mode 100644 index 00000000..95fd9214 Binary files /dev/null and b/needles/gnome/french/next_button_inactive_french-20251008.png differ diff --git a/needles/gnome/gis_user_created_qwerty-20251009.json b/needles/gnome/gis_user_created_qwerty-20251009.json new file mode 100644 index 00000000..02fe92b5 --- /dev/null +++ b/needles/gnome/gis_user_created_qwerty-20251009.json @@ -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" + ] +} diff --git a/needles/gnome/gis_user_created_qwerty-20251009.png b/needles/gnome/gis_user_created_qwerty-20251009.png new file mode 100644 index 00000000..37b1c62a Binary files /dev/null and b/needles/gnome/gis_user_created_qwerty-20251009.png differ diff --git a/needles/kde/french/login_sddm_input_french-20251009.json b/needles/kde/french/login_sddm_input_french-20251009.json new file mode 100644 index 00000000..08ac54f1 --- /dev/null +++ b/needles/kde/french/login_sddm_input_french-20251009.json @@ -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" + ] +} diff --git a/needles/kde/french/login_sddm_input_french-20251009.png b/needles/kde/french/login_sddm_input_french-20251009.png new file mode 100644 index 00000000..b486f3ce Binary files /dev/null and b/needles/kde/french/login_sddm_input_french-20251009.png differ diff --git a/templates.fif.json b/templates.fif.json index b5424040..7dcf37e2 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -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 diff --git a/tests/_boot_to_anaconda.pm b/tests/_boot_to_anaconda.pm index 901b7726..70ad1195 100644 --- a/tests/_boot_to_anaconda.pm +++ b/tests/_boot_to_anaconda.pm @@ -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 diff --git a/tests/_do_install_and_reboot.pm b/tests/_do_install_and_reboot.pm index 8b895d1e..7f5e3101 100644 --- a/tests/_do_install_and_reboot.pm +++ b/tests/_do_install_and_reboot.pm @@ -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);