diff options
Diffstat (limited to 'addon-sdk/source/test/addons/page-worker')
4 files changed, 78 insertions, 0 deletions
diff --git a/addon-sdk/source/test/addons/page-worker/data/page.html b/addon-sdk/source/test/addons/page-worker/data/page.html new file mode 100644 index 000000000..3b59d3963 --- /dev/null +++ b/addon-sdk/source/test/addons/page-worker/data/page.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> + +<html> +<head> +<script type="text/javascript" src="page.js"></script> +</head> +<body> +</body> +</html> diff --git a/addon-sdk/source/test/addons/page-worker/data/page.js b/addon-sdk/source/test/addons/page-worker/data/page.js new file mode 100644 index 000000000..04d062497 --- /dev/null +++ b/addon-sdk/source/test/addons/page-worker/data/page.js @@ -0,0 +1,13 @@ +window.addEventListener("load", function() { + addon.port.emit("load", "ok"); +}); + +addon.postMessage("first message"); +addon.on("message", function(msg) { + if (msg == "ping") + addon.postMessage("pong"); +}); + +addon.port.on("ping", function() { + addon.port.emit("pong"); +}); diff --git a/addon-sdk/source/test/addons/page-worker/main.js b/addon-sdk/source/test/addons/page-worker/main.js new file mode 100644 index 000000000..46b203d2e --- /dev/null +++ b/addon-sdk/source/test/addons/page-worker/main.js @@ -0,0 +1,53 @@ +/* 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 { Page } = require("sdk/page-worker"); +const { data } = require("sdk/self"); + +exports["test page load"] = function(assert, done) { + let page = Page({ + contentURL: data.url("page.html") + }); + + page.port.on("load", function(check) { + assert.equal(check, "ok", "saw the load message"); + page.destroy(); + done(); + }); +}; + +exports["test postMessage"] = function(assert, done) { + let page = Page({ + contentURL: data.url("page.html"), + onMessage: function(msg) { + if (msg == "pong") { + assert.ok(true, "saw the second message"); + page.destroy(); + done(); + return; + } + + assert.equal(msg, "first message", "saw the first message"); + this.postMessage("ping"); + } + }); +}; + +exports["test port"] = function(assert, done) { + let page = Page({ + contentURL: data.url("page.html") + }); + + page.port.on("pong", function() { + assert.ok(true, "saw the response"); + page.destroy(); + done(); + }); + + page.port.emit("ping"); +}; + +require("sdk/test/runner").runTestsFromModule(module); diff --git a/addon-sdk/source/test/addons/page-worker/package.json b/addon-sdk/source/test/addons/page-worker/package.json new file mode 100644 index 000000000..d7856fac5 --- /dev/null +++ b/addon-sdk/source/test/addons/page-worker/package.json @@ -0,0 +1,3 @@ +{ + "id": "test-page-worker" +} |