<html>
<head>
    <script>
        var secretness = 0;

        function test() {
            if (window.layoutTestController)
                layoutTestController.dumpAsText();

            var localScriptLocation = "file:///tmp/LayoutTests/http/tests/security/resources/localScript.js";
            if (window.layoutTestController)
                localScriptLocation = layoutTestController.pathToLocalResource(localScriptLocation);

            var localScriptElement = document.createElement("script");
            localScriptElement.setAttribute("src", localScriptLocation);
            localScriptElement.addEventListener("load", function() {
                var tag = document.getElementById("result");
                if (secretness == 13)
                    tag.innerHTML = "Test Failed. Local script loaded and run.";
                else
                    tag.innerHTML = "Test Failed. Local script loaded, but not successfully run.";
            });

            localScriptElement.addEventListener("error", function() {
                var tag = document.getElementById("result");
                tag.innerHTML = "Test Passed: Local script not loaded.";
            });

            document.body.appendChild(localScriptElement)
        }
    </script>
</head>
<body onload="test()">
    <div id="div0">
        This test is to see if a remote file can run a local script.
        <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 not run correctly.
    </div>
</body>
</html>
