Skip to content

Commit dfe1fdc

Browse files
committed
vs/CC-doorhanger-data-is-saved-in-about-prefs
1 parent ebb3e09 commit dfe1fdc

File tree

3 files changed

+22
-19
lines changed

3 files changed

+22
-19
lines changed

l10n_CM/Unified/test_demo_cc_doorhanger_data_is_stored_in_about_prefs.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,24 @@ def test_demo_cc_data_captured_in_doorhanger_and_stored(driver: Firefox, region:
3535
# The "Save credit card?" doorhanger is displayed
3636
assert autofill_popup_obj.element_visible("doorhanger-save-button"), "Credit card save doorhanger is not visible"
3737

38+
# Verify Credit Card Doorhanger Data
39+
doorhanger_text = autofill_popup_obj.get_cc_doorhanger_data("cc-doorhanger-data")
40+
assert credit_card_sample_data.card_number[-4:] in doorhanger_text, f"Expected last 4 digits '{credit_card_sample_data.card_number[-4:]}' but not found."
41+
assert credit_card_sample_data.name in doorhanger_text, f"Expected name '{credit_card_sample_data.name}' but not found."
42+
assert credit_card_sample_data.cvv not in doorhanger_text, f"cvv '{credit_card_sample_data.cvv}' should not be saved, but found in doorhanger."
43+
3844
# Click the "Save" button using click_doorhanger_button
3945
autofill_popup_obj.click_doorhanger_button("save")
4046

4147
# Navigate to about:preferences#privacy => "Autofill" section
4248
about_prefs = AboutPrefs(driver, category="privacy").open()
43-
iframe = about_prefs.get_save_credit_cards_popup_iframe()
49+
iframe = about_prefs.get_saved_payments_popup_iframe()
4450
browser_action_obj.switch_to_iframe_context(iframe)
4551

46-
# get the text from the row and split by the comma, striping any leading or trailing whitespace on the way.
52+
# Get stored values
4753
elements = [x.strip() for x in about_prefs.get_element("saved-credit-cards-values").text.split(',')]
4854

4955
# Validate stored values match expected values
50-
assert elements[0].endswith(credit_card_sample_data.card_number[-4:]), \
51-
f"Expected last 4 digits '{credit_card_sample_data.card_number[-4:]}' but got '{elements[0]}'"
52-
53-
assert elements[1] == credit_card_sample_data.name, \
54-
f"Expected name '{credit_card_sample_data.name}' but got '{elements[1]}'"
55-
56-
expected_expiry = f"Expires on {int(credit_card_sample_data.expiration_month)}/20{credit_card_sample_data.expiration_year}"
57-
assert elements[2] == expected_expiry, \
58-
f"Expected expiration '{expected_expiry}' but got '{elements[2]}'"
56+
assert elements[0].endswith(credit_card_sample_data.card_number[-4:]), f"Expected last 4 digits '{credit_card_sample_data.card_number[-4:]}' but got '{elements[0]}'"
57+
assert elements[1] == credit_card_sample_data.name, f"Expected name '{credit_card_sample_data.name}' but got '{elements[1]}'"
58+
assert credit_card_sample_data.cvv not in elements, f"cvv '{credit_card_sample_data.cvv}' should not be saved, but found in stored values."

modules/browser_object_autofill_popup.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ def click_clear_form_option(self) -> BasePage:
5353
self.get_element("clear-form-option").click()
5454
return self
5555

56+
def get_doorhanger_cc_number(self) -> str:
57+
"""Retrieves the last 4 digits of the credit card from the doorhanger popup"""
58+
return self.get_element("doorhanger-cc-number").text
59+
60+
def get_cc_doorhanger_data(self, selector: str) -> str:
61+
"""
62+
get text for the credit card doorhanger data.
63+
"""
64+
with self.driver.context(self.driver.CONTEXT_CHROME):
65+
return self.get_element(selector).text
66+
5667
# Interaction with autocomplete list elements
5768
def get_nth_element(self, index: str) -> WebElement:
5869
"""

modules/page_object_prefs.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -265,14 +265,6 @@ def get_save_addresses_popup_iframe(self) -> WebElement:
265265
iframe = self.get_element("browser-popup")
266266
return iframe
267267

268-
def get_save_credit_cards_popup_iframe(self) -> WebElement:
269-
"""
270-
Returns the iframe object for the credit card dialog panel in the popup
271-
"""
272-
self.get_element("prefs-button", labels=["Saved payment methods"]).click()
273-
iframe = self.get_element("browser-popup")
274-
return iframe
275-
276268
def get_password_exceptions_popup_iframe(self) -> WebElement:
277269
"""
278270
Returns the iframe object for the Password Exceptions dialog panel in the popup.

0 commit comments

Comments
 (0)