Files
UXP-Fixed/toolkit/components/passwordmgr/test/browser/browser_exceptions_dialog.js
T
2018-02-02 04:16:08 -05:00

57 lines
1.6 KiB
JavaScript

"use strict";
const LOGIN_HOST = "http://example.com";
function openExceptionsDialog() {
return window.openDialog(
"chrome://browser/content/preferences/permissions.xul",
"Toolkit:PasswordManagerExceptions", "",
{
blockVisible: true,
sessionVisible: false,
allowVisible: false,
hideStatusColumn: true,
prefilledHost: "",
permissionType: "login-saving"
}
);
}
function countDisabledHosts(dialog) {
let doc = dialog.document;
let rejectsTree = doc.getElementById("permissionsTree");
return rejectsTree.view.rowCount;
}
function promiseStorageChanged(expectedData) {
function observer(subject, data) {
return data == expectedData && subject.QueryInterface(Ci.nsISupportsString).data == LOGIN_HOST;
}
return TestUtils.topicObserved("passwordmgr-storage-changed", observer);
}
add_task(function* test_disable() {
let dialog = openExceptionsDialog();
let promiseChanged = promiseStorageChanged("hostSavingDisabled");
yield BrowserTestUtils.waitForEvent(dialog, "load");
Services.logins.setLoginSavingEnabled(LOGIN_HOST, false);
yield promiseChanged;
is(countDisabledHosts(dialog), 1, "Verify disabled host added");
yield BrowserTestUtils.closeWindow(dialog);
});
add_task(function* test_enable() {
let dialog = openExceptionsDialog();
let promiseChanged = promiseStorageChanged("hostSavingEnabled");
yield BrowserTestUtils.waitForEvent(dialog, "load");
Services.logins.setLoginSavingEnabled(LOGIN_HOST, true);
yield promiseChanged;
is(countDisabledHosts(dialog), 0, "Verify disabled host removed");
yield BrowserTestUtils.closeWindow(dialog);
});