<!DOCTYPE html>
<html>
<head>
<title> Cross-origin postMessage with targetOrigin == "/" </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>

<div style="display:none">
    <iframe width="70%" onload="PostMessageTest()" src="{{location[scheme]}}://{{domains[www1]}}:{{location[port]}}/webmessaging/support/ChildWindowPostMessage.htm"></iframe>
</div>

<script>


    var description = "Test Description: " +
                      "If the targetOrigin argument is a single literal U+002F SOLIDUS character (/), and " +
                      "the Document of the Window object on which the method was invoked does not have the " +
                      "same origin as the entry script's document, then abort these steps silently.";

    var t = async_test(description);

    var DATA = "NoExceptionRaised";
    var TARGET = document.querySelector("iframe");

    function PostMessageTest()
    {
        try
        {
            TARGET.contentWindow.postMessage("/", "/");
            TARGET.contentWindow.postMessage(DATA, "*");
        }
        catch(ex)
        {
            TARGET.contentWindow.postMessage("ExceptionRaised", "*");
        }
    }

    window.onmessage = t.step_func(function(e)
    {
        assert_equals(e.data, DATA, "e.data");
        t.done();
    });
</script>
</body>
</html>
