diff options
Diffstat (limited to 'dom/tests/mochitest/whatwg/test_MessageEvent.html')
-rw-r--r-- | dom/tests/mochitest/whatwg/test_MessageEvent.html | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/dom/tests/mochitest/whatwg/test_MessageEvent.html b/dom/tests/mochitest/whatwg/test_MessageEvent.html new file mode 100644 index 000000000..ce30cd406 --- /dev/null +++ b/dom/tests/mochitest/whatwg/test_MessageEvent.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=postMessage +--> +<head> + <title>MessageEvent tests</title> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="browserFu.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=postMessage">Mozilla Bug 387706</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> + +<button id="target">target</button> + +<pre id="test"> +<script class="testbody" type="application/javascript"> +/** Test for Bug 387706 **/ + +SimpleTest.waitForExplicitFinish(); + +var data = "foobar"; +var origin = "http://cool.example.com"; +var bubbles = true, cancelable = true; +var lastEventId = "lastEventId"; + +var target; + +var count = 0; + +function sendMsg() +{ + try + { + var evt = new MessageEvent('message', { + bubbles: bubbles, cancelable: cancelable, data: data, + origin: origin, lastEventId: lastEventId, source: window}); + ok(evt instanceof MessageEvent, "I ordered a MessageEvent!"); + + is(evt.data, data, "unexpected data"); + is(evt.origin, origin, "unexpected origin"); + is(evt.lastEventId, lastEventId, "unexpected lastEventId"); + + is(evt.cancelable, cancelable, "wrong cancelable property"); + is(evt.bubbles, bubbles, "wrong bubbling property"); + is(evt.source, window, "wrong source"); + + return target.dispatchEvent(evt); + } + catch (e) + { + ok(false, "exception thrown: " + e); + return false; + } +} + +function recvMsg(evt) +{ + is(evt.data, data, "unexpected data"); + is(evt.origin, origin, "unexpected origin"); + is(evt.lastEventId, lastEventId, "unexpected lastEventId"); + + is(evt.cancelable, cancelable, "wrong cancelable property"); + is(evt.bubbles, bubbles, "wrong bubbling property"); + is(evt.source, window, "wrong source"); + + is(evt.target, target, "wrong target"); + + if (target == evt.currentTarget) + { + is(Event.AT_TARGET, evt.eventPhase, "this listener was on the target"); + } + else + { + is(evt.currentTarget, document, "should have gotten this at the window"); + is(Event.BUBBLING_PHASE, evt.eventPhase, "wrong phase"); + } + + count++; +} + +function setup() +{ + target = $("target"); + target.addEventListener("message", recvMsg, false); + document.addEventListener("message", recvMsg, false); + var res = sendMsg(); + ok(res === true, "nothing canceled this"); + is(count, 2, "listener not called twice"); + SimpleTest.finish(); +} + +addLoadEvent(setup); + +</script> +</pre> +</body> +</html> |