<html>
<head>
    <script src="cross-frame-access.js"></script>
    <script>
        receiver = function(e)
        {
            if (e.data == "deletingValuesComplete")
                setCheck();
        }
        addEventListener('message', receiver, false);

        window.onload = function()
        {
            window.existingProperty = "test value";
            window[1] = "test value";
            window.history.existingProperty = "test value";
            window.history[1] = "test value";
            window.location.existingProperty = "test value";
            window.location[1] = "test value";

            window.parent.postMessage("setValuesComplete", "*");
        }

        setCheck = function()
        {
            log("\n----- tests for deleting the properties of window, window.history, and window.location cross-domain -----\n");

            shouldBe("window.existingProperty", "'test value'");
            shouldBe("window[1]", "'test value'");
            shouldBe("window.history.existingProperty", "'test value'");
            shouldBe("window.history[1]", "'test value'");
            shouldBe("window.location.existingProperty", "'test value'");
            shouldBe("window.location[1]", "'test value'");

             window.parent.postMessage("checkValuesComplete", "*");
        }
    </script>
</head>
<body>
    <pre id="console"></pre>
</body>
</html>
