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 errorEventFired = false; 9 : 1 : let code = 301; 10 : 1 : 11 [ + ]: 1 : xhr.onerror = () => { 12 : 1 : errorEventFired = true; 13 : 1 : }; 14 : 1 : 15 [ + ]: 1 : xhr.onloadend = () => { 16 : 1 : assert.strictEqual(errorEventFired, true); 17 : 1 : assert.strictEqual(xhr.responseText, ''); 18 : 1 : assert.strictEqual(xhr.readyState, 4); 19 : 1 : 20 : 1 : xhr.onerror = null; 21 : 1 : xhr.onloadend = null; 22 : 1 : }; 23 : 1 : 24 : 1 : xhr.open('GET', `${activeURL}/infinite-redirects.py?type=${code}`); 25 : 1 : xhr.send(); 26 : 1 : } 27 : 2 : 28 : 2 : /* 29 : 2 : * send-redirect-infinite.htm 30 : 2 : * 31 : 2 : 32 : 2 : <!doctype html> 33 : 2 : <html> 34 : 2 : <head> 35 : 2 : <title>XMLHttpRequest: send() - Redirects (infinite loop)</title> 36 : 2 : <script src="/resources/testharness.js"></script> 37 : 2 : <script src="/resources/testharnessreport.js"></script> 38 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onerror" data-tested-assertations="../.." /> 39 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dl[1]/dt[2] following::dl[1]/dd[2]/p[1]" /> 40 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#network-error" data-tested-assertations=".." /> 41 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#request-error" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[9] following::ol[1]/li[10]" /> 42 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetext-attribute" data-tested-assertations="following::ol[1]/li[3]" /> 43 : 2 : </head> 44 : 2 : <body> 45 : 2 : <div id="log"></div> 46 : 2 : <script> 47 : 2 : var test = async_test() 48 : 2 : var client = new XMLHttpRequest(), 49 : 2 : errorEventFired = false, 50 : 2 : code = 301 51 : 2 : client.open("GET", "resources/infinite-redirects.py?type="+code) 52 : 2 : client.onerror = function(){ 53 : 2 : errorEventFired = true 54 : 2 : } 55 : 2 : client.onloadend = function(){ 56 : 2 : test.step(function() { 57 : 2 : assert_equals(errorEventFired, true) 58 : 2 : assert_equals(client.responseText, '') 59 : 2 : assert_equals(client.readyState, 4) 60 : 2 : test.done() 61 : 2 : }) 62 : 2 : } 63 : 2 : client.send(null) 64 : 2 : </script> 65 : 2 : </body> 66 : 2 : </html> 67 : 2 : 68 : 2 : * 69 : 2 : * send-redirect-infinite.htm 70 : 2 : */