Skip to content

Commit a4907ee

Browse files
committed
formatting'
1 parent dd83cd9 commit a4907ee

File tree

4 files changed

+95
-60
lines changed

4 files changed

+95
-60
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"language-addons-title": {
3+
"selectorData": "Card-header-text",
4+
"strategy": "class",
5+
"groups": []
6+
},
7+
8+
"language-addons-row": {
9+
"selectorData": "tr[class='{name}']",
10+
"strategy": "css",
11+
"groups": []
12+
},
13+
14+
"language-addons-row-link": {
15+
"selectorData": "a",
16+
"strategy": "tag",
17+
"groups": []
18+
},
19+
20+
"language-addons-subpage-add-to-firefox": {
21+
"selectorData": "div[class='AMInstallButton AMInstallButton--noDownloadLink']",
22+
"strategy": "css",
23+
"groups": []
24+
},
25+
26+
"language-install-popup-add": {
27+
"selectorData": "button[class='popup-notification-primary-button primary footer-button']",
28+
"strategy": "css",
29+
"groups": [
30+
"doNotCache"
31+
]
32+
},
33+
34+
"language-addons-subpage-header": {
35+
"selectorData": "AddonTitle",
36+
"strategy": "class",
37+
"groups": []
38+
}
39+
}

modules/data/generic_page.components.json

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,5 @@
33
"selectorData": "body",
44
"strategy": "tag",
55
"groups": []
6-
},
7-
8-
"language-addons-row": {
9-
"selectorData": "tr[class='LanguageTools-table-row LanguageTools-lang-it']",
10-
"strategy": "css",
11-
"groups": []
12-
},
13-
14-
"language-addons-title": {
15-
"selectorData": "Card-header-text",
16-
"strategy": "class",
17-
"groups": []
18-
},
19-
20-
"language-addons-row-link": {
21-
"selectorData": "a",
22-
"strategy": "tag",
23-
"groups": []
24-
},
25-
26-
"language-addons-subpage-header": {
27-
"selectorData": "AddonTitle",
28-
"strategy": "class",
29-
"groups": []
30-
},
31-
32-
"language-addons-subpage-add-to-firefox": {
33-
"selectorData": "div[class='AMInstallButton AMInstallButton--noDownloadLink']",
34-
"strategy": "css",
35-
"groups": []
36-
},
37-
38-
"language-install-popup-add": {
39-
"selectorData": "button[class='popup-notification-primary-button primary footer-button']",
40-
"strategy": "css",
41-
"groups": [
42-
"doNotCache"
43-
]
446
}
457
}

modules/page_object_addons_mozilla_org.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,35 @@ def install_recommended_theme(self) -> BasePage:
2424
self.driver.find_element(By.CSS_SELECTOR, "button[label='Add']").click()
2525
self.driver.find_element(By.CSS_SELECTOR, "button[label='Okay']").click()
2626
return self
27+
28+
29+
class AmoLanguages(BasePage):
30+
"""
31+
POM for AMO Languages
32+
"""
33+
34+
URL_TEMPLATE = "https://addons.mozilla.org/en-US/firefox/language-tools/"
35+
36+
def wait_for_language_page_to_load(self) -> BasePage:
37+
"""
38+
Waits until the language page is loaded
39+
"""
40+
self.custom_wait(timeout=20).until(
41+
lambda _: self.get_element("language-addons-title") is not None
42+
)
43+
return self
44+
45+
def find_language_row_and_navigate(self, language_label: str) -> BasePage:
46+
"""
47+
Finds the row that corresponds with the language_label and clicks into it
48+
"""
49+
language_row = self.get_element("language-addons-row", labels=[language_label])
50+
self.get_element(
51+
"language-addons-row-link", parent_element=language_row
52+
).click()
53+
54+
# ensuring the subpage of the language is loaded
55+
self.custom_wait(timeout=20).until(
56+
lambda _: self.get_element("language-addons-subpage-header") is not None
57+
)
58+
return self

tests/language_packs/test_language_pack_install_addons.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,46 @@
11
import pytest
22
from selenium.webdriver import Firefox
33

4-
from modules.page_object import AboutAddons, AboutPrefs, GenericPage
4+
from modules.page_object import AboutAddons, AboutPrefs, AmoLanguages
55

6-
LANGUAGE_ADDONS_LINK = "https://addons.mozilla.org/en-US/firefox/language-tools/"
7-
LANGUAGES = [("Italiano", "it", "Imposta alternative…")]
6+
LANGUAGES = [
7+
(
8+
"Italiano",
9+
"LanguageTools-table-row LanguageTools-lang-it",
10+
"it",
11+
"Imposta alternative…",
12+
)
13+
]
814

915

10-
@pytest.mark.parametrize("drop_down_name, shortform, localized_text", LANGUAGES)
16+
@pytest.mark.parametrize(
17+
"drop_down_name, language_label, shortform, localized_text", LANGUAGES
18+
)
1119
def test_language_pack_install_from_addons(
12-
driver: Firefox, drop_down_name: str, shortform: str, localized_text: str
20+
driver: Firefox,
21+
drop_down_name: str,
22+
language_label: str,
23+
shortform: str,
24+
localized_text: str,
1325
):
1426
"""
1527
C1549408: verify that installing a language pack from about:addons will correctly change the locale
1628
"""
17-
# declaring objects and navigating
18-
generic_page = GenericPage(driver)
19-
driver.get(LANGUAGE_ADDONS_LINK)
29+
# instantiate objects
30+
amo_languages = AmoLanguages(driver).open()
2031

2132
# ensuring the page was loaded
22-
generic_page.custom_wait(timeout=20).until(
23-
lambda _: generic_page.get_element("language-addons-title") is not None
24-
)
33+
amo_languages.wait_for_language_page_to_load()
2534

2635
# grab the appropriate link and wait until the page is loaded
27-
language_row = generic_page.get_element("language-addons-row")
28-
generic_page.get_element(
29-
"language-addons-row-link", parent_element=language_row
30-
).click()
31-
generic_page.custom_wait(timeout=20).until(
32-
lambda _: generic_page.get_element("language-addons-subpage-header") is not None
33-
)
34-
35-
generic_page.get_element("language-addons-subpage-add-to-firefox").click()
36+
amo_languages.find_language_row_and_navigate(language_label)
37+
amo_languages.get_element("language-addons-subpage-add-to-firefox").click()
3638

3739
with driver.context(driver.CONTEXT_CHROME):
3840
# click one for "Add"
39-
generic_page.get_element("language-install-popup-add").click()
41+
amo_languages.get_element("language-install-popup-add").click()
4042
# click second time for "Okay", the button is not cached which allows for two different buttons to be different
41-
generic_page.get_element("language-install-popup-add").click()
43+
amo_languages.get_element("language-install-popup-add").click()
4244

4345
# ensure that the about:addons has the language listed
4446
about_addons = AboutAddons(driver).open()

0 commit comments

Comments
 (0)