From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../test/browser/browser_manageAddressesDialog.js | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 browser/extensions/formautofill/test/browser/browser_manageAddressesDialog.js (limited to 'browser/extensions/formautofill/test/browser/browser_manageAddressesDialog.js') diff --git a/browser/extensions/formautofill/test/browser/browser_manageAddressesDialog.js b/browser/extensions/formautofill/test/browser/browser_manageAddressesDialog.js new file mode 100644 index 0000000000..b070df0fda --- /dev/null +++ b/browser/extensions/formautofill/test/browser/browser_manageAddressesDialog.js @@ -0,0 +1,105 @@ +"use strict"; + +const TEST_SELECTORS = { + selRecords: "#addresses", + btnRemove: "#remove", + btnAdd: "#add", + btnEdit: "#edit", +}; + +const DIALOG_SIZE = "width=600,height=400"; + +add_task(async function test_manageAddressesInitialState() { + await BrowserTestUtils.withNewTab( + { gBrowser, url: MANAGE_ADDRESSES_DIALOG_URL }, + async function (browser) { + await SpecialPowers.spawn(browser, [TEST_SELECTORS], args => { + let selRecords = content.document.querySelector(args.selRecords); + let btnRemove = content.document.querySelector(args.btnRemove); + let btnEdit = content.document.querySelector(args.btnEdit); + let btnAdd = content.document.querySelector(args.btnAdd); + + is(selRecords.length, 0, "No address"); + is(btnAdd.disabled, false, "Add button enabled"); + is(btnRemove.disabled, true, "Remove button disabled"); + is(btnEdit.disabled, true, "Edit button disabled"); + }); + } + ); +}); + +add_task(async function test_cancelManageAddressDialogWithESC() { + let win = window.openDialog(MANAGE_ADDRESSES_DIALOG_URL); + await waitForFocusAndFormReady(win); + let unloadPromise = BrowserTestUtils.waitForEvent(win, "unload"); + EventUtils.synthesizeKey("VK_ESCAPE", {}, win); + await unloadPromise; + ok(true, "Manage addresses dialog is closed with ESC key"); +}); + +add_task(async function test_removingSingleAndMultipleAddresses() { + await setStorage(TEST_ADDRESS_1, TEST_ADDRESS_2, TEST_ADDRESS_3); + + let win = window.openDialog(MANAGE_ADDRESSES_DIALOG_URL, null, DIALOG_SIZE); + await waitForFocusAndFormReady(win); + + let selRecords = win.document.querySelector(TEST_SELECTORS.selRecords); + let btnRemove = win.document.querySelector(TEST_SELECTORS.btnRemove); + let btnEdit = win.document.querySelector(TEST_SELECTORS.btnEdit); + + is(selRecords.length, 3, "Three addresses"); + + EventUtils.synthesizeMouseAtCenter(selRecords.children[0], {}, win); + is(btnRemove.disabled, false, "Remove button enabled"); + is(btnEdit.disabled, false, "Edit button enabled"); + EventUtils.synthesizeMouseAtCenter(btnRemove, {}, win); + await BrowserTestUtils.waitForEvent(selRecords, "RecordsRemoved"); + is(selRecords.length, 2, "Two addresses left"); + + EventUtils.synthesizeMouseAtCenter(selRecords.children[0], {}, win); + EventUtils.synthesizeMouseAtCenter( + selRecords.children[1], + { shiftKey: true }, + win + ); + is(btnEdit.disabled, true, "Edit button disabled when multi-select"); + + EventUtils.synthesizeMouseAtCenter(btnRemove, {}, win); + await BrowserTestUtils.waitForEvent(selRecords, "RecordsRemoved"); + is(selRecords.length, 0, "All addresses are removed"); + + win.close(); +}); + +add_task(async function test_removingAdressViaKeyboardDelete() { + await setStorage(TEST_ADDRESS_1); + let win = window.openDialog(MANAGE_ADDRESSES_DIALOG_URL, null, DIALOG_SIZE); + await waitForFocusAndFormReady(win); + + let selRecords = win.document.querySelector(TEST_SELECTORS.selRecords); + + is(selRecords.length, 1, "One address"); + + EventUtils.synthesizeMouseAtCenter(selRecords.children[0], {}, win); + EventUtils.synthesizeKey("VK_DELETE", {}, win); + await BrowserTestUtils.waitForEvent(selRecords, "RecordsRemoved"); + is(selRecords.length, 0, "No addresses left"); + + win.close(); +}); + +add_task(async function test_addressesDialogWatchesStorageChanges() { + let win = window.openDialog(MANAGE_ADDRESSES_DIALOG_URL, null, DIALOG_SIZE); + await waitForFocusAndFormReady(win); + + let selRecords = win.document.querySelector(TEST_SELECTORS.selRecords); + + await setStorage(TEST_ADDRESS_1); + await BrowserTestUtils.waitForEvent(selRecords, "RecordsLoaded"); + is(selRecords.length, 1, "One address is shown"); + + await removeAddresses([selRecords.options[0].value]); + await BrowserTestUtils.waitForEvent(selRecords, "RecordsLoaded"); + is(selRecords.length, 0, "Address is removed"); + win.close(); +}); -- cgit v1.2.3