Skip to content

Commit 3f1bc0f

Browse files
committed
Verify CC dropdown presence in all form fields
1 parent 93d1288 commit 3f1bc0f

12 files changed

+76
-25
lines changed

l10n_CM/Unified/test_demo_ad_name_org_captured_in_doorhanger_and_stored.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@
55
from modules.page_object_about_pages import AboutConfig
66
from modules.page_object_autofill import AddressFill
77
from modules.page_object_prefs import AboutPrefs
8-
from modules.util import Utilities, BrowserActions
8+
from modules.util import BrowserActions, Utilities
99

1010

1111
@pytest.fixture()
1212
def test_case():
1313
return "2888701"
1414

1515

16-
def test_demo_ad_name_org_captured_in_doorhanger_and_stored(driver: Firefox, region: str):
16+
def test_demo_ad_name_org_captured_in_doorhanger_and_stored(
17+
driver: Firefox, region: str
18+
):
1719
"""
1820
C2888701 - Verify name/org fields are captured in the Capture Doorhanger and stored in about:preferences
1921
"""
@@ -55,8 +57,7 @@ def test_demo_ad_name_org_captured_in_doorhanger_and_stored(driver: Firefox, reg
5557
elements = about_prefs.get_elements("saved-addresses-values")
5658
expected_values = [expected_name, expected_org]
5759
found_name_org = any(
58-
all(value in element.text for value in expected_values)
59-
for element in elements
60+
all(value in element.text for value in expected_values) for element in elements
6061
)
6162
assert (
6263
found_name_org
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import pytest
2+
from selenium.webdriver import Firefox
3+
4+
from modules.browser_object_autofill_popup import AutofillPopup
5+
from modules.page_object import AboutConfig, AboutPrefs
6+
from modules.page_object_autofill import CreditCardFill
7+
from modules.util import BrowserActions, Utilities
8+
9+
10+
@pytest.fixture()
11+
def test_case():
12+
return "2886598"
13+
14+
15+
def test_dropdown_presence_credit_card(driver: Firefox, region: str):
16+
"""
17+
C2886598 - Verify autofill dropdown is displayed only for the eligible fields after a credit card is saved
18+
"""
19+
20+
# Initialize
21+
util = Utilities()
22+
about_prefs = AboutPrefs(driver, category="privacy")
23+
about_prefs_cc_popup = AboutPrefs(driver)
24+
about_config = AboutConfig(driver)
25+
browser_action_obj = BrowserActions(driver)
26+
credit_card_fill_obj = CreditCardFill(driver)
27+
autofill_popup_obj = AutofillPopup(driver)
28+
29+
# Change pref value of region
30+
about_config.change_config_value("browser.search.region", region)
31+
32+
# Save a credit card in about:preferences
33+
about_prefs.open()
34+
iframe = about_prefs.get_saved_payments_popup_iframe()
35+
browser_action_obj.switch_to_iframe_context(iframe)
36+
credit_card_sample_data = util.fake_credit_card_data()
37+
about_prefs_cc_popup.click_on(
38+
"panel-popup-button", labels=["autofill-manage-add-button"]
39+
)
40+
about_prefs.fill_cc_panel_information(credit_card_sample_data)
41+
42+
# Open credit card form page
43+
credit_card_fill_obj.open()
44+
45+
# Verify autofill dropdown is displayed only for the eligible fields
46+
credit_card_fill_obj.verify_autofill_dropdown_all_fields(autofill_popup_obj)

l10n_CM/region/CA.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"test_demo_cc_doorhanger_shown_on_valid_credit_card_submission.py",
55
"test_demo_cc_add_new_credit_card.py",
66
"test_demo_ad_doorhanger_shown_on_valid_address_submission.py",
7-
"test_demo_ad_name_org_captured_in_doorhanger_and_stored"
7+
"test_demo_ad_name_org_captured_in_doorhanger_and_stored.py",
8+
"test_demo_cc_dropdown-presence.py"
89
]
910
}

l10n_CM/region/DE.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"test_demo_cc_doorhanger_shown_on_valid_credit_card_submission.py",
55
"test_demo_cc_add_new_credit_card.py",
66
"test_demo_ad_doorhanger_shown_on_valid_address_submission.py",
7-
"test_demo_ad_name_org_captured_in_doorhanger_and_stored"
7+
"test_demo_ad_name_org_captured_in_doorhanger_and_stored.py",
8+
"test_demo_cc_dropdown-presence.py"
89
]
910
}

