summaryrefslogtreecommitdiffstats
path: root/dom/messagechannel/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'dom/messagechannel/tests/unit')
-rw-r--r--dom/messagechannel/tests/unit/chromeWorker_messageChannel.js14
-rw-r--r--dom/messagechannel/tests/unit/test_messageChannel.js23
-rw-r--r--dom/messagechannel/tests/unit/xpcshell.ini7
3 files changed, 44 insertions, 0 deletions
diff --git a/dom/messagechannel/tests/unit/chromeWorker_messageChannel.js b/dom/messagechannel/tests/unit/chromeWorker_messageChannel.js
new file mode 100644
index 0000000000..3f557a4fb2
--- /dev/null
+++ b/dom/messagechannel/tests/unit/chromeWorker_messageChannel.js
@@ -0,0 +1,14 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+onmessage = function (pingEvt) {
+ if (pingEvt.data == "ping") {
+ let { port1, port2 } = new MessageChannel();
+ port2.onmessage = helloEvt => {
+ if (helloEvt.data == "hello") {
+ helloEvt.ports[0].postMessage("goodbye");
+ }
+ };
+ pingEvt.ports[0].postMessage("pong", [port1]);
+ }
+};
diff --git a/dom/messagechannel/tests/unit/test_messageChannel.js b/dom/messagechannel/tests/unit/test_messageChannel.js
new file mode 100644
index 0000000000..d672920f71
--- /dev/null
+++ b/dom/messagechannel/tests/unit/test_messageChannel.js
@@ -0,0 +1,23 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+add_test(function test_messageChannel() {
+ do_test_pending();
+
+ let chromeWorker = new ChromeWorker(
+ "resource://test/chromeWorker_messageChannel.js"
+ );
+ let { port1, port2 } = new MessageChannel();
+ port2.onmessage = pongEvt => {
+ Assert.equal(pongEvt.data, "pong");
+ let { port1: newPort1, port2: newPort2 } = new MessageChannel();
+ newPort2.onmessage = goodbyeEvt => {
+ Assert.equal(goodbyeEvt.data, "goodbye");
+
+ do_test_finished();
+ run_next_test();
+ };
+ pongEvt.ports[0].postMessage("hello", [newPort1]);
+ };
+ chromeWorker.postMessage("ping", [port1]);
+});
diff --git a/dom/messagechannel/tests/unit/xpcshell.ini b/dom/messagechannel/tests/unit/xpcshell.ini
new file mode 100644
index 0000000000..7164d1ea96
--- /dev/null
+++ b/dom/messagechannel/tests/unit/xpcshell.ini
@@ -0,0 +1,7 @@
+[DEFAULT]
+head =
+skip-if = toolkit == 'android'
+support-files =
+ chromeWorker_messageChannel.js
+
+[test_messageChannel.js]