mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 703380 - Test fix & added a new test; r=smaug
--HG-- extra : rebase_source : adddf8781b55c797ca15139cbc1e5a9c5032494a
This commit is contained in:
parent
4be8a5dacd
commit
ff8084293c
@ -528,6 +528,7 @@ _TEST_FILES2 = \
|
||||
file_bug692434.xml \
|
||||
test_bug693875.html \
|
||||
test_nodelist_holes.html \
|
||||
test_xhr_abort_after_load.html \
|
||||
$(NULL)
|
||||
|
||||
_CHROME_FILES = \
|
||||
|
@ -27,32 +27,29 @@ function testCancelInPhase4() {
|
||||
// First request - should be loaded from server
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener("readystatechange", function(e) {
|
||||
if (xhr.readyState >= 4) {
|
||||
xhr.addEventListener("abort", function() {
|
||||
setTimeout(function() {
|
||||
// This request was cancelled, so the responseText should be empty string
|
||||
is(xhr.responseText, "", "Expected empty response to cancelled request");
|
||||
if (xhr.readyState < xhr.DONE) return;
|
||||
is(xhr.readyState, xhr.DONE, "wrong readyState");
|
||||
xhr.abort();
|
||||
SimpleTest.executeSoon(function() {
|
||||
// This request was cancelled, so the responseText should be empty string
|
||||
is(xhr.responseText, "", "Expected empty response to cancelled request");
|
||||
|
||||
// Second request - should be found in cache
|
||||
var xhr2 = new XMLHttpRequest();
|
||||
// Second request - should be found in cache
|
||||
var xhr2 = new XMLHttpRequest();
|
||||
|
||||
xhr2.addEventListener("load", function() {
|
||||
is(xhr2.responseText, "0", "Received fresh value for second request");
|
||||
SimpleTest.finish();
|
||||
}, false);
|
||||
|
||||
xhr2.open("GET", url);
|
||||
xhr2.setRequestHeader("X-Request", "1", false);
|
||||
|
||||
try { xhr2.send(); }
|
||||
catch(e) {
|
||||
is(xhr2.status, "200", "Exception!");
|
||||
}
|
||||
}, 0);
|
||||
xhr2.addEventListener("load", function() {
|
||||
is(xhr2.responseText, "0", "Received fresh value for second request");
|
||||
SimpleTest.finish();
|
||||
}, false);
|
||||
|
||||
xhr.abort();
|
||||
}
|
||||
xhr2.open("GET", url);
|
||||
xhr2.setRequestHeader("X-Request", "1", false);
|
||||
|
||||
try { xhr2.send(); }
|
||||
catch(e) {
|
||||
is(xhr2.status, "200", "Exception!");
|
||||
}
|
||||
});
|
||||
}, false);
|
||||
|
||||
xhr.open("GET", url, true);
|
||||
|
95
content/base/test/test_xhr_abort_after_load.html
Normal file
95
content/base/test/test_xhr_abort_after_load.html
Normal file
@ -0,0 +1,95 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test bug 482935</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href=" /tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body onload="onWindowLoad()">
|
||||
<script class="testbody" type="text/javascript">"use strict";
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var url = "file_XHR_pass1.xml";
|
||||
|
||||
function onWindowLoad() {
|
||||
runTest();
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
var testFunctions = [
|
||||
startTest1,
|
||||
startTest2,
|
||||
startTest3,
|
||||
];
|
||||
|
||||
function nextTest() {
|
||||
if (testFunctions.length == 0) {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
(testFunctions.shift())();
|
||||
}
|
||||
|
||||
nextTest();
|
||||
|
||||
var xhr;
|
||||
function startTest1() {
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.onload = onLoad1;
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function onLoad1() {
|
||||
is(xhr.readyState, xhr.DONE, "readyState should be DONE");
|
||||
xhr.onabort = onAbort1;
|
||||
xhr.abort();
|
||||
|
||||
function onAbort1(e) {
|
||||
ok(false, e.type + " event should not be fired!");
|
||||
}
|
||||
|
||||
is(xhr.readyState, xhr.UNSENT, "readyState should be UNSENT");
|
||||
nextTest();
|
||||
}
|
||||
|
||||
function startTest2() {
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.onloadstart = onAfterSend;
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function startTest3() {
|
||||
xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", url);
|
||||
xhr.send();
|
||||
onAfterSend();
|
||||
}
|
||||
|
||||
function onAfterSend() {
|
||||
is(xhr.readyState, xhr.OPENED, "readyState should be OPENED");
|
||||
var sent = false;
|
||||
try {
|
||||
xhr.send();
|
||||
} catch (e) {
|
||||
sent = true;
|
||||
}
|
||||
ok(sent, "send() flag should be set");
|
||||
var aborted = false;
|
||||
xhr.onabort = onAbort2;
|
||||
xhr.abort();
|
||||
|
||||
function onAbort2() {
|
||||
is(xhr.readyState, xhr.DONE, "readyState should be DONE");
|
||||
aborted = true;
|
||||
}
|
||||
|
||||
ok(aborted, "abort event should be fired");
|
||||
is(xhr.readyState, xhr.UNSENT, "readyState should be UNSENT");
|
||||
nextTest();
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user