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 : 0 : 6 : 0 : redirect('301'); 7 : 0 : redirect('302'); 8 : 0 : redirect('303'); 9 : 0 : redirect('307'); 10 : 0 : 11 : 0 : function redirect(code){ 12 : 0 : 13 : 0 : let xhr = new XMLHttpRequest(); 14 : 0 : 15 : 0 : xhr.onreadystatechange = () => { 16 : 0 : 17 : 0 : if(xhr.readyState === 4){ 18 : 0 : 19 : 0 : assert.strictEqual(xhr.status + '', code); 20 : 0 : assert.strictEqual(xhr.statusText, 'ABE ODDYSSEE'); 21 : 0 : assert.strictEqual(xhr.responseXML.documentElement.localName, 'x'); 22 : 0 : 23 : 0 : xhr.onreadystatechange = null; 24 : 0 : } 25 : 0 : }; 26 : 0 : 27 : 0 : xhr.open('GET', `${activeURL}/status.py?content=<x>x<\/x>&type=text/xml&text=ABE ODDYSSEE&code=${code}`); 28 : 0 : xhr.send(); 29 : 0 : } 30 : 0 : } 31 : 2 : 32 : 2 : /* 33 : 2 : * send-redirect-no-location.htm 34 : 2 : * 35 : 2 : 36 : 2 : <!doctype html> 37 : 2 : <html> 38 : 2 : <head> 39 : 2 : <title>XMLHttpRequest: send() - Redirects (no Location header)</title> 40 : 2 : <script src="/resources/testharness.js"></script> 41 : 2 : <script src="/resources/testharnessreport.js"></script> 42 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dl[1]/dt[2]" /> 43 : 2 : <!-- 44 : 2 : NOTE: the XHR spec does not really handle this scenario. It's handled in the Fetch spec: 45 : 2 : "If response's headers do not contain a header whose name is Location, return response." 46 : 2 : --> 47 : 2 : </head> 48 : 2 : <body> 49 : 2 : <div id="log"></div> 50 : 2 : <script> 51 : 2 : function redirect(code) { 52 : 2 : var test = async_test(document.title + " (" + code + ")") 53 : 2 : test.step(function() { 54 : 2 : var client = new XMLHttpRequest() 55 : 2 : client.onreadystatechange = function() { 56 : 2 : test.step(function() { 57 : 2 : if(client.readyState == 4) { 58 : 2 : assert_equals(client.status + "", code) 59 : 2 : assert_equals(client.statusText, "ABE ODDYSSEE") 60 : 2 : assert_equals(client.responseXML.documentElement.localName, "x") 61 : 2 : test.done() 62 : 2 : } 63 : 2 : }) 64 : 2 : } 65 : 2 : client.open("GET", "resources/status.py?content=<x>x<\/x>&type=text/xml&text=ABE ODDYSSEE&code=" + code) 66 : 2 : client.send(null) 67 : 2 : }) 68 : 2 : } 69 : 2 : redirect("301") 70 : 2 : redirect("302") 71 : 2 : redirect("303") 72 : 2 : redirect("307") 73 : 2 : </script> 74 : 2 : </body> 75 : 2 : </html> 76 : 2 : 77 : 2 : * 78 : 2 : * send-redirect-no-location.htm 79 : 2 : */