l10n_CM/region/FR.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"test_demo_cc_doorhanger_shown_on_valid_credit_card_submission.py",
55
"test_demo_cc_add_new_credit_card.py",
66
"test_demo_ad_doorhanger_shown_on_valid_address_submission.py",
7-
"test_demo_ad_name_org_captured_in_doorhanger_and_stored"
7+
"test_demo_ad_name_org_captured_in_doorhanger_and_stored.py",
8+
"test_demo_cc_dropdown-presence.py"
89
]
910
}

l10n_CM/region/US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"test_demo_cc_doorhanger_shown_on_valid_credit_card_submission.py",
55
"test_demo_cc_add_new_credit_card.py",
66
"test_demo_ad_doorhanger_shown_on_valid_address_submission.py",
7-
"test_demo_ad_name_org_captured_in_doorhanger_and_stored"
7+
"test_demo_ad_name_org_captured_in_doorhanger_and_stored.py",
8+
"test_demo_cc_dropdown-presence.py"
89
]
910
}

modules/browser_object_autofill_popup.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,15 @@ def verify_element_displayed(self, reference: Union[str, tuple, WebElement]):
2323
"""Confirms that an element exists in popup"""
2424
self.element_clickable(reference)
2525

26-
def verify_no_popup_panel(self):
27-
"""Verifies that the autofill popup does NOT appear"""
28-
with self.driver.context(self.driver.CONTEXT_CHROME):
29-
element = self.get_element("autofill-panel")
30-
self.expect_not(EC.element_to_be_clickable(element))
26+
def ensure_autofill_dropdown_not_visible(self):
27+
"""Verifies that the autofill dropdown does NOT appear"""
28+
self.element_not_visible("select-form-option")
29+
return self
3130

32-
def verify_popup(self):
33-
"""Verifies that the autofill popup is clickable"""
34-
with self.driver.context(self.driver.CONTEXT_CHROME):
35-
self.expect(
36-
EC.element_to_be_clickable(self.get_element("select-form-option"))
37-
)
31+
def ensure_autofill_dropdown_visible(self):
32+
"""Verifies that the autofill dropdown appears"""
33+
self.element_visible("select-form-option")
34+
return self
3835

3936
# Interaction with popup elements
4037
def click_doorhanger_button(self, button_type: str) -> BasePage:

modules/page_object_autofill.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,14 @@ def fill_credit_card_info(self, info: CreditCardBase):
7373

7474
self.click_form_button("submit")
7575

76-
def verify_all_fields(self, ccp: AutofillPopup):
76+
def verify_autofill_dropdown_all_fields(self, ccp: AutofillPopup):
7777
"""Given a CreditCardPopup object, verify all fields"""
7878
for field in self.fields:
7979
self.double_click("form-field", labels=[field])
80-
ccp.verify_popup()
80+
ccp.ensure_autofill_dropdown_visible()
81+
# Ensure 'cc-csc' does NOT trigger the dropdown
82+
self.double_click("form-field", labels=["cc-csc"])
83+
ccp.ensure_autofill_dropdown_not_visible() # Ensure popup does NOT appear
8184

8285
def verify_four_fields(
8386
self, ccp: AutofillPopup, credit_card_sample_data: CreditCardBase

tests/form_autofill/test_autofill_credit_card.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ def test_autofill_credit_card(driver: Firefox):
2424
credit_card_fill_obj.fill_credit_card_info(credit_card_sample_data)
2525
autofill_popup_obj.click_doorhanger_button("save")
2626

27-
credit_card_fill_obj.verify_all_fields(autofill_popup_obj)
27+
credit_card_fill_obj.verify_autofill_dropdown_all_fields(autofill_popup_obj)

tests/form_autofill/test_autofill_credit_card_enable.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ def test_enable_disable_form_autofill_cc(driver: Firefox):
3131
new_autofill_popup_obj = AutofillPopup(driver)
3232

3333
new_credit_card_fill_obj.double_click("form-field", labels=["cc-name"])
34-
new_autofill_popup_obj.verify_no_popup_panel()
34+
new_autofill_popup_obj.ensure_autofill_dropdown_not_visible()

0 commit comments

Comments
 (0)