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