| <html><head></head><body> |
| |
| <p>Test bug 17481: Several consecutive calls to XMLHttpRequest::open should dispatch only one readyState event</p> |
| <p>You should see "PASS" once:</p> |
| <div id="ans"></div> |
| |
| <script type="text/javascript"> |
| function log(message) |
| { |
| document.getElementById("ans").appendChild(document.createTextNode(message)); |
| document.getElementById("ans").appendChild(document.createElement("br")); |
| } |
| |
| Array.prototype.isEqual = function(expected) |
| { |
| if (this.length != expected.length) |
| return false; |
| for (i = 0; i < this.length; i++) |
| if (this[i] != expected[i]) |
| return false; |
| return true; |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var xhr; |
| |
| if (window.XMLHttpRequest) { |
| xhr = new XMLHttpRequest(); |
| } else { |
| try { |
| xhr = new ActiveXObject("Msxml2.XMLHTTP"); |
| } catch (ex) { |
| xhr = new ActiveXObject("Microsoft.XMLHTTP"); |
| } |
| } |
| |
| var results = [], |
| expected = ['before first open', 1, 'before second open', 'before third open']; |
| |
| xhr.onreadystatechange = function () { |
| results.push(this.readyState); |
| } |
| |
| results.push('before first open'); |
| xhr.open("GET", "resources/1251.html", true); |
| results.push('before second open'); |
| xhr.open("GET", "resources/1251.html", true); |
| results.push('before third open'); |
| xhr.open("GET", "resources/print-headers.cgi", true); |
| |
| log(results.isEqual(expected) ? "PASS" : "FAILED results : " + results + " expected : " + expected); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| |
| </script> |
| </body></html> |