<html>
<head>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.dumpChildFrames();
            testRunner.waitUntilDone();
        }

        window.onload = function ()
        {
            window.frames[1].postMessage('run test', '*');
        };
    </script>
</head>
<body>
    <p>This tests that the comparison of the host for security is done case insensitive.</p>
    <iframe name="frameA" src="http://localhost:8000/security/resources/cross-frame-iframe.html"></iframe>
    <iframe name="frameB" src="http://LOCALHOST:8000/security/resources/localhost-accesssor.html"></iframe>
</body>
</html>
