<!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>
