Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
async function openLibrary() {
return new Promise(resolve => {
let library = window.openDialog(
"",
"chrome,toolbar=yes,dialog=no,resizable"
);
waitForFocus(() => resolve(library), library);
});
}
add_task(async function test_disable_profile_import() {
await setupPolicyEngineWithJson({
policies: {
DisableProfileImport: true,
},
});
let library = await openLibrary();
let menu = library.document.getElementById("maintenanceButtonPopup");
let promisePopupShown = BrowserTestUtils.waitForEvent(menu, "popupshown");
menu.openPopup();
await promisePopupShown;
let profileImportButton = library.document.getElementById("browserImport");
is(
profileImportButton.disabled,
true,
"Profile Import button should be disabled"
);
let promisePopupHidden = BrowserTestUtils.waitForEvent(menu, "popuphidden");
menu.hidePopup();
await promisePopupHidden;
await BrowserTestUtils.closeWindow(library);
checkLockedPref("browser.newtabpage.activity-stream.migrationExpired", true);
});
add_task(async function test_file_menu() {
gFileMenu.updateImportCommandEnabledState();
let command = document.getElementById("cmd_file_importFromAnotherBrowser");
ok(
command.getAttribute("disabled"),
"The `Import from Another Browser…` File menu item command should be disabled"
);
if (Services.appinfo.OS == "Darwin") {
// We would need to have a lot of boilerplate to open the menus on Windows
// and Linux to test this there.
let menuitem = document.getElementById("menu_importFromAnotherBrowser");
ok(
menuitem.disabled,
"The `Import from Another Browser…` File menu item should be disabled"
);
}
});
add_task(async function test_import_button() {
await PlacesUIUtils.maybeAddImportButton();
ok(
!document.getElementById("import-button"),
"Import button should be hidden."
);
});
add_task(async function test_prefs_entrypoint() {
await SpecialPowers.pushPrefEnv({
set: [["browser.migrate.preferences-entrypoint.enabled", true]],
});
let finalPaneEvent = Services.prefs.getBoolPref("identity.fxaccounts.enabled")
? "sync-pane-loaded"
: "privacy-pane-loaded";
let finalPrefPaneLoaded = TestUtils.topicObserved(finalPaneEvent, () => true);
await BrowserTestUtils.withNewTab(
"about:preferences#general-migrate",
async browser => {
await finalPrefPaneLoaded;
await browser.contentWindow.customElements.whenDefined(
"migration-wizard"
);
let doc = browser.contentDocument;
ok(
!doc.getElementById("dataMigrationGroup"),
"Should remove import entrypoint in prefs if disabled via policy."
);
ok(
!doc.getElementById("migrationWizardDialog").open,
"Should not have opened the migration wizard."
);
}
);
});