<html>
    <head>
    <script type="text/ecmascript">
        function changeSrc()
        {
            if (window.testRunner)
                testRunner.dumpAsText();

            var image = document.getElementById('image');

            if (image.height || image.width) {
                console.innerHTML = "FAILED";
                return;
            }

            // We reset the image src to the same url to check that it was 
            image.src = "file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg";
        }
    </script>
    </head>
    <body onload="changeSrc()">
        <p> Test case for <a href="https://bugs.webkit.org/show_bug.cgi?id=17897"> bug 17897 </a>:  Not Rendering Images Imported from XHTML Document </p>
        <p> This test checks that setting an image url should lead to load even if the image was in error and the url is not changed. </p>
        <p> For this test to pass, you should see 2 messages in the console </p>
        <p id='console'> </p>
        <!-- This image should be blocked (see security/local-image-from-remote.html) -->
        <img id='image' src="file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg"/>
    </body>
</html>
