summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/test/test-addon-extras.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /addon-sdk/source/test/test-addon-extras.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'addon-sdk/source/test/test-addon-extras.js')
-rw-r--r--addon-sdk/source/test/test-addon-extras.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/addon-sdk/source/test/test-addon-extras.js b/addon-sdk/source/test/test-addon-extras.js
new file mode 100644
index 000000000..1910db05e
--- /dev/null
+++ b/addon-sdk/source/test/test-addon-extras.js
@@ -0,0 +1,70 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const { Ci, Cu, Cc, components } = require("chrome");
+const self = require("sdk/self");
+const { before, after } = require("sdk/test/utils");
+const fixtures = require("./fixtures");
+const { Loader } = require("sdk/test/loader");
+const { merge } = require("sdk/util/object");
+
+exports["test changing result from addon extras in panel"] = function(assert, done) {
+ let loader = Loader(module, null, null, {
+ modules: {
+ "sdk/self": merge({}, self, {
+ data: merge({}, self.data, {url: fixtures.url})
+ })
+ }
+ });
+
+ const { Panel } = loader.require("sdk/panel");
+ const { events } = loader.require("sdk/content/sandbox/events");
+ const { on } = loader.require("sdk/event/core");
+ const { isAddonContent } = loader.require("sdk/content/utils");
+
+ var result = 1;
+ var extrasVal = {
+ test: function() {
+ return result;
+ }
+ };
+
+ on(events, "content-script-before-inserted", ({ window, worker }) => {
+ assert.pass("content-script-before-inserted");
+
+ if (isAddonContent({ contentURL: window.location.href })) {
+ let extraStuff = Cu.cloneInto(extrasVal, window, {
+ cloneFunctions: true
+ });
+ getUnsafeWindow(window).extras = extraStuff;
+
+ assert.pass("content-script-before-inserted done!");
+ }
+ });
+
+ let panel = Panel({
+ contentURL: "./test-addon-extras.html"
+ });
+
+ panel.port.once("result1", (result) => {
+ assert.equal(result, 1, "result is a number");
+ result = true;
+ panel.port.emit("get-result");
+ });
+
+ panel.port.once("result2", (result) => {
+ assert.equal(result, true, "result is a boolean");
+ loader.unload();
+ done();
+ });
+
+ panel.port.emit("get-result");
+}
+
+function getUnsafeWindow (win) {
+ return win.wrappedJSObject || win;
+}
+
+require("sdk/test").run(exports);