| <!doctype html> | |
| <html> | |
| <head> | |
| <title>XMLHttpRequest: setRequestHeader() name argument checks</title> | |
| <meta charset="utf-8"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="/following::ol/li[3]" /> | |
| </head> | |
| <body> | |
| <div id="log"></div> | |
| <!-- | |
| CHAR = <any US-ASCII character (octets 0 - 127)> | |
| CTL = <any US-ASCII control character | |
| (octets 0 - 31) and DEL (127)> | |
| SP = <US-ASCII SP, space (32)> | |
| HT = <US-ASCII HT, horizontal-tab (9)> | |
| token = 1*<any CHAR except CTLs or separators> | |
| separators = "(" | ")" | "<" | ">" | "@" | |
| | "," | ";" | ":" | "\" | <"> | |
| | "/" | "[" | "]" | "?" | "=" | |
| | "{" | "}" | SP | HT | |
| field-name = token | |
| --> | |
| <script> | |
| function try_name(name) { | |
| test(function() { | |
| var client = new XMLHttpRequest() | |
| client.open("GET", "...") | |
| assert_throws("SyntaxError", function() { client.setRequestHeader(name, 'x-value') }) | |
| }, "setRequestHeader should throw with header name " + format_value(invalid_headers[i]) + ".") | |
| } | |
| var invalid_headers = ["(", ")", "<", ">", "@", ",", ";", ":", "\\", | |
| "\"", "/", "[", "]", "?", "=", "{", "}", " ", | |
| /* HT already tested in the loop below */ | |
| "\u007f", "テスト", "", "t\rt", "t\nt", "t: t", "t:t", | |
| "t<t", "t t", " tt", ":tt", "\ttt", "\vtt", "t\0t", | |
| "t\"t", "t,t", "t;t", "()[]{}", "a?B", "X-テスト", "a=B"] | |
| for (var i = 0; i < 32; ++i) { | |
| invalid_headers.push(String.fromCharCode(i)) | |
| } | |
| for (var i = 0; i < invalid_headers.length; ++i) { | |
| try_name(invalid_headers[i]) | |
| } | |
| </script> | |
| </body> | |
| </html> |