From 130f4ed1efb9957819917012ab4fac8575f594a3 Mon Sep 17 00:00:00 2001 From: Adam Kankovsky Date: Thu, 19 Dec 2024 11:43:56 +0100 Subject: [PATCH] Adding tests for keyboard selection --- test/check-language | 29 +++++++++++++++++++++++++++++ test/helpers/language.py | 20 ++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/test/check-language b/test/check-language index bf8252edf..65488d95b 100755 --- a/test/check-language +++ b/test/check-language @@ -168,6 +168,35 @@ class TestLanguage(VirtInstallMachineCase): # test the macedonian language selected r.check_language("mk_MK.UTF-8") + def testKeyboardLayoutSelection(self): + b = self.browser + m = self.machine + i = Installer(b, m) + l = Language(b, m) + + l.dbus_set_language("en_US.UTF-8") + i.open() + + l.check_selected_keyboard_on_device("us") + b.wait_in_text("h2", "Welcome to Fedora Linux") + + l.select_locale("de_DE") + l.check_selected_locale("de_DE") + + l.check_selected_keyboard_on_device("de") + + l.select_locale("cs_CZ", is_common=False) + l.check_selected_locale("cs_CZ", is_common=False) + + l.check_selected_keyboard_on_device("cz") + + l.select_keyboard_layout("cz:qwerty") + l.check_selected_keyboard_on_device("cz", "qwerty") + + l.select_locale("en_US") + l.check_selected_locale("en_US") + l.check_selected_keyboard_on_device("us") + if __name__ == '__main__': test_main() diff --git a/test/helpers/language.py b/test/helpers/language.py index a0d98ce82..b95157e0f 100644 --- a/test/helpers/language.py +++ b/test/helpers/language.py @@ -85,3 +85,23 @@ def dbus_set_locale(self, value): {BOSS_SERVICE} \ {BOSS_OBJECT_PATH} \ {BOSS_INTERFACE} SetLocale s "{value}"') + + def select_keyboard_layout(self, layout): + self.browser.select_from_dropdown(".installation-selectors-container select", layout) + + def check_selected_keyboard_on_device(self, expected_layout, expected_variant=None): + result = self.machine.execute("localectl status") + layout = None + variant = None + + for line in result.splitlines(): + if "X11 Layout" in line: + layout = line.split(":")[-1].strip() + if "X11 Model" in line: + variant = line.split(":")[-1].strip() + + assert layout == expected_layout, f"Expected layout '{expected_layout}', but got '{layout}'" + if expected_variant: + assert variant == expected_variant, f"Expected variant '{expected_variant}', but got '{variant}'" + else: + assert not variant, f"Expected no variant, but got '{variant}'"