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 : (() => {
7 : 1 : var xhr = new XMLHttpRequest;
8 : 1 :
9 [ + ]: 1 : xhr.onloadstart = () => {
10 : 1 : assert.throws(
11 [ + ]: 1 : () => {
12 : 1 : xhr.setRequestHeader('General', 'Organa');
13 : 1 : },
14 [ + ]: 1 : (err) => {
15 : 1 : assert(err instanceof DOMException, 'DOMException expected');
16 : 1 : assert(err.name === 'InvalidStateError', 'InvalidStateError expected');
17 : 1 :
18 : 1 : return true;
19 : 1 : }
20 : 1 : );
21 : 1 : assert.throws(
22 [ + ]: 1 : () => {
23 : 1 : xhr.withCredentials = true;
24 : 1 : },
25 [ + ]: 1 : (err) => {
26 : 1 : assert(err instanceof DOMException, 'DOMException expected');
27 : 1 : assert(err.name === 'InvalidStateError', 'InvalidStateError expected');
28 : 1 :
29 : 1 : return true;
30 : 1 : }
31 : 1 : );
32 : 1 : assert.throws(
33 [ + ]: 1 : () => {
34 : 1 : xhr.send();
35 : 1 : },
36 [ + ]: 1 : (err) => {
37 : 1 : assert(err instanceof DOMException, 'DOMException expected');
38 : 1 : assert(err.name === 'InvalidStateError', 'InvalidStateError expected');
39 : 1 :
40 : 1 : return true;
41 : 1 : }
42 : 1 : );
43 : 1 :
44 : 1 : xhr.onloadstart = null;
45 : 1 :
46 : 1 : xhr.open('GET', 'data:,BB-8');
47 : 1 : xhr.send();
48 : 1 : };
49 : 1 :
50 [ + ]: 1 : xhr.onload = () => {
51 : 1 : assert.strictEqual(xhr.responseText, 'BB-8');
52 : 1 : };
53 : 1 :
54 : 1 : xhr.open('GET', 'data:,R2-D2');
55 : 1 : xhr.send();
56 : 1 : })();
57 : 1 :
58 [ + ]: 1 : (() => {
59 : 1 : var xhr = new XMLHttpRequest;
60 : 1 : let abortFired = false;
61 : 1 :
62 [ + ]: 1 : xhr.onloadstart = () => {
63 : 1 : assert.strictEqual(xhr.readyState, 1);
64 : 1 : xhr.abort();
65 : 1 :
66 : 1 : assert(abortFired);
67 : 1 : assert.strictEqual(xhr.readyState, 0);
68 : 1 : };
69 : 1 :
70 [ + ]: 1 : xhr.onabort = () => {
71 : 1 : abortFired = true;
72 : 1 : assert.strictEqual(xhr.readyState, 4);
73 : 1 : };
74 : 1 :
75 : 1 : xhr.open('GET', 'data:,K-2SO');
76 : 1 : xhr.send();
77 : 1 : })();
78 : 1 : }
79 : 2 :
80 : 2 : /*
81 : 2 : * loadstart-and-state.html
82 : 2 : *
83 : 2 :
84 : 2 : <!doctype html>
85 : 2 : <title>XMLHttpRequest: loadstart event corner cases</title>
86 : 2 : <script src=/resources/testharness.js></script>
87 : 2 : <script src=/resources/testharnessreport.js></script>
88 : 2 : <div id=log></div>
89 : 2 : <script>
90 : 2 : async_test(t => {
91 : 2 : const client = new XMLHttpRequest
92 : 2 : client.onloadstart = t.step_func(() => {
93 : 2 : assert_throws_dom("InvalidStateError", () => client.setRequestHeader("General", "Organa"))
94 : 2 : assert_throws_dom("InvalidStateError", () => client.withCredentials = true)
95 : 2 : assert_throws_dom("InvalidStateError", () => client.send())
96 : 2 : client.onloadstart = null
97 : 2 : client.open("GET", "data:,BB-8")
98 : 2 : client.send()
99 : 2 : })
100 : 2 : client.onload = t.step_func_done(() => {
101 : 2 : assert_equals(client.responseText, "BB-8")
102 : 2 : })
103 : 2 : client.open("GET", "data:,R2-D2")
104 : 2 : client.send()
105 : 2 : }, "open() during loadstart")
106 : 2 :
107 : 2 : async_test(t => {
108 : 2 : const client = new XMLHttpRequest
109 : 2 : let abortFired = false
110 : 2 : client.onloadstart = t.step_func_done(() => {
111 : 2 : assert_equals(client.readyState, 1)
112 : 2 : client.abort()
113 : 2 : assert_true(abortFired)
114 : 2 : assert_equals(client.readyState, 0)
115 : 2 : })
116 : 2 : client.onabort = t.step_func(() => {
117 : 2 : abortFired = true
118 : 2 : assert_equals(client.readyState, 4)
119 : 2 : })
120 : 2 : client.open("GET", "data:,K-2SO")
121 : 2 : client.send()
122 : 2 : }, "abort() during loadstart")
123 : 2 : </script>
124 : 2 :
125 : 2 : *
126 : 2 : * loadstart-and-state.html
127 : 2 : */
|