browser_password_management.js (2834B)
1 "use strict"; 2 3 const { LoginTestUtils } = ChromeUtils.importESModule( 4 "resource://testing-common/LoginTestUtils.sys.mjs" 5 ); 6 const { TelemetryTestUtils } = ChromeUtils.importESModule( 7 "resource://testing-common/TelemetryTestUtils.sys.mjs" 8 ); 9 10 add_setup(async function () { 11 await SpecialPowers.pushPrefEnv({ 12 set: [["toolkit.osKeyStore.unofficialBuildOnlyLogin", ""]], 13 }); 14 }); 15 16 var passwordsDialog; 17 18 add_task(async function test_openPasswordManagement() { 19 await SpecialPowers.pushPrefEnv({ 20 set: [["browser.settings-redesign.enabled", false]], 21 }); 22 await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true }); 23 24 let tabOpenPromise = BrowserTestUtils.waitForNewTab(gBrowser, "about:logins"); 25 26 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () { 27 let doc = content.document; 28 29 let savePasswordCheckBox = doc.getElementById("savePasswords"); 30 Assert.ok( 31 !savePasswordCheckBox.checked, 32 "Save Password CheckBox should be unchecked by default" 33 ); 34 35 let showPasswordsButton = doc.getElementById("showPasswords"); 36 showPasswordsButton.click(); 37 }); 38 39 let tab = await tabOpenPromise; 40 ok(tab, "Tab opened"); 41 42 // check telemetry events while we are in here 43 await LoginTestUtils.telemetry.waitForEventCount(1); 44 TelemetryTestUtils.assertEvents( 45 [["pwmgr", "open_management", "preferences"]], 46 { category: "pwmgr", method: "open_management" }, 47 { clear: true, process: "content" } 48 ); 49 50 BrowserTestUtils.removeTab(tab); 51 gBrowser.removeCurrentTab(); 52 }); 53 54 add_task(async function test_openPasswordManagementNew() { 55 await SpecialPowers.pushPrefEnv({ 56 set: [["browser.settings-redesign.enabled", true]], 57 }); 58 await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true }); 59 60 let tabOpenPromise = BrowserTestUtils.waitForNewTab(gBrowser, "about:logins"); 61 62 await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () { 63 let doc = content.document; 64 65 let savePasswordCheckBox = doc.getElementById("savePasswords"); 66 Assert.ok( 67 !savePasswordCheckBox.checked, 68 "Save Password CheckBox should be unchecked by default" 69 ); 70 71 let showPasswordsButton = doc 72 .getElementById("manageSavedPasswords") 73 /** 74 * Must test clicking on shadowRoot anchor or a11y checks will fail. 75 */ 76 .shadowRoot.querySelector("a"); 77 showPasswordsButton.click(); 78 }); 79 80 let tab = await tabOpenPromise; 81 ok(tab, "Tab opened"); 82 83 // check telemetry events while we are in here 84 await LoginTestUtils.telemetry.waitForEventCount(1); 85 TelemetryTestUtils.assertEvents( 86 [["pwmgr", "open_management", "preferences"]], 87 { category: "pwmgr", method: "open_management" }, 88 { clear: true, process: "content" } 89 ); 90 91 BrowserTestUtils.removeTab(tab); 92 gBrowser.removeCurrentTab(); 93 });