Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / xmlhttprequest / response-empty-arraybuffer.html
blob52b44982c9ddd81e1c49d8d47e6e6e30dbb24b79
1 <html>
2 <body>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <p>Test that XMLHttpRequest.response returns an empty ArrayBuffer when received a response without an entity body.</p>
6 <pre id="console"></pre>
7 <script>
9 var zeroContentLengthTest = async_test("Test that XMLHttpRequest.response returns an empty ArrayBuffer when received a response with zero content length.");
10 zeroContentLengthTest.step(function() {
11 var req = new XMLHttpRequest;
12 req.responseType = 'arraybuffer';
13 req.open('GET', 'resources/zero-length.xml', true);
14 req.onreadystatechange = zeroContentLengthTest.step_func(function() {
15 if (req.readyState != 4)
16 return;
18 assert_equals(req.status, 200);
19 assert_equals(Object.prototype.toString.call(req.response), '[object ArrayBuffer]');
20 assert_equals(req.response.byteLength, 0);
21 zeroContentLengthTest.done();
22 });
23 req.send(null);
24 });
27 var notModifiedTest = async_test("Test that XMLHttpRequest.response returns an empty ArrayBuffer when received status is '304 not modified'.");
28 notModifiedTest.step(function() {
29 var req = new XMLHttpRequest;
30 req.responseType = 'arraybuffer';
31 req.open('GET', 'resources/reply.xml', true);
32 req.onreadystatechange = notModifiedTest.step_func(function() {
33 if (req.readyState != 4)
34 return;
36 assert_equals(req.status, 200);
37 assert_equals(Object.prototype.toString.call(req.response), '[object ArrayBuffer]');
38 assert_equals(req.response.byteLength, 68);
40 var lastModified = req.getResponseHeader("Last-Modified");
42 var req2 = new XMLHttpRequest;
43 req2.responseType = 'arraybuffer';
44 req2.open('GET', 'resources/reply.xml', true);
45 req2.setRequestHeader("If-Modified-Since", lastModified);
46 req2.onreadystatechange = notModifiedTest.step_func(function() {
47 if (req2.readyState != 4)
48 return;
50 assert_equals(req2.status, 304);
51 assert_equals(Object.prototype.toString.call(req2.response), '[object ArrayBuffer]');
52 assert_equals(req2.response.byteLength, 0);
53 notModifiedTest.done();
54 });
55 req2.send(null);
56 });
57 req.send(null);
58 });
60 </script>
61 </body>