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('301', 'foobar://abcd'); 7 : 1 : redirect('302', 'http://z.'); 8 : 1 : redirect('302', 'mailto:someone@example.org'); 9 : 1 : redirect('303', 'http://z.'); 10 : 1 : redirect('303', 'tel:1234567890'); 11 : 1 : 12 [ + ]: 1 : function redirect(code, location){ 13 : 5 : 14 : 5 : let xhr = new XMLHttpRequest(); 15 : 5 : 16 : 5 : xhr.open('GET', `${activeURL}/redirect.py?location=${location}&code=${code}`, false); 17 : 5 : 18 : 5 : assert.throws( 19 [ + ]: 5 : () => { 20 : 5 : xhr.send(); 21 : 5 : }, 22 [ + ]: 5 : (err) => { 23 : 5 : assert(err instanceof DOMException, 'DOMException expected'); 24 : 5 : assert(err.name === 'NetworkError', 'NetworkError expected'); 25 : 5 : 26 : 5 : return true; 27 : 5 : } 28 : 5 : ); 29 : 5 : } 30 : 1 : } 31 : 2 : 32 : 2 : /* 33 : 2 : * send-redirect-bogus-sync.htm 34 : 2 : * 35 : 2 : 36 : 2 : <!doctype html> 37 : 2 : <html> 38 : 2 : <head> 39 : 2 : <title>XMLHttpRequest: send() - Redirects (bogus Location header; sync)</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] 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 : test(function() { 49 : 2 : var client = new XMLHttpRequest() 50 : 2 : client.open("GET", "resources/redirect.py?location=" + location + "&code=" + code, false) 51 : 2 : assert_throws_dom("NetworkError", function() { client.send(null) }) 52 : 2 : }, document.title + " (" + code + ": " + location + ")") 53 : 2 : } 54 : 2 : redirect("301", "foobar://abcd") 55 : 2 : redirect("302", "http://z.") 56 : 2 : redirect("302", "mailto:someone@example.org") 57 : 2 : redirect("303", "http://z.") 58 : 2 : redirect("303", "tel:1234567890") 59 : 2 : </script> 60 : 2 : </body> 61 : 2 : </html> 62 : 2 : 63 : 2 : * 64 : 2 : * send-redirect-bogus-sync.htm 65 : 2 : */