1
+ import pytest
1
2
from selenium .webdriver import Firefox
2
3
3
- # from modules.page_object import AboutAddons, AboutPrefs
4
- from modules .page_object import AboutAddons , GenericPage
4
+ from modules .page_object import AboutAddons , GenericPage , AboutPrefs
5
5
6
- # from modules.util import Utilities
7
6
8
7
LANGUAGE_ADDONS_LINK = "https://addons.mozilla.org/en-US/firefox/language-tools/"
8
+ LANGUAGES = [("Italiano" , "it" , "Imposta alternative…" )]
9
9
10
-
11
- def test_language_pack_install_from_addons (driver : Firefox ):
10
+ @ pytest . mark . parametrize ( "drop_down_name, shortform, localized_text" , LANGUAGES )
11
+ def test_language_pack_install_from_addons (driver : Firefox , drop_down_name : str , shortform : str , localized_text : str ):
12
12
"""
13
13
C1549408: verify that installing a language pack from about:addons will correctly change the locale
14
14
"""
15
- # about_prefs = AboutPrefs(driver, category="general")
15
+ # declaring objects and navigating
16
16
generic_page = GenericPage (driver )
17
- # util = Utilities()
18
-
19
17
driver .get (LANGUAGE_ADDONS_LINK )
20
18
19
+ # ensuring the page was loaded
21
20
generic_page .custom_wait (timeout = 20 ).until (
22
21
lambda _ : generic_page .get_element ("language-addons-title" ) is not None
23
22
)
24
23
24
+ # grab the appropriate link and wait until the page is loaded
25
25
language_row = generic_page .get_element ("language-addons-row" )
26
26
generic_page .get_element (
27
27
"language-addons-row-link" , parent_element = language_row
@@ -38,13 +38,24 @@ def test_language_pack_install_from_addons(driver: Firefox):
38
38
# click second time for "Okay", the button is not cached which allows for two different buttons to be different
39
39
generic_page .get_element ("language-install-popup-add" ).click ()
40
40
41
+ # ensure that the about:addons has the language listed
41
42
about_addons = AboutAddons (driver ).open ()
42
43
about_addons .choose_sidebar_option ("locale" )
43
-
44
44
addon_list_parent = about_addons .get_element ("languages-addon-list" )
45
45
addon_language_cards = about_addons .get_element (
46
46
"languages-addon-list-card" , multiple = True , parent_element = addon_list_parent
47
47
)
48
48
49
49
# making sure that 1 language was installed
50
50
assert len (addon_language_cards ) == 1
51
+
52
+ # perform language changing and assertions in about_prefs
53
+ about_prefs = AboutPrefs (driver , category = "general" ).open ()
54
+ language_dropdown = about_prefs .get_element ("language-dropdown" )
55
+ dropdown = about_prefs .Dropdown (page = about_prefs , root = language_dropdown )
56
+ dropdown .select_option (drop_down_name , double_click = True )
57
+
58
+ about_prefs .custom_wait (timeout = 15 ).until (
59
+ lambda _ : about_prefs .get_element ("html-root" ).get_attribute ("lang" ) == shortform
60
+ )
61
+ assert about_prefs .get_element ("language-set-alternatives-button" ).get_attribute ("label" ) == localized_text
0 commit comments