diff options
Diffstat (limited to 'testing/web-platform/tests/workers/postMessage_clone_port.htm')
-rw-r--r-- | testing/web-platform/tests/workers/postMessage_clone_port.htm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/testing/web-platform/tests/workers/postMessage_clone_port.htm b/testing/web-platform/tests/workers/postMessage_clone_port.htm new file mode 100644 index 000000000..b1d7b84e3 --- /dev/null +++ b/testing/web-platform/tests/workers/postMessage_clone_port.htm @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<title> postMessage(): clone a port </title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id=log></div> +<script> +async_test(function(t) { + var channelA = new MessageChannel(); + var channelB = new MessageChannel(); + var originalPort = channelB.port2; + channelA.port2.onmessage = t.step_func(function(e) { + assert_equals(e.data, "ports"); + var clonedPort = e.ports[0]; + assert_not_equals(clonedPort, originalPort, "new cloned port object should not equal to the original port!"); + clonedPort.onmessage = t.step_func_done(function(e) { + assert_equals(e.data, "ping", "Data sent through remote port is received by the new cloned port"); + }); + }); + channelA.port1.postMessage("ports", [channelB.port2]); + channelB.port1.postMessage("ping"); +}); +</script> |