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 : redirect('302', 'http://example.not'); 7 : 1 : redirect('302', 'mailto:someone@example.org'); 8 : 1 : redirect('303', 'http://example.not'); 9 : 1 : redirect('303', 'foobar:someone@example.org'); 10 : 1 : 11 [ + ]: 1 : function redirect(code, location){ 12 : 4 : 13 : 4 : let xhr = new XMLHttpRequest(); 14 : 4 : 15 [ + ]: 4 : xhr.onreadystatechange = () => { 16 : 8 : 17 [ + ]: 8 : if(xhr.readyState === 4){ 18 : 4 : 19 : 4 : assert.strictEqual(xhr.status, 0); 20 : 4 : assert.strictEqual(xhr.statusText, ''); 21 : 4 : 22 : 4 : xhr.onreadystatechange = null; 23 : 4 : } 24 : 4 : }; 25 : 4 : 26 : 4 : xhr.open('GET', `${activeURL}/redirect.py?location=${location}&code=${code}`); 27 : 4 : xhr.send(); 28 : 4 : } 29 : 1 : } 30 : 2 : 31 : 2 : /* 32 : 2 : * send-redirect-bogus.htm 33 : 2 : * 34 : 2 : 35 : 2 : <!doctype html> 36 : 2 : <html> 37 : 2 : <head> 38 : 2 : <title>XMLHttpRequest: send() - Redirects (bogus Location header)</title> 39 : 2 : <meta name=timeout content=long> 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] following::dl[1]/dd[2]/ol/li[1] following::dl[1]/dd[2]/ol/li[3]" /> 43 : 2 : </head> 44 : 2 : <body> 45 : 2 : <div id="log"></div> 46 : 2 : <script> 47 : 2 : function redirect(code, location) { 48 : 2 : var test = async_test(document.title + " (" + code + ": " + location + ")"); 49 : 2 : test.step(function() { 50 : 2 : var client = new XMLHttpRequest() 51 : 2 : client.onreadystatechange = function() { 52 : 2 : test.step(function() { 53 : 2 : if(client.readyState == 4) { 54 : 2 : assert_equals(client.status, 0) 55 : 2 : assert_equals(client.statusText, "") 56 : 2 : test.done() 57 : 2 : } 58 : 2 : }) 59 : 2 : } 60 : 2 : client.open("GET", "resources/redirect.py?location=" + location + "&code=" + code) 61 : 2 : client.send(null) 62 : 2 : }) 63 : 2 : } 64 : 2 : redirect("302", "http://example.not") 65 : 2 : redirect("302", "mailto:someone@example.org") 66 : 2 : redirect("303", "http://example.not") 67 : 2 : redirect("303", "foobar:someone@example.org") 68 : 2 : </script> 69 : 2 : </body> 70 : 2 : </html> 71 : 2 : 72 : 2 : * 73 : 2 : * send-redirect-bogus.htm 74 : 2 : */