blob: 0e2e2fcd14199224d93bb360320484de732353f9 [file] [log] [blame]
<!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>