Skip to content

Commit 5bfde38

Browse files
authored
Merge pull request #105 from mozilla/sl/language-packs-preferences-1
Language Pack (in about:preferences)
2 parents 76974d1 + 02f65e7 commit 5bfde38

File tree

3 files changed

+127
-1
lines changed

3 files changed

+127
-1
lines changed

modules/data/about_prefs.components.json

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
},
7979

8080
"prefs-button": {
81-
"selectorData": "button[label=\"{name}\"]",
81+
"selectorData": "button[label='{name}']",
8282
"strategy": "css",
8383
"groups": []
8484
},
@@ -153,6 +153,63 @@
153153
"groups": []
154154
},
155155

156+
"language-set-alternatives-button": {
157+
"selectorData": "manageBrowserLanguagesButton",
158+
"strategy": "id",
159+
"groups": []
160+
},
161+
162+
"language-set-alternatives-popup-select-language": {
163+
"selectorData": "availableLocales",
164+
"strategy": "id",
165+
"groups": [
166+
"doNotCache"
167+
]
168+
},
169+
170+
"language-set-alternatives-popup-select-language-search-more": {
171+
"selectorData": "menuitem[label='Search for more languages…']",
172+
"strategy": "css",
173+
"groups": []
174+
},
175+
176+
"language-set-alternatives-popup-select-language-italian": {
177+
"selectorData": "menuitem[label='Italiano']",
178+
"strategy": "css",
179+
"groups": []
180+
},
181+
182+
"languages-shadow-root": {
183+
"selectorData": "dialog[buttons='accept,cancel,help']",
184+
"strategy": "css",
185+
"groups": []
186+
},
187+
188+
"language-accept-button": {
189+
"selectorData": "button[dlgtype='accept']",
190+
"strategy": "css",
191+
"shadowParent": "languages-shadow-root",
192+
"groups": []
193+
},
194+
195+
"language-add-button": {
196+
"selectorData": "add",
197+
"strategy": "id",
198+
"groups": []
199+
},
200+
201+
"language-list-item": {
202+
"selectorData": "locale-it",
203+
"strategy": "id",
204+
"groups": []
205+
},
206+
207+
"html-root": {
208+
"selectorData": "preferences-root",
209+
"strategy": "id",
210+
"groups": []
211+
},
212+
156213
"home-new-tabs-dropdown": {
157214
"selectorData": "newTabMode",
158215
"strategy": "id",

tests/language_packs/conftest.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pytest
2+
3+
4+
@pytest.fixture()
5+
def suite_id():
6+
return ("S22801", "Language Packs")
7+
8+
9+
@pytest.fixture()
10+
def set_prefs():
11+
"""Set prefs"""
12+
return [
13+
("intl.multilingual.downloadEnabled", True),
14+
("intl.multilingual.enabled", True),
15+
("intl.multilingual.liveReload", True),
16+
]
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from selenium.webdriver import Firefox
2+
3+
from modules.page_object import AboutPrefs
4+
from modules.util import BrowserActions
5+
6+
7+
def test_language_pack_install_about_preferences(driver: Firefox):
8+
"""
9+
C1549409: language packs can be installed from about:preferences and firefox is correctly localized
10+
"""
11+
# instantiate objects
12+
about_prefs = AboutPrefs(driver, category="general").open()
13+
ba = BrowserActions(driver)
14+
alternative_button = about_prefs.get_element("language-set-alternatives-button")
15+
alternative_button.click()
16+
17+
# press the alternatives button and find italian
18+
iframe = about_prefs.get_element("browser-popup")
19+
ba.switch_to_iframe_context(iframe)
20+
about_prefs.get_element("language-set-alternatives-popup-select-language").click()
21+
about_prefs.element_clickable(
22+
"language-set-alternatives-popup-select-language-search-more"
23+
)
24+
more_languages_option = about_prefs.get_element(
25+
"language-set-alternatives-popup-select-language-search-more"
26+
)
27+
about_prefs.double_click(more_languages_option)
28+
29+
# waiting for the language install to be sucessful
30+
about_prefs.custom_wait(timeout=20).until(
31+
lambda _: about_prefs.get_element(
32+
"language-set-alternatives-popup-select-language"
33+
).get_attribute("label")
34+
== "Select a language to add…"
35+
)
36+
37+
# activate the italian language
38+
dropdown_selection = about_prefs.get_element(
39+
"language-set-alternatives-popup-select-language"
40+
)
41+
dropdown_selection.click()
42+
about_prefs.get_element(
43+
"language-set-alternatives-popup-select-language-italian"
44+
).click()
45+
dropdown_selection.click()
46+
about_prefs.get_element("language-add-button").click()
47+
about_prefs.get_element("language-list-item").click()
48+
about_prefs.get_element("language-accept-button").click()
49+
50+
# final asserts to ensure language is set
51+
ba.switch_to_content_context()
52+
assert about_prefs.get_element("html-root").get_attribute("lang") == "it"
53+
assert alternative_button.get_attribute("label") == "Imposta alternative…"

0 commit comments

Comments
 (0)