summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js')
-rw-r--r--toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js b/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js
new file mode 100644
index 0000000000..f423ccbe97
--- /dev/null
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_shutdown_cleanup.js
@@ -0,0 +1,43 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+
+"use strict";
+
+const {
+ ExtensionParent: { GlobalManager },
+} = ChromeUtils.importESModule(
+ "resource://gre/modules/ExtensionParent.sys.mjs"
+);
+
+add_task(async function test_global_manager_shutdown_cleanup() {
+ equal(
+ GlobalManager.initialized,
+ false,
+ "GlobalManager start as not initialized"
+ );
+
+ function background() {
+ browser.test.notifyPass("background page loaded");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ background,
+ });
+
+ await extension.startup();
+ await extension.awaitFinish("background page loaded");
+
+ equal(
+ GlobalManager.initialized,
+ true,
+ "GlobalManager has been initialized once an extension is started"
+ );
+
+ await extension.unload();
+
+ equal(
+ GlobalManager.initialized,
+ false,
+ "GlobalManager has been uninitialized once all the webextensions have been stopped"
+ );
+});