blob: ff4b711af0ab4c518597372f7fe4b1d647c01ba9 [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();
if (this.readyState == 0)
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>