summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js
blob: a3259b599f0fabee9845fe62ed215147d4ee1168 (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
createAppInfo("xpcshell@tessts.mozilla.org", "XPCShell", "1", "1");
BootstrapMonitor.init();

// Test that enabling an extension during startup generates the
// proper reason for startup().
add_task(async function test_startup_enable() {
  const ID = "compat@tests.mozilla.org";

  await promiseStartupManager();

  await promiseInstallWebExtension({
    manifest: {
      browser_specific_settings: {
        gecko: {
          id: ID,
          strict_min_version: "1",
          strict_max_version: "1",
        },
      },
    },
  });

  BootstrapMonitor.checkInstalled(ID);
  BootstrapMonitor.checkStarted(ID);
  let { reason } = BootstrapMonitor.started.get(ID);
  equal(
    reason,
    BOOTSTRAP_REASONS.ADDON_INSTALL,
    "Startup reason is ADDON_INSTALL at install"
  );

  gAppInfo.platformVersion = "2";
  await promiseRestartManager("2");
  BootstrapMonitor.checkInstalled(ID);
  BootstrapMonitor.checkNotStarted(ID);

  gAppInfo.platformVersion = "1";
  await promiseRestartManager("1");
  BootstrapMonitor.checkInstalled(ID);
  BootstrapMonitor.checkStarted(ID);
  ({ reason } = BootstrapMonitor.started.get(ID));
  equal(
    reason,
    BOOTSTRAP_REASONS.ADDON_ENABLE,
    "Startup reason is ADDON_ENABLE when re-enabled at startup"
  );
});