Source code
Revision control
Copy as Markdown
Other Tools
"use strict";
add_task(async function test_submit_creditCard_with_sync_account() {
await SpecialPowers.pushPrefEnv({
set: [
[SYNC_USERNAME_PREF, "foo@bar.com"],
[SYNC_CREDITCARDS_AVAILABLE_PREF, true],
[ENABLED_AUTOFILL_CREDITCARDS_PREF, true],
],
});
await BrowserTestUtils.withNewTab(
{ gBrowser, url: CREDITCARD_FORM_URL },
async function (browser) {
let onPopupShown = waitForPopupShown();
await focusUpdateSubmitForm(browser, {
focusSelector: "#cc-name",
newValues: {
"#cc-name": "User 2",
"#cc-number": "6387060366272981",
},
});
await onPopupShown;
let cb = getDoorhangerCheckbox();
ok(!cb.hidden, "Sync checkbox should be visible");
is(
SpecialPowers.getBoolPref(SYNC_CREDITCARDS_PREF),
false,
"creditCards sync should be disabled by default"
);
// Verify if the checkbox and button state is changed.
let secondaryButton = getDoorhangerButton(SECONDARY_BUTTON);
let menuButton = getDoorhangerButton(MENU_BUTTON);
is(
cb.checked,
false,
"Checkbox state should match creditCards sync state"
);
is(
secondaryButton.disabled,
false,
"Not saving button should be enabled"
);
is(
menuButton.disabled,
false,
"Never saving menu button should be enabled"
);
// Click the checkbox to enable credit card sync.
cb.click();
is(
SpecialPowers.getBoolPref(SYNC_CREDITCARDS_PREF),
true,
"creditCards sync should be enabled after checked"
);
is(
secondaryButton.disabled,
true,
"Not saving button should be disabled"
);
is(
menuButton.disabled,
true,
"Never saving menu button should be disabled"
);
// Click the checkbox again to disable credit card sync.
cb.click();
is(
SpecialPowers.getBoolPref(SYNC_CREDITCARDS_PREF),
false,
"creditCards sync should be disabled after unchecked"
);
is(
secondaryButton.disabled,
false,
"Not saving button should be enabled again"
);
is(
menuButton.disabled,
false,
"Never saving menu button should be enabled again"
);
await clickDoorhangerButton(SECONDARY_BUTTON);
}
);
});
add_task(async function test_submit_creditCard_with_synced_already() {
await SpecialPowers.pushPrefEnv({
set: [
[SYNC_CREDITCARDS_PREF, true],
[SYNC_USERNAME_PREF, "foo@bar.com"],
[SYNC_CREDITCARDS_AVAILABLE_PREF, true],
],
});
await BrowserTestUtils.withNewTab(
{ gBrowser, url: CREDITCARD_FORM_URL },
async function (browser) {
let onPopupShown = waitForPopupShown();
await focusUpdateSubmitForm(browser, {
focusSelector: "#cc-name",
newValues: {
"#cc-name": "User 2",
"#cc-number": "6387060366272981",
},
});
await onPopupShown;
let cb = getDoorhangerCheckbox();
ok(cb.hidden, "Sync checkbox should be hidden");
await clickDoorhangerButton(SECONDARY_BUTTON);
}
);
});