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 : let xhr = new XMLHttpRequest();
7 : 1 :
8 : 1 : let expected = ['a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'a3', 'c3', 'a4', 'c4'];
9 : 1 : let result = [];
10 : 1 :
11 [ + ]: 1 : xhr.onreadystatechange = () => {
12 : 4 : result.push('a' + xhr.readyState);
13 : 1 : };
14 : 1 :
15 : 1 : let callback;
16 : 1 :
17 [ + ]: 1 : xhr.addEventListener('readystatechange', callback = () => {
18 : 2 : result.push('b' + xhr.readyState)
19 : 2 :
20 : 2 : if(xhr.readyState === xhr.LOADING)
21 [ - ]: 2 : assert(false);
22 : 1 : });
23 : 1 :
24 [ + ]: 1 : xhr.addEventListener('readystatechange', () => {
25 : 4 : result.push('c' + xhr.readyState);
26 : 4 :
27 : 4 : if(xhr.readyState === xhr.HEADERS_RECEIVED)
28 [ + ]: 4 : xhr.removeEventListener('readystatechange', callback);
29 : 4 :
30 : 4 : if(xhr.readyState === xhr.DONE)
31 [ + ]: 4 : assert.deepStrictEqual(result, expected);
32 : 1 : });
33 : 1 :
34 : 1 : xhr.open('GET', `${activeURL.replace('/resources', '') + '/folder.txt'}`);
35 : 1 : xhr.send();
36 : 1 : }
37 : 2 :
38 : 2 : /*
39 : 2 : * xmlhttprequest-eventtarget.htm
40 : 2 : *
41 : 2 :
42 : 2 : <!doctype html>
43 : 2 : <html>
44 : 2 : <head>
45 : 2 : <title>XMLHttpRequest: implements EventTarget</title>
46 : 2 : <script src="/resources/testharness.js"></script>
47 : 2 : <script src="/resources/testharnessreport.js"></script>
48 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget" data-tested-assertations=".." />
49 : 2 : <!-- Obviously, most of the stuff actually being tested here is covered in the DOM events spec, not in the XHR spec -->
50 : 2 : </head>
51 : 2 : <body>
52 : 2 : <div id="log"></div>
53 : 2 : <script>
54 : 2 : var test = async_test(),
55 : 2 : x = null,
56 : 2 : expected = ["a1", "b1", "c1", "a2", "b2", "c2", "a3", "c3", "a4", "c4"],
57 : 2 : result = []
58 : 2 : function callback(e) {
59 : 2 : result.push("b" + x.readyState)
60 : 2 : test.step(function() {
61 : 2 : if(x.readyState == 3)
62 : 2 : assert_unreached()
63 : 2 : })
64 : 2 : }
65 : 2 : test.step(function() {
66 : 2 : x = new XMLHttpRequest()
67 : 2 : x.onreadystatechange = function() {
68 : 2 : test.step(function() {
69 : 2 : result.push("a" + x.readyState)
70 : 2 : })
71 : 2 : }
72 : 2 : x.addEventListener("readystatechange", callback, false)
73 : 2 : x.addEventListener("readystatechange", function() {
74 : 2 : test.step(function() {
75 : 2 : result.push("c" + x.readyState)
76 : 2 : if(x.readyState == 2)
77 : 2 : x.removeEventListener("readystatechange", callback, false)
78 : 2 : if(x.readyState == 4) {
79 : 2 : assert_array_equals(result, expected)
80 : 2 : test.done()
81 : 2 : }
82 : 2 : })
83 : 2 : }, false)
84 : 2 : x.open("GET", "folder.txt")
85 : 2 : x.send(null)
86 : 2 : })
87 : 2 : </script>
88 : 2 : </body>
89 : 2 : </html>
90 : 2 :
91 : 2 : *
92 : 2 : * xmlhttprequest-eventtarget.htm
93 : 2 : */
|