Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests that if browser.migrate.content-modal.about-welcome-behavior
* is "autoclose", that closing the migration dialog when opened with the
* NEWTAB entrypoint (which currently only occurs from about:welcome),
* will result in the about:preferences tab closing too.
*/
add_task(async function test_autoclose_from_welcome() {
await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank");
await SpecialPowers.pushPrefEnv({
set: [
["browser.migrate.content-modal.about-welcome-behavior", "autoclose"],
],
});
let migrationDialogPromise = waitForMigrationWizardDialogTab();
MigrationUtils.showMigrationWizard(window, {
entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.NEWTAB,
});
let prefsBrowser = await migrationDialogPromise;
let prefsTab = gBrowser.getTabForBrowser(prefsBrowser);
let tabClosed = BrowserTestUtils.waitForTabClosing(prefsTab);
let dialog = prefsBrowser.contentDocument.querySelector(
"#migrationWizardDialog"
);
let dialogClosed = BrowserTestUtils.waitForEvent(dialog, "close");
await BrowserTestUtils.synthesizeKey("VK_ESCAPE", {}, prefsBrowser);
await dialogClosed;
await tabClosed;
Assert.ok(true, "Preferences tab closed with autoclose behavior.");
});
/**
* Tests that if browser.migrate.content-modal.about-welcome-behavior
* is "default", that closing the migration dialog when opened with the
* NEWTAB entrypoint (which currently only occurs from about:welcome),
* will result in the about:preferences tab still staying open.
*/
add_task(async function test_no_autoclose_from_welcome() {
// Create a new blank tab which about:preferences will open into.
await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank");
await SpecialPowers.pushPrefEnv({
set: [["browser.migrate.content-modal.about-welcome-behavior", "default"]],
});
let migrationDialogPromise = waitForMigrationWizardDialogTab();
MigrationUtils.showMigrationWizard(window, {
entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.NEWTAB,
});
let prefsBrowser = await migrationDialogPromise;
let prefsTab = gBrowser.getTabForBrowser(prefsBrowser);
let dialog = prefsBrowser.contentDocument.querySelector(
"#migrationWizardDialog"
);
let dialogClosed = BrowserTestUtils.waitForEvent(dialog, "close");
await BrowserTestUtils.synthesizeKey("VK_ESCAPE", {}, prefsBrowser);
await dialogClosed;
Assert.ok(!prefsTab.closing, "about:preferences tab is not closing.");
BrowserTestUtils.removeTab(prefsTab);
});
/**
* Tests that if browser.migrate.content-modal.about-welcome-behavior
* is "standalone", that opening the migration wizard from the NEWTAB
* entrypoint opens the migration wizard in a standalone top-level
* window.
*/
add_task(async function test_no_autoclose_from_welcome() {
await SpecialPowers.pushPrefEnv({
set: [
["browser.migrate.content-modal.about-welcome-behavior", "standalone"],
],
});
let windowOpened = BrowserTestUtils.domWindowOpened();
MigrationUtils.showMigrationWizard(window, {
entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.NEWTAB,
});
let dialogWin = await windowOpened;
Assert.ok(dialogWin, "Top-level dialog window opened for the migrator.");
await BrowserTestUtils.waitForEvent(dialogWin, "MigrationWizard:Ready");
let dialogClosed = BrowserTestUtils.domWindowClosed(dialogWin);
dialogWin.close();
await dialogClosed;
});