Index: third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port.htm |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port.htm b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port.htm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0e2e2fcd14199224d93bb360320484de732353f9 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/Channel_postMessage_clone_port.htm |
@@ -0,0 +1,42 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<title> postMessage(): clone a port </title> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+</head> |
+<body> |
+<div id=log></div> |
+<script> |
+ var OriginalPort = null; |
+ var ClonedPort = null; |
+ var description = "Test Description: When the user agent is to clone a port original port, with " |
+ + "the clone being owned by owner, it must return a new MessagePort object"; |
+ |
+ var t = async_test("Test Description: " + description); |
+ |
+ var ChannelA = new MessageChannel(); |
+ var ChannelB = new MessageChannel(); |
+ OriginalPort = ChannelB.port2; |
+ |
+ ChannelA.port2.onmessage = t.step_func(function(evt) |
+ { |
+ if(evt.data == "ports") |
+ { |
+ ClonedPort = evt.ports[0]; |
+ |
+ assert_not_equals(ClonedPort, OriginalPort, "new cloned port object should not equal to the original port!"); |
+ |
+ ClonedPort.onmessage = function(e) |
+ { |
+ test(function(){ assert_equals(e.data, "ping"); }, "Data sent through remote port is received by the new cloned port"); |
+ t.done(); |
+ } |
+ } |
+ }); |
+ |
+ ChannelA.port1.postMessage("ports", [OriginalPort]); |
+ ChannelB.port1.postMessage("ping"); |
+</script> |
+</body> |
+</html> |