ff7653c3f77bad47744c8627d75003d0ce578f56
[WebKit-https.git] / LayoutTests / http / tests / xmlhttprequest / redirect-cross-origin-sync-double.html
1 <html>
2 <body>
3 <p>Test that a cross-origin chain of redirects to a server that responds is indistinguishable from one that does not. Should say PASS:</p>
4 <pre id='console'></pre>
5 <script type="text/javascript">
6     if (window.testRunner)
7         testRunner.dumpAsText();
8
9     function log(message)
10     {
11         document.getElementById('console').appendChild(document.createTextNode(message + "\n"));
12     }
13
14     var xhr;
15     var logExisting;
16     var logMissing;
17
18     xhr = new XMLHttpRequest;
19     xhr.onreadystatechange = function() { log("onreadystatechange " + xhr.readyState) }
20     xhr.onload = function() { log("onload") }
21     xhr.onloadstart = function() { log("onloadstart") }
22     xhr.onprogress = function() { log("onprogress") }
23     xhr.onerror = function() { log("onerror") }
24     try {
25         xhr.open("GET", "/resources/redirect.php?url=http://localhost:8000/resources/redirect.php?url=/xmlhttprequest/resources/reply.xml", false);
26         xhr.send();
27     } catch (ex) {
28         log(ex);
29     }
30
31     if (xhr.responseText.length)
32         alert("FAIL: Response is not empty, " + xhr.responseText);
33
34     logExisting = document.getElementById('console').innerHTML;
35     document.getElementById('console').innerHTML = "";
36
37     xhr = new XMLHttpRequest;
38     xhr.onreadystatechange = function() { log("onreadystatechange " + xhr.readyState) }
39     xhr.onload = function() { log("onload") }
40     xhr.onloadstart = function() { log("onloadstart") }
41     xhr.onprogress = function() { log("onprogress") }
42     xhr.onerror = function() { log("onerror"); }
43     try {
44         xhr.open("GET", "/resources/redirect.php?url=http://localhost:7/", false); // A port that will likely refuse the connection.
45         xhr.send();
46     } catch (ex) {
47         log(ex);
48     }
49
50     if (xhr.responseText.length)
51         alert("FAIL: Response is not empty, " + xhr.responseText);
52
53     logMissing = document.getElementById('console').innerHTML;
54     document.getElementById('console').innerHTML = "";
55     
56     if (logMissing == logExisting)
57         log("PASS");
58     else {
59         log("FAIL. Responding server:");
60         document.getElementById('console').innerHTML += logExisting;
61         log("Non-existent server:");
62         document.getElementById('console').innerHTML += logMissing;
63     }
64 </script>
65 </body>
66 </html>