blob: 2b507c62a900df06c7b1bad7ae4dda3ec83f70be [file] [log] [blame]
<html>
<body>
<title>Test that XMLHttpRequest.response returns an empty ArrayBuffer when received a response without an entity body.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
var zeroContentLengthTest = async_test("Test that XMLHttpRequest.response returns an empty ArrayBuffer when received a response with zero content length.");
zeroContentLengthTest.step(function() {
var req = new XMLHttpRequest;
req.responseType = 'arraybuffer';
req.open('GET', 'resources/zero-length.xml', true);
req.onreadystatechange = zeroContentLengthTest.step_func(function() {
if (req.readyState != 4)
return;
assert_equals(req.status, 200);
assert_equals(Object.prototype.toString.call(req.response), '[object ArrayBuffer]');
assert_equals(req.response.byteLength, 0);
zeroContentLengthTest.done();
});
req.send(null);
});
var notModifiedTest = async_test("Test that XMLHttpRequest.response returns an empty ArrayBuffer when received status is '304 not modified'.");
notModifiedTest.step(function() {
var req = new XMLHttpRequest;
req.responseType = 'arraybuffer';
req.open('GET', 'resources/reply.xml', true);
req.onreadystatechange = notModifiedTest.step_func(function() {
if (req.readyState != 4)
return;
assert_equals(req.status, 200);
assert_equals(Object.prototype.toString.call(req.response), '[object ArrayBuffer]');
assert_equals(req.response.byteLength, 68);
var lastModified = req.getResponseHeader("Last-Modified");
var req2 = new XMLHttpRequest;
req2.responseType = 'arraybuffer';
req2.open('GET', 'resources/reply.xml', true);
req2.setRequestHeader("If-Modified-Since", lastModified);
req2.onreadystatechange = notModifiedTest.step_func(function() {
if (req2.readyState != 4)
return;
assert_equals(req2.status, 304);
assert_equals(Object.prototype.toString.call(req2.response), '[object ArrayBuffer]');
assert_equals(req2.response.byteLength, 0);
notModifiedTest.done();
});
req2.send(null);
});
req.send(null);
});
</script>
</body>