diff options
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_startup_enable.js | 47 |
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" + ); +}); |