| <html> |
| <body> |
| <p>Test that a simple cross-origin request to a server that responds (but does not permit cross-origin requests) is indistinguishable from one that does not exist. Should say PASS:</p> |
| <pre id='console'></pre> |
| <script type="text/javascript"> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function log(message) |
| { |
| document.getElementById('console').appendChild(document.createTextNode(message + "\n")); |
| } |
| |
| var xhr; |
| var logExisting; |
| var logMissing; |
| |
| function doneExisting() |
| { |
| if (xhr.responseText.length) |
| alert("FAIL: Response is not empty, " + xhr.responseText); |
| |
| logExisting = document.getElementById('console').innerHTML; |
| document.getElementById('console').innerHTML = ""; |
| |
| xhr = new XMLHttpRequest; |
| xhr.onreadystatechange = function() { log("onreadystatechange " + xhr.readyState) } |
| xhr.onload = function() { log("onload") } |
| xhr.onloadstart = function() { log("onloadstart") } |
| xhr.onprogress = function() { log("onprogress") } |
| xhr.onerror = function() { log("onerror"); setTimeout(doneMissing, 100); } |
| xhr.upload.onabort = function() { log("upload.onabort") } |
| xhr.upload.onerror = function() { log("upload.onerror") } |
| xhr.upload.onload = function() { log("upload.onload") } |
| xhr.upload.onloadstart = function() { log("upload.onloadstart") } |
| xhr.upload.onprogress = function() { log("upload.onprogress") } |
| xhr.open("POST", "http://localhost:8/", true); // A port that will likely refuse the connection. |
| xhr.setRequestHeader("Content-Type", "text/plain"); |
| xhr.send("Text"); |
| } |
| |
| function doneMissing() |
| { |
| if (xhr.responseText.length) |
| alert("FAIL: Response is not empty, " + xhr.responseText); |
| |
| logMissing = document.getElementById('console').innerHTML; |
| document.getElementById('console').innerHTML = ""; |
| |
| if (logMissing == logExisting) |
| log("PASS"); |
| else { |
| log("FAIL. Responding server:"); |
| document.getElementById('console').innerHTML += logExisting; |
| log("Non-existent server:"); |
| document.getElementById('console').innerHTML += logMissing; |
| } |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| xhr = new XMLHttpRequest; |
| xhr.onreadystatechange = function() { log("onreadystatechange " + xhr.readyState) } |
| xhr.onload = function() { log("onload") } |
| xhr.onloadstart = function() { log("onloadstart") } |
| xhr.onprogress = function() { log("onprogress") } |
| xhr.onerror = function() { log("onerror"); setTimeout(doneExisting, 100); } |
| xhr.upload.onabort = function() { log("upload.onabort") } |
| xhr.upload.onerror = function() { log("upload.onerror") } |
| xhr.upload.onload = function() { log("upload.onload") } |
| xhr.upload.onloadstart = function() { log("upload.onloadstart") } |
| xhr.upload.onprogress = function() { log("upload.onprogress") } |
| xhr.open("POST", "http://localhost:8000/xmlhttprequest/resources/reply.xml", true); |
| xhr.setRequestHeader("Content-Type", "text/plain"); |
| xhr.send("Text"); |
| |
| </script> |
| </body> |
| </html> |