<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
    <head>
    <script>
    function test(frame)
    {
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.dumpChildFramesAsText();
            testRunner.waitUntilDone();
        }
        var client = frame.contentWindow.client();
        client.onreadystatechange = function()
        {
            if (client.readyState == 4)
                frame.contentWindow.test(client);    
        }
        client.open("GET", "test-uri-resolution.txt");
        client.send("");
    }
    </script>
    </head>
    <body>
        <p><iframe src="resources/uri-resolution-opera-open-008-iframe.html" onload="test(this)"></iframe></p>
    </body>
</html>
