blob: d753930049600435e2df9b3608f734da07487cb0 [file] [log] [blame]
<html>
<head></head>
<body>
<p>Test bug 13141 : XMLHttpRequest should set readyState to 0 after abort() </p>
<p>Updated for bug 16989: Add send() flag checks in XmlHttpRequest </p>
<p>Should see "PASS" two times:</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"));
}
// Used to detect if a readystate event is dispatched
function catchReadystateEventAbort() {
log("FAILED (readystate event send)");
}
function testAbortDoNotDispatchEvent(num)
{
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (ex) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xhr.onreadystatechange = function () {
if (this.readyState == num) {
++finishedTests;
this.onreadystatechange = catchReadystateEventAbort;
this.abort();
// Following https://github.com/whatwg/xhr/issues/54, abort() should
// set readyState to UNSENT only when it (readyState) is DONE.
var pass;
if (num == XMLHttpRequest.DONE)
pass = this.readyState == XMLHttpRequest.UNSENT;
else
pass = this.readyState == num;
if (pass)
log("PASS");
else
log("FAILED");
}
if (finishedTests == abortToDo.length && window.testRunner)
testRunner.notifyDone();
}
xhr.open("GET", "resources/1251.html", true);
// We want to be able to test in the OPENED state with the send() flag to false
// so do not call send in that case
if (num != 1)
xhr.send(null);
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var finishedTests = 0;
var abortToDo = ['1', '4'];
for (i = 0; i < abortToDo.length; i++)
testAbortDoNotDispatchEvent(abortToDo[i]);
</script>
</body>
</html>