<html>
<head>
    <script src="resources/cross-frame-access.js"></script>
</head>
<body>
<iframe src="http://localhost:8000/security/resources/cross-frame-iframe-for-get-test.html" style=""></iframe>
<pre id="console"></pre>
<script>

window.targetWindow = frames[0];

window.onload = function()
{
    if (window.testRunner)
        testRunner.dumpAsText();

    log("\n----- tests for getting properties by name -----\n");

    // frame by name
    shouldBeTrue("canGet('targetWindow.testiframe')");

    // element by name
    shouldBeFalse("canGet('targetWindow.testimage')");

    // Work around DRT bug that causes subsequent tests to fail.
    window.stop();
}
</script>
</body>
</html>
