summaryrefslogtreecommitdiffstats
path: root/browser/components/preferences/tests/browser_open_migration_wizard.js
blob: c2c18b35efa13b893f2efd979d5397c64ea455ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Tests the "Import Data" button in the "Import Browser Data" section of
 * the General pane of about:preferences launches the Migration Wizard.
 */
add_task(async function test_open_migration_wizard() {
  const BUTTON_ID = "data-migration";

  await BrowserTestUtils.withNewTab(
    { gBrowser, url: "about:preferences#general" },
    async function (browser) {
      let button = browser.contentDocument.getElementById(BUTTON_ID);

      // First, we'll test the legacy Migration Wizard.
      await SpecialPowers.pushPrefEnv({
        set: [["browser.migrate.content-modal.enabled", false]],
      });

      let migrationWizardWindow = BrowserTestUtils.domWindowOpenedAndLoaded(
        null,
        win => {
          let type = win.document.documentElement.getAttribute("windowtype");
          if (type == "Browser:MigrationWizard") {
            Assert.ok(true, "Saw legacy Migration Wizard window open.");
            return true;
          }

          return false;
        }
      );

      button.click();
      let win = await migrationWizardWindow;
      await BrowserTestUtils.closeWindow(win);

      // Next, we'll test the new Migration Wizard.
      await SpecialPowers.pushPrefEnv({
        set: [["browser.migrate.content-modal.enabled", true]],
      });

      let wizardReady = BrowserTestUtils.waitForEvent(
        browser.contentWindow,
        "MigrationWizard:Ready"
      );
      button.click();
      await wizardReady;
      Assert.ok(true, "Saw the new Migration Wizard dialog open.");
    }
  );
});