diff options
Diffstat (limited to 'dom/broadcastchannel/tests/test_broadcastchannel_basic.html')
-rw-r--r-- | dom/broadcastchannel/tests/test_broadcastchannel_basic.html | 68 |
1 files changed, 68 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 000000000..45fa3c4a9 --- /dev/null +++ b/dom/broadcastchannel/tests/test_broadcastchannel_basic.html @@ -0,0 +1,68 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for BroadcastChannel</title> + <script type="application/javascript" 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, false); + 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> + |