summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js b/toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js
new file mode 100644
index 0000000000..9b36c48ebb
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js
@@ -0,0 +1,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: {
+ applications: {
+ 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"
+ );
+});