blob: 32e60b15c59e086c56314ab03a2b8e70c83feb5b [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>XMLHttpRequest: blob, arraybuffer and document response getters should return null in case of timeout error</title>
<script src="/js-test-resources/testharness.js"></script>
<script src="/js-test-resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
function runTest(name, fileName, mimeType, setupClient, checkResponse) {
var test = async_test(name)
test.step(function() {
var client = new XMLHttpRequest()
client.timeout = 10
var url = "/resources/load-then-wait.cgi?name=../xmlhttprequest/" + fileName + "&waitFor=1.0&mimeType=" + mimeType
client.open("GET", url, true)
setupClient(test, client)
client.hasTimedout = false;
client.ontimeout = test.step_func(function () {
checkResponse(test, client)
client.hasTimedout = true
})
client.onloadend = test.step_func(function () {
assert_true(client.hasTimedout, "xhr should have timed out")
test.done()
})
client.send(null)
})
}
runTest("getting arraybuffer response within timeout event callback",
"ontimeout-response-getters.html","text/html",
function(test, client) {client.responseType = "arraybuffer"},
function(test, client) {assert_true(client.response == null, "arraybuffer response must be empty")}
)
runTest("getting blob response within timeout event callback",
"ontimeout-response-getters.html","text/html",
function(test, client) {client.responseType = "blob"},
function(test, client) {assert_true(client.response == null, "blob response must be empty")}
)
runTest("getting json response within timeout event callback",
"resources/test.json","text/plain",
function(test, client) {client.responseType = "json"},
function(test, client) {assert_true(client.response == null, "json response must be empty")}
)
runTest("getting document response within timeout event callback",
"resources/test.xml","text/xml",
function(test, client) {client.responseType = "document"},
function(test, client) {assert_true(client.response == null, "document response must be empty")}
)
</script>
</body>
</html>