<body>
Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=8770">bug 8770</a>: 
XMLHttpRequest should strip CR/LF characters from the URL (not just XMLHttpRequest, really, and TAB is also stripped).

<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

if (document.URL.indexOf('?') == -1) {

        window.location.href = "url-strip-cr-lf-tab\x09\x0a\x0d.html?a=b\x09\x0a\x0d#\x09\x0a\x0dc";

} else {

        if (document.URL.substring(document.URL.indexOf('?')+1, document.URL.length) == "a=b#c")
                document.write("<p>Success</p>");
        else
                document.write("<p>Failure</p>");
        
        if (window.testRunner)
                testRunner.notifyDone();
}
</script>
</body>
