Branch data Line data Source code
1 [ + ]: 2 : import assert from 'node:assert/strict';
2 : 2 : import { XMLHttpRequest } from '../../../lib/whatwg-xhr.js';
3 : 2 :
4 [ + ]: 2 : export default (activeURL) => {
5 : 1 :
6 : 1 : const xhr = new XMLHttpRequest();
7 : 1 :
8 [ + ]: 1 : xhr.onreadystatechange = () => {
9 : 4 :
10 [ + ]: 4 : if(xhr.readyState === 4){
11 : 1 :
12 : 1 : assert.strictEqual(xhr.status, 200);
13 : 1 :
14 : 1 : let buf = xhr.response;
15 : 1 : assert(buf instanceof ArrayBuffer);
16 : 1 :
17 : 1 : let arr = new Uint8Array(buf);
18 : 1 :
19 : 1 : assert.strictEqual(arr.length, 5);
20 : 1 : assert.strictEqual(arr[0], 0x48, 'Expect "H"');
21 : 1 : assert.strictEqual(arr[1], 0x65, 'Expect "e"');
22 : 1 : assert.strictEqual(arr[2], 0x6c, 'Expect "l"');
23 : 1 : assert.strictEqual(arr[3], 0x6c, 'Expect "l"');
24 : 1 : assert.strictEqual(arr[4], 0x6f, 'Expect "o"');
25 : 1 : assert.strictEqual(xhr.response, xhr.response, 'Response should be cached');
26 : 1 :
27 : 1 : xhr.onreadystatechange = null;
28 : 1 : }
29 : 1 : };
30 : 1 :
31 : 1 : xhr.open('GET', `${activeURL}/content.py?content=Hello`);
32 : 1 : xhr.responseType = 'arraybuffer';
33 : 1 : xhr.send();
34 : 1 : }
35 : 2 :
36 : 2 : /*
37 : 2 : * response-data-arraybuffer.htm
38 : 2 : *
39 : 2 :
40 : 2 : <!DOCTYPE html>
41 : 2 : <html>
42 : 2 : <head>
43 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute" data-tested-assertations="following::ol[1]/li[4]" />
44 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-response-attribute" data-tested-assertations="following::a[contains(@href,'#arraybuffer-response-entity-body')]/.." />
45 : 2 : <script src="/resources/testharness.js"></script>
46 : 2 : <script src="/resources/testharnessreport.js"></script>
47 : 2 : <title>XMLHttpRequest: The response attribute: ArrayBuffer data</title>
48 : 2 : </head>
49 : 2 :
50 : 2 : <body>
51 : 2 : <div id="log"></div>
52 : 2 :
53 : 2 : <script type="text/javascript">
54 : 2 : var test = async_test();
55 : 2 :
56 : 2 : test.step(function()
57 : 2 : {
58 : 2 : var xhr = new XMLHttpRequest();
59 : 2 :
60 : 2 : xhr.onreadystatechange = function()
61 : 2 : {
62 : 2 : if (xhr.readyState == 4)
63 : 2 : {
64 : 2 : test.step(function()
65 : 2 : {
66 : 2 : assert_equals(xhr.status, 200);
67 : 2 :
68 : 2 : var buf = xhr.response;
69 : 2 : assert_true(buf instanceof ArrayBuffer);
70 : 2 :
71 : 2 : var arr = new Uint8Array(buf);
72 : 2 : assert_equals(arr.length, 5);
73 : 2 : assert_equals(arr[0], 0x48, "Expect 'H'");
74 : 2 : assert_equals(arr[1], 0x65, "Expect 'e'");
75 : 2 : assert_equals(arr[2], 0x6c, "Expect 'l'");
76 : 2 : assert_equals(arr[3], 0x6c, "Expect 'l'");
77 : 2 : assert_equals(arr[4], 0x6f, "Expect 'o'");
78 : 2 :
79 : 2 : assert_equals(xhr.response, xhr.response,
80 : 2 : "Response should be cached");
81 : 2 :
82 : 2 : test.done();
83 : 2 : });
84 : 2 : }
85 : 2 : };
86 : 2 :
87 : 2 : xhr.open("GET", "./resources/content.py?content=Hello", true);
88 : 2 : xhr.responseType = "arraybuffer";
89 : 2 : xhr.send();
90 : 2 : });
91 : 2 : </script>
92 : 2 : </body>
93 : 2 : </html>
94 : 2 :
95 : 2 : *
96 : 2 : * response-data-arraybuffer.htm
97 : 2 : */
|