Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const PERMISSIONS_URL =
"chrome://browser/content/preferences/dialogs/permissions.xhtml";
var exceptionsDialog;
add_task(async function openLoginExceptionsSubDialog() {
await SpecialPowers.pushPrefEnv({
set: [["browser.settings-redesign.enabled", false]],
});
// ensure rememberSignons is off for this test;
ok(
!Services.prefs.getBoolPref("signon.rememberSignons"),
"Check initial value of signon.rememberSignons pref"
);
await EnterprisePolicyTesting.setupPolicyEngineWithJson({
policies: {
PasswordManagerExceptions: ["https://pwexception.example.com"],
},
});
await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
let dialogOpened = promiseLoadSubDialog(PERMISSIONS_URL);
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
let doc = content.document;
let savePasswordCheckBox = doc.getElementById("savePasswords");
savePasswordCheckBox.click();
let loginExceptionsButton = doc.getElementById("passwordExceptions");
loginExceptionsButton.click();
});
exceptionsDialog = await dialogOpened;
let doc = exceptionsDialog.document;
let richlistbox = doc.getElementById("permissionsBox");
Assert.equal(richlistbox.itemCount, 1, `Row count should initially be 1`);
richlistbox.focus();
richlistbox.selectedIndex = 0;
Assert.ok(doc.getElementById("removePermission").disabled);
// Undo the save password change.
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
let savePasswordCheckBox = content.document.getElementById("savePasswords");
if (savePasswordCheckBox.checked) {
savePasswordCheckBox.click();
}
});
gBrowser.removeCurrentTab();
await EnterprisePolicyTesting.setupPolicyEngineWithJson("");
});
add_task(async function openLoginExceptionsSubDialogNew() {
await SpecialPowers.pushPrefEnv({
set: [["browser.settings-redesign.enabled", true]],
});
// ensure rememberSignons is off for this test;
ok(
!Services.prefs.getBoolPref("signon.rememberSignons"),
"Check initial value of signon.rememberSignons pref"
);
await EnterprisePolicyTesting.setupPolicyEngineWithJson({
policies: {
PasswordManagerExceptions: ["https://pwexception.example.com"],
},
});
info("Opening privacy panel");
await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
let dialogOpened = promiseLoadSubDialog(PERMISSIONS_URL);
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () {
let doc = content.document;
let savePasswordCheckBox = doc.getElementById("savePasswords");
savePasswordCheckBox.click();
let loginExceptionsButton = doc.getElementById("managePasswordExceptions");
await ContentTaskUtils.waitForCondition(
() => !loginExceptionsButton.disabled
);
loginExceptionsButton.click();
});
info("Waiting for dialog to open");
exceptionsDialog = await dialogOpened;
info("Assert remove permission is disabled");
let doc = exceptionsDialog.document;
let richlistbox = doc.getElementById("permissionsBox");
Assert.equal(richlistbox.itemCount, 1, `Row count should initially be 1`);
richlistbox.focus();
richlistbox.selectedIndex = 0;
Assert.ok(doc.getElementById("removePermission").disabled);
// Undo the save password change.
await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
let savePasswordCheckBox = content.document.getElementById("savePasswords");
if (savePasswordCheckBox.checked) {
savePasswordCheckBox.click();
}
});
gBrowser.removeCurrentTab();
await EnterprisePolicyTesting.setupPolicyEngineWithJson("");
});