summaryrefslogtreecommitdiffstats
path: root/js/xpconnect/tests/unit/test_ComponentEnvironment.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/xpconnect/tests/unit/test_ComponentEnvironment.js')
-rw-r--r--js/xpconnect/tests/unit/test_ComponentEnvironment.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/js/xpconnect/tests/unit/test_ComponentEnvironment.js b/js/xpconnect/tests/unit/test_ComponentEnvironment.js
new file mode 100644
index 0000000000..1d2c474ffd
--- /dev/null
+++ b/js/xpconnect/tests/unit/test_ComponentEnvironment.js
@@ -0,0 +1,20 @@
+let tgt = {};
+
+Services.prefs.setBoolPref("security.allow_eval_with_system_principal", true);
+registerCleanupFunction(() => {
+ Services.prefs.clearUserPref("security.allow_eval_with_system_principal");
+});
+
+const a = ChromeUtils.import("resource://test/environment_script.js", tgt);
+const b = ChromeUtils.import("resource://test/environment_checkscript.jsm", tgt);
+
+const isShared = Cu.getGlobalForObject(a) === Cu.getGlobalForObject(b);
+
+
+// Components should not share namespace
+if (isShared) {
+ todo_check_eq(tgt.bound, "");
+ Assert.equal(tgt.bound, "ei,fo,", "Modules should have no shared non-eval bindings");
+} else {
+ Assert.equal(tgt.bound, "", "Modules should have no shared bindings");
+}