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 : try_value('t\x00t'); 7 : 1 : try_value('t\rt'); 8 : 1 : try_value('t\nt'); 9 : 1 : 10 [ + ]: 1 : (() => { 11 : 1 : const xhr = new XMLHttpRequest(); 12 : 1 : 13 : 1 : xhr.open('GET', `${activeURL}/...`); 14 : 1 : 15 : 1 : assert.throws( 16 [ + ]: 1 : () => { 17 : 1 : xhr.setRequestHeader('x-test', 'テスト'); 18 : 1 : }, 19 [ + ]: 1 : (err) => { 20 : 1 : assert(err instanceof TypeError, 'TypeError expected'); 21 : 1 : 22 : 1 : return true; 23 : 1 : } 24 : 1 : ); 25 : 1 : })(); 26 : 1 : 27 [ + ]: 1 : (() => { 28 : 1 : const xhr = new XMLHttpRequest(); 29 : 1 : 30 : 1 : xhr.open('GET', `${activeURL}/...`); 31 : 1 : 32 : 1 : assert.throws( 33 [ + ]: 1 : () => { 34 : 1 : xhr.setRequestHeader('x-test'); 35 : 1 : }, 36 [ + ]: 1 : (err) => { 37 : 1 : assert(err instanceof TypeError, 'TypeError expected'); 38 : 1 : 39 : 1 : return true; 40 : 1 : } 41 : 1 : ); 42 : 1 : })(); 43 : 1 : 44 [ + ]: 1 : function try_value(value){ 45 : 3 : const xhr = new XMLHttpRequest(); 46 : 3 : 47 : 3 : xhr.open('GET', `${activeURL}/...`); 48 : 3 : 49 : 3 : assert.throws( 50 [ + ]: 3 : () => { 51 : 3 : xhr.setRequestHeader('x-test', value); 52 : 3 : }, 53 [ + ]: 3 : (err) => { 54 : 3 : assert(err instanceof DOMException, 'DOMException expected'); 55 : 3 : assert(err.name === 'SyntaxError', 'SyntaxError expected'); 56 : 3 : 57 : 3 : return true; 58 : 3 : } 59 : 3 : ); 60 : 3 : } 61 : 1 : } 62 : 2 : 63 : 2 : /* 64 : 2 : * setrequestheader-bogus-value.htm 65 : 2 : * 66 : 2 : 67 : 2 : <!doctype html> 68 : 2 : <html> 69 : 2 : <head> 70 : 2 : <meta charset="utf-8"> 71 : 2 : <title>XMLHttpRequest: setRequestHeader() value argument checks</title> 72 : 2 : <script src="/resources/testharness.js"></script> 73 : 2 : <script src="/resources/testharnessreport.js"></script> 74 : 2 : <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="/following::ol/li[4]" /> 75 : 2 : </head> 76 : 2 : <body> 77 : 2 : <div id="log"></div> 78 : 2 : <script> 79 : 2 : function try_value(value) { 80 : 2 : test(function() { 81 : 2 : var client = new XMLHttpRequest(); 82 : 2 : client.open("GET", "..."); 83 : 2 : assert_throws_dom("SyntaxError", function() { client.setRequestHeader("x-test", value) }, ' given value ' + value+', '); 84 : 2 : }); 85 : 2 : } 86 : 2 : try_value("t\x00t"); 87 : 2 : try_value("t\rt"); 88 : 2 : try_value("t\nt"); 89 : 2 : test(function() { 90 : 2 : var client = new XMLHttpRequest(); 91 : 2 : client.open("GET", "..."); 92 : 2 : assert_throws_js(TypeError, function() { client.setRequestHeader("x-test", "テスト") }, ' given value テスト,'); 93 : 2 : }); 94 : 2 : 95 : 2 : test(function() { 96 : 2 : var client = new XMLHttpRequest() 97 : 2 : client.open("GET", "...") 98 : 2 : assert_throws_js(TypeError, function() { client.setRequestHeader("x-test") }) 99 : 2 : }, 'Omitted value argument') 100 : 2 : </script> 101 : 2 : </body> 102 : 2 : </html> 103 : 2 : 104 : 2 : * 105 : 2 : * setrequestheader-bogus-value.htm 106 : 2 : */