summaryrefslogtreecommitdiff
path: root/toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js')
-rw-r--r--toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js b/toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js
new file mode 100644
index 0000000000..657601e45e
--- /dev/null
+++ b/toolkit/mozapps/webextensions/test/xpcshell/test_pass_symbol.js
@@ -0,0 +1,43 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+const PASS_PREF = "symboltest.instanceid.pass";
+const FAIL_BOGUS_PREF = "symboltest.instanceid.fail_bogus";
+const FAIL_ID_PREF = "symboltest.instanceid.fail_bogus";
+const ADDON_ID = "test_symbol@tests.mozilla.org";
+
+createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "42");
+startupManager();
+
+BootstrapMonitor.init();
+
+// symbol is passed when add-on is installed
+add_task(function*() {
+ for (let pref of [PASS_PREF, FAIL_BOGUS_PREF, FAIL_ID_PREF])
+ Services.prefs.clearUserPref(pref);
+
+ yield promiseInstallAllFiles([do_get_addon("test_symbol")], true);
+
+ let addon = yield promiseAddonByID(ADDON_ID);
+
+ do_check_neq(addon, null);
+ do_check_eq(addon.version, "1.0");
+ do_check_eq(addon.name, "Test Symbol");
+ do_check_true(addon.isCompatible);
+ do_check_false(addon.appDisabled);
+ do_check_true(addon.isActive);
+ do_check_eq(addon.type, "extension");
+
+ // most of the test is in bootstrap.js in the addon because BootstrapMonitor
+ // currently requires the objects in `data` to be serializable, and we
+ // need a real reference to the symbol to test this.
+ do_execute_soon(function() {
+ // give the startup time to run
+ do_check_true(Services.prefs.getBoolPref(PASS_PREF));
+ do_check_true(Services.prefs.getBoolPref(FAIL_BOGUS_PREF));
+ do_check_true(Services.prefs.getBoolPref(FAIL_ID_PREF));
+ });
+
+ yield promiseRestartManager();
+});