| <!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> |