tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_broadcastchannel_basic.html (1953B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for BroadcastChannel</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
      7 </head>
      8 <body>
      9 
     10 <div id="content"></div>
     11 
     12 <script type="application/javascript">
     13 
     14 function runTest() {
     15  addEventListener("message", receiveMessage, false);
     16  function receiveMessage(evt) {
     17    if (evt.data.status == "OK") {
     18      ok(true, evt.data.message);
     19    } else if (evt.data.status == "KO") {
     20      ok(false, evt.data.message);
     21    } else {
     22      ok(false, "Unknown message");
     23    }
     24  }
     25 
     26  ok("BroadcastChannel" in window, "BroadcastChannel exists");
     27 
     28  var bc = new BroadcastChannel("foobar");
     29  ok(bc, "BroadcastChannel can be created");
     30  is(bc.name, "foobar", "BroadcastChannel.name is foobar");
     31 
     32  ok("postMessage" in bc, "BroadcastChannel has postMessage() method");
     33 
     34  bc.onmessage = function(evt) {
     35    ok(evt instanceof MessageEvent, "This is a MessageEvent");
     36    is(evt.target, bc, "MessageEvent.target is bc");
     37    is(evt.target.name, "foobar", "MessageEvent.target.name is foobar");
     38    is(evt.target.name, bc.name, "MessageEvent.target.name == bc.name");
     39    ok(evt.origin.indexOf("http://mochi.test:8888") == 0, "MessageEvent.origin is correct");
     40    is(evt.data, "Hello world from the iframe!", "The message from the iframe has been received!");
     41    SimpleTest.finish();
     42  };
     43 
     44  var div = document.getElementById("content");
     45  ok(div, "Parent exists");
     46 
     47  var ifr = document.createElement("iframe");
     48  ifr.addEventListener("load", iframeLoaded);
     49  ifr.setAttribute("src", "iframe_broadcastchannel.html");
     50  div.appendChild(ifr);
     51 
     52  function iframeLoaded() {
     53    bc.postMessage("Hello world from the window!");
     54  }
     55 
     56  // A leak test
     57  var dummyBc = new BroadcastChannel("dont_leak_this");
     58  dummyBc.foo = "bar";
     59  // don't add message listener!
     60 }
     61 
     62 SimpleTest.waitForExplicitFinish();
     63 runTest();
     64 
     65 </script>
     66 </body>
     67 </html>