summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/test_isReady.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_isReady.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/test_isReady.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_isReady.js b/toolkit/mozapps/extensions/test/xpcshell/test_isReady.js
new file mode 100644
index 0000000000..e5e1649051
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_isReady.js
@@ -0,0 +1,71 @@
+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+
+add_task(async function () {
+ equal(AddonManager.isReady, false, "isReady should be false before startup");
+
+ let gotStartupEvent = false;
+ let gotShutdownEvent = false;
+ let listener = {
+ onStartup() {
+ gotStartupEvent = true;
+ },
+ onShutdown() {
+ gotShutdownEvent = true;
+ },
+ };
+ AddonManager.addManagerListener(listener);
+
+ info("Starting manager...");
+ await promiseStartupManager();
+ equal(AddonManager.isReady, true, "isReady should be true after startup");
+ equal(
+ gotStartupEvent,
+ true,
+ "Should have seen onStartup event after startup"
+ );
+ equal(
+ gotShutdownEvent,
+ false,
+ "Should not have seen onShutdown event before shutdown"
+ );
+
+ gotStartupEvent = false;
+ gotShutdownEvent = false;
+
+ info("Shutting down manager...");
+ await promiseShutdownManager();
+
+ equal(AddonManager.isReady, false, "isReady should be false after shutdown");
+ equal(
+ gotStartupEvent,
+ false,
+ "Should not have seen onStartup event after shutdown"
+ );
+ equal(
+ gotShutdownEvent,
+ true,
+ "Should have seen onShutdown event after shutdown"
+ );
+
+ AddonManager.addManagerListener(listener);
+ gotStartupEvent = false;
+ gotShutdownEvent = false;
+
+ info("Starting manager again...");
+ await promiseStartupManager();
+ equal(
+ AddonManager.isReady,
+ true,
+ "isReady should be true after repeat startup"
+ );
+ equal(
+ gotStartupEvent,
+ true,
+ "Should have seen onStartup event after repeat startup"
+ );
+ equal(
+ gotShutdownEvent,
+ false,
+ "Should not have seen onShutdown event before shutdown, following repeat startup"
+ );
+});