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 expect = [ 9 : 1 : 'loadstart', 10 : 1 : 'upload.loadstart', 11 : 1 : 4, 12 : 1 : 'upload.error', 13 : 1 : 'upload.loadend', 14 : 1 : 'error', 15 : 1 : 'loadend' 16 : 1 : ]; 17 : 1 : let actual = []; 18 : 1 : 19 [ + ]: 1 : xhr.onreadystatechange = () => { 20 [ + ]: 2 : if(xhr.readyState === 4){ 21 : 1 : actual.push(xhr.readyState); 22 : 1 : } 23 : 1 : }; 24 : 1 : 25 [ + ]: 1 : xhr.onloadstart = (e) => { 26 : 1 : actual.push(e.type); 27 : 1 : }; 28 : 1 : 29 [ + ]: 1 : xhr.onloadend = (e) => { 30 : 1 : actual.push(e.type); 31 : 1 : assert.deepStrictEqual(actual, expect); 32 : 1 : }; 33 : 1 : 34 [ + ]: 1 : xhr.onerror = (e) => { 35 : 1 : actual.push(e.type); 36 : 1 : }; 37 : 1 : 38 [ + ]: 1 : xhr.upload.onloadstart = (e) => { actual.push("upload." + e.type); }; 39 [ + ]: 1 : xhr.upload.onloadend = (e) => { actual.push("upload." + e.type); }; 40 [ + ]: 1 : xhr.upload.onerror = (e) => { actual.push("upload." + e.type); }; 41 : 1 : 42 : 1 : xhr.open('POST', `http://nonexistent`); 43 : 1 : xhr.send('Test Message'); 44 : 1 : } 45 : 2 : 46 : 2 : /* 47 : 2 : * send-network-error-async-events.sub.htm 48 : 2 : * 49 : 2 : 50 : 2 : <!DOCTYPE html> 51 : 2 : <html> 52 : 2 : <head> 53 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onerror" data-tested-assertations="../.." /> 54 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[9]/ol/li[2] following::ol[1]/li[9]/ol/li[3]" /> 55 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dt[4] following::dd[4]/p" /> 56 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#network-error" data-tested-assertations=".." /> 57 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[6] following::ol[1]/li[7] following::ol[1]/li[7]/ol/li[3] following::ol[1]/li[7]/ol/li[4] following::ol[1]/li[9] following::ol[1]/li[10]" /> 58 : 2 : <script src="/resources/testharness.js"></script> 59 : 2 : <script src="/resources/testharnessreport.js"></script> 60 : 2 : <title>XMLHttpRequest: The send() method: Fire a progress event named error when Network error happens (synchronous flag is unset)</title> 61 : 2 : </head> 62 : 2 : 63 : 2 : <body> 64 : 2 : <div id="log"></div> 65 : 2 : 66 : 2 : <script type="text/javascript"> 67 : 2 : var test = async_test(); 68 : 2 : 69 : 2 : test.step(function(){ 70 : 2 : var xhr = new XMLHttpRequest(); 71 : 2 : var expect = ["loadstart", "upload.loadstart", 4, "upload.error", "upload.loadend", "error", "loadend"]; 72 : 2 : var actual = []; 73 : 2 : 74 : 2 : xhr.onreadystatechange = test.step_func(() => { 75 : 2 : if (xhr.readyState == 4) { 76 : 2 : actual.push(xhr.readyState); 77 : 2 : } 78 : 2 : }); 79 : 2 : 80 : 2 : xhr.onloadstart = test.step_func(e => { actual.push(e.type); }) 81 : 2 : xhr.onloadend = test.step_func_done(e => { 82 : 2 : actual.push(e.type); 83 : 2 : assert_array_equals(actual, expect); 84 : 2 : }) 85 : 2 : xhr.onerror = test.step_func(e => { actual.push(e.type); }) 86 : 2 : 87 : 2 : xhr.upload.onloadstart = test.step_func(e => { actual.push("upload." + e.type); }) 88 : 2 : xhr.upload.onloadend = test.step_func(e => { actual.push("upload." + e.type); }) 89 : 2 : xhr.upload.onerror = test.step_func(e => { actual.push("upload." + e.type); }) 90 : 2 : 91 : 2 : xhr.open("POST", "http://nonexistent.{{host}}:{{ports[http][0]}}", true); 92 : 2 : xhr.send("Test Message"); 93 : 2 : }); 94 : 2 : </script> 95 : 2 : </body> 96 : 2 : </html> 97 : 2 : 98 : 2 : * 99 : 2 : * send-network-error-async-events.sub.htm 100 : 2 : */