1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<html>
<body>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<p>Test that XMLHttpRequest.response returns an empty ArrayBuffer when received a response without an entity body.</p>
<pre id="console"></pre>
<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>
|