summaryrefslogtreecommitdiffstats
path: root/dom/messagechannel/tests/unit/test_messageChannel.js
blob: d672920f71290d00478017b220e6dd0343993e49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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]);
});