summaryrefslogtreecommitdiffstats
path: root/dom/broadcastchannel/tests/test_broadcastchannel_basic.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/broadcastchannel/tests/test_broadcastchannel_basic.html')
-rw-r--r--dom/broadcastchannel/tests/test_broadcastchannel_basic.html67
1 files changed, 67 insertions, 0 deletions
diff --git a/dom/broadcastchannel/tests/test_broadcastchannel_basic.html b/dom/broadcastchannel/tests/test_broadcastchannel_basic.html
new file mode 100644
index 0000000000..09196b0c52
--- /dev/null
+++ b/dom/broadcastchannel/tests/test_broadcastchannel_basic.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Test for BroadcastChannel</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+
+<div id="content"></div>
+
+<script type="application/javascript">
+
+function runTest() {
+ addEventListener("message", receiveMessage, false);
+ function receiveMessage(evt) {
+ if (evt.data.status == "OK") {
+ ok(true, evt.data.message);
+ } else if (evt.data.status == "KO") {
+ ok(false, evt.data.message);
+ } else {
+ ok(false, "Unknown message");
+ }
+ }
+
+ ok("BroadcastChannel" in window, "BroadcastChannel exists");
+
+ var bc = new BroadcastChannel("foobar");
+ ok(bc, "BroadcastChannel can be created");
+ is(bc.name, "foobar", "BroadcastChannel.name is foobar");
+
+ ok("postMessage" in bc, "BroadcastChannel has postMessage() method");
+
+ bc.onmessage = function(evt) {
+ ok(evt instanceof MessageEvent, "This is a MessageEvent");
+ is(evt.target, bc, "MessageEvent.target is bc");
+ is(evt.target.name, "foobar", "MessageEvent.target.name is foobar");
+ is(evt.target.name, bc.name, "MessageEvent.target.name == bc.name");
+ ok(evt.origin.indexOf("http://mochi.test:8888") == 0, "MessageEvent.origin is correct");
+ is(evt.data, "Hello world from the iframe!", "The message from the iframe has been received!");
+ SimpleTest.finish();
+ };
+
+ var div = document.getElementById("content");
+ ok(div, "Parent exists");
+
+ var ifr = document.createElement("iframe");
+ ifr.addEventListener("load", iframeLoaded);
+ ifr.setAttribute("src", "iframe_broadcastchannel.html");
+ div.appendChild(ifr);
+
+ function iframeLoaded() {
+ bc.postMessage("Hello world from the window!");
+ }
+
+ // A leak test
+ var dummyBc = new BroadcastChannel("dont_leak_this");
+ dummyBc.foo = "bar";
+ // don't add message listener!
+}
+
+SimpleTest.waitForExplicitFinish();
+runTest();
+
+</script>
+</body>
+</html>