<html>
<head>
    <script>        
        if (window.layoutTestController)
            layoutTestController.dumpAsText();

        var localImageLocation = "file:///tmp/LayoutTests/http/tests/security/resources/compass.jpg";
        if (window.layoutTestController)
            localImageLocation = layoutTestController.pathToLocalResource(localImageLocation);

        var localImageElement = document.createElement("img");
        localImageElement.setAttribute("id", "myImg");
        localImageElement.setAttribute("src", localImageLocation);
        localImageElement.setAttribute("onError", "imgError()");
        localImageElement.setAttribute("onLoad", "imgLoad()");

        function imgError() {
            var result = document.getElementById("result");
            result.innerHTML = "Test Failed: Image Load Error.";
        }

        function imgLoad() {
            var result = document.getElementById("result");
            result.innerHTML = "Test Passed. Local image loaded.";
        }
    </script>
</head>
<body onload="document.body.appendChild(localImageElement)">
    <div id="div0">
        This test is to see if a remote file can include a local image.
        <br/>
        Currently this test cannot be run manually on Windows because we do not have
        a function like pathToLocalResource() outside of DRT.
        <br/>
    </div>
    </br>
    <div id="result">
        Test has not run.
    </div>
    </br>
</body>
</html>
