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 result = []; 9 : 1 : let expected = [1, 4, 1]; // open() => 1, abort() => 4, open() => 1 10 : 1 : 11 : 1 : let abort_flag = false; 12 : 1 : 13 [ + ]: 1 : xhr.onreadystatechange = () => { 14 : 3 : 15 : 3 : result.push(xhr.readyState); 16 [ + ]: 3 : if(abort_flag){ 17 : 1 : abort_flag = false; 18 : 1 : xhr.open('GET', `${activeURL}/...`); 19 : 1 : } 20 : 1 : }; 21 : 1 : 22 : 1 : xhr.open('GET', `${activeURL}/well-formed.xml`); 23 : 1 : xhr.send(); 24 : 1 : 25 : 1 : abort_flag = true; 26 : 1 : 27 : 1 : xhr.abort(); 28 : 1 : 29 : 1 : assert.deepStrictEqual(result, expected); 30 : 1 : assert.strictEqual(xhr.readyState, 1, 'abort() should only set state to UNSENT when DONE'); 31 : 1 : } 32 : 2 : 33 : 2 : /* 34 : 2 : * open-during-abort.htm 35 : 2 : * 36 : 2 : 37 : 2 : <!doctype html> 38 : 2 : <html> 39 : 2 : <head> 40 : 2 : <title>XMLHttpRequest: open() during abort()</title> 41 : 2 : <script src="/resources/testharness.js"></script> 42 : 2 : <script src="/resources/testharnessreport.js"></script> 43 : 2 : </head> 44 : 2 : <body> 45 : 2 : <div id="log"></div> 46 : 2 : <script> 47 : 2 : test(function() { 48 : 2 : var client = new XMLHttpRequest(), 49 : 2 : abort_flag = false, 50 : 2 : result = [], 51 : 2 : expected = [1, 4, 1] // open() => 1, abort() => 4, open() => 1 52 : 2 : 53 : 2 : client.onreadystatechange = this.step_func(function() { 54 : 2 : result.push(client.readyState) 55 : 2 : if (abort_flag) { 56 : 2 : abort_flag = false 57 : 2 : client.open("GET", "...") 58 : 2 : } 59 : 2 : }) 60 : 2 : client.open("GET", "resources/well-formed.xml") 61 : 2 : client.send(null) 62 : 2 : abort_flag = true 63 : 2 : client.abort() 64 : 2 : assert_array_equals(result, expected) 65 : 2 : assert_equals(client.readyState, 1) // abort() should only set state to UNSENT when DONE 66 : 2 : }) 67 : 2 : </script> 68 : 2 : </body> 69 : 2 : </html> 70 : 2 : 71 : 2 : * 72 : 2 : * open-during-abort.htm 73 : 2 : */