<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <title>connect-src-xmlhttprequest-redirect-to-blocked</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["PASS XMLHttpRequest.send() did not follow the disallowed redirect.","TEST COMPLETE"]'></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <!-- enforcing policy:
connect-src 'self'; script-src 'self' 'unsafe-inline';
-->
    <script id="inject_here"></script>
</head>

<body>
    <script>
        var xhr = new XMLHttpRequest;
        try {
            xhr.open("GET", "/common/redirect.py?location=http://www1.{{host}}:{{ports[http][0]}}/content-security-policy/support/fail.asis", true);
        } catch (e) {
            log("FAIL " + "XMLHttpRequest.open() should not throw an exception.");
        }
        xhr.onload = function() {
            //cons/**/ole.log(xhr.responseText);
            if(xhr.responseText == "FAIL") {
                log("FAIL " + "XMLHttpRequest.send() should fail to follow the disallowed redirect.");
            } else {
                log("PASS " + "XMLHttpRequest.send() did not follow the disallowed redirect.");
            }
            log("TEST COMPLETE");
        };
        xhr.onerror = function() {
            log("PASS " + "XMLHttpRequest.send() did not follow the disallowed redirect.");
            log("TEST COMPLETE");
        };
        xhr.send();

    </script>
    <div id="log"></div>
    <script async defer src="../support/checkReport.sub.js?reportExists=true&amp;reportField=violated-directive&amp;reportValue=connect-src%20&apos;self&apos;/security/contentSecurityPolicy/resources/redir.php"></script>
</body>

</html>
