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 : import { prepare_xhr_for_event_order_test } from './xmlhttprequest-event-order.js?q8';
5 : 2 : import { assert_xhr_event_order_matches } from './xmlhttprequest-event-order.js?q8';
6 : 2 :
7 [ + ]: 2 : export default (activeURL) => {
8 : 1 :
9 : 1 : let xhr = new XMLHttpRequest();
10 : 1 : let timeout;
11 : 1 :
12 : 1 : prepare_xhr_for_event_order_test(xhr);
13 : 1 :
14 [ + ]: 1 : xhr.onloadend = () => {
15 : 1 : assert_xhr_event_order_matches([
16 : 1 : 1,
17 : 1 : "loadstart(0,0,false)",
18 : 1 : "upload.loadstart(0,12,true)",
19 : 1 : 4,
20 : 1 : "upload.timeout(0,0,false)",
21 : 1 : "upload.loadend(0,0,false)",
22 : 1 : "timeout(0,0,false)",
23 : 1 : "loadend(0,0,false)"
24 : 1 : ]);
25 : 1 :
26 : 1 : xhr.upload.onloadend = null;
27 : 1 : xhr.onloadend = null;
28 : 1 : clearTimeout(timeout);
29 : 1 : };
30 : 1 :
31 : 1 : xhr.timeout = 5;
32 : 1 : xhr.open('POST', `${activeURL}/delay.py?ms=20000`);
33 : 1 : xhr.send('Test Message');
34 : 1 :
35 : 1 : timeout = setTimeout(() => {
36 : 0 : assert(false, 'ontimeout not called.');
37 : 1 : }, 2000);
38 : 1 : }
39 : 2 :
40 : 2 : /*
41 : 2 : * event-timeout-order.any.js
42 : 2 : *
43 : 2 :
44 : 2 : // META: title=XMLHttpRequest: event - timeout (order of events)
45 : 2 : // META: script=resources/xmlhttprequest-event-order.js
46 : 2 :
47 : 2 : var test = async_test();
48 : 2 : test.step(function () {
49 : 2 : var xhr = new XMLHttpRequest();
50 : 2 : prepare_xhr_for_event_order_test(xhr);
51 : 2 : xhr.addEventListener("loadend", function () {
52 : 2 : test.step(function () {
53 : 2 : assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,12,true)", 4, "upload.timeout(0,0,false)", "upload.loadend(0,0,false)", "timeout(0,0,false)", "loadend(0,0,false)"]);
54 : 2 : test.done();
55 : 2 : });
56 : 2 : });
57 : 2 :
58 : 2 : xhr.timeout = 5;
59 : 2 : xhr.open("POST", "resources/delay.py?ms=20000");
60 : 2 : xhr.send("Test Message");
61 : 2 : test.step_timeout(() => {
62 : 2 : assert_unreached("ontimeout not called.");
63 : 2 : }, 2000);
64 : 2 : });
65 : 2 :
66 : 2 : *
67 : 2 : * event-timeout-order.any.js
68 : 2 : */
|