<!DOCTYPE html>
<html>
  <head>
    <title>XMLHttpRequest: setRequestHeader() - Content-Type header</title>
    <meta name="timeout" content="long">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method">
  </head>
  <body>
    <div id="log"></div>
    <script>
      function request(inputGenerator, headersToSend, expectedType, title) {
        test(function() {
          const toSend = inputGenerator(),
                client = new XMLHttpRequest()
          client.open("POST", "resources/inspect-headers.py?filter_name=Content-Type", false)
          for(header in headersToSend) {
            if (headersToSend.hasOwnProperty(header)) {
              client.setRequestHeader(header, headersToSend[header]);
            }
          }
          client.send(toSend)

          const actual = client.responseText
          if (expectedType === undefined || expectedType === null) {
            assert_equals(actual, "");
          } else if (expectedType instanceof RegExp) {
            assert_regexp_match(actual, expectedType);
          } else {
            assert_equals(actual, "Content-Type: " + expectedType + "\n");
          }
        }, title)
      }
      request(
        function _String() { return ""; },
        {"Content-Type": ""},
        "",
        'setRequestHeader("") sends a blank string'
      )
      request(
        function _String() { return ""; },
        {"Content-Type": " "},
        "",
        'setRequestHeader(" ") sends the string " "'
      )
      request(
        function _String() { return ""; },
        {"Content-Type": null},
        "null",
        'setRequestHeader(null) sends the string "null"'
      )
      request(
        function _String() { return ""; },
        {"Content-Type": undefined},
        "undefined",
        'setRequestHeader(undefined) sends the string "undefined"'
      )
      request(
        function _String() { return "test"; },
        {},
        "text/plain;charset=UTF-8",
        'String request has correct default Content-Type of "text/plain;charset=UTF-8"'
      )
      request(
        function _String() { return "test()"; },
        {"Content-Type": "text/javascript;charset=ASCII"},
        "text/javascript;charset=UTF-8",
        "String request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8"
      )
      request(
        function _XMLDocument() { return new DOMParser().parseFromString("<xml/>", "application/xml"); },
        {"Content-Type": ""},
        "",
        'XML Document request respects setRequestHeader("")'
      )
      request(
        function _XMLDocument() { return new DOMParser().parseFromString("<xml/>", "application/xml"); },
        {},
        "application/xml;charset=UTF-8",
        'XML Document request has correct default Content-Type of "application/xml;charset=UTF-8"'
      )
      request(
        function _XMLDocument() { return new DOMParser().parseFromString("<xml/>", "application/xml"); },
        {"Content-Type": "application/xhtml+xml;charset=ASCII"},
        "application/xhtml+xml;charset=UTF-8",
        "XML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8"
      )
      request(
        function _HTMLDocument() { return new DOMParser().parseFromString("<html></html>", "text/html"); },
        {"Content-Type": ""},
        "",
        'HTML Document request respects setRequestHeader("")'
      )
      request(
        function _HTMLDocument() { return new DOMParser().parseFromString("<html></html>", "text/html"); },
        {},
        "text/html;charset=UTF-8",
        'HTML Document request has correct default Content-Type of "text/html;charset=UTF-8"'
      )
      request(
        function _HTMLDocument() { return new DOMParser().parseFromString("<html></html>", "text/html"); },
        {"Content-Type": "text/html+junk;charset=ASCII"},
        "text/html+junk;charset=UTF-8",
        "HTML Document request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8"
      )
      request(
        function _Blob() { return new Blob(["test"]); },
        {"Content-Type": ""},
        "",
        'Blob request respects setRequestHeader("") to be specified'
      )
      request(
        function _Blob() { return new Blob(["test"]); },
        {},
        undefined,
        "Blob request with unset type sends no Content-Type without setRequestHeader() call"
      )
      request(
        function _Blob() { return new Blob(["test"]); },
        {"Content-Type": "application/xml;charset=ASCII"},
        "application/xml;charset=ASCII",
        "Blob request with unset type keeps setRequestHeader() Content-Type and charset"
      )
      request(
        function _Blob() { return new Blob(["<xml/>"], {type : "application/xml;charset=ASCII"}); },
        {"Content-Type": ""},
        "",
        'Blob request with set type respects setRequestHeader("") to be specified'
      )
      request(
        function _Blob() { return new Blob(["<xml/>"], {type : "application/xml;charset=ASCII"}); },
        {},
        "application/xml;charset=ascii", // new Blob lowercases the type argument
        "Blob request with set type uses that it for Content-Type unless setRequestHeader()"
      )
      request(
        function _Blob() { return new Blob(["<xml/>"], {type : "application/xml;charset=UTF8"}); },
        {"Content-Type": "application/xml+junk;charset=ASCII"},
        "application/xml+junk;charset=ASCII",
        "Blob request with set type keeps setRequestHeader() Content-Type and charset"
      )
      request(
        function _ArrayBuffer() { return new ArrayBuffer(10); },
        {"Content-Type": ""},
        "",
        'ArrayBuffer request respects setRequestHeader("")'
      )
      request(
        function _ArrayBuffer() { return new ArrayBuffer(10); },
        {},
        undefined,
        "ArrayBuffer request sends no Content-Type without setRequestHeader() call"
      )
      request(
        function _ArrayBuffer() { return new ArrayBuffer(10); },
        {"Content-Type": "application/xml;charset=ASCII"},
        "application/xml;charset=ASCII",
        "ArrayBuffer request keeps setRequestHeader() Content-Type and charset"
      )
      request(
        function _Uint8Array() { return new Uint8Array(new ArrayBuffer(10)); },
        {"Content-Type": ""},
        "",
        'ArrayBufferView request respects setRequestHeader("")'
      )
      request(
        function _Uint8Array() { return new Uint8Array(new ArrayBuffer(10)); },
        {},
        undefined,
        "ArrayBufferView request sends no Content-Type without setRequestHeader() call"
      )
      request(
        function _Uint8Array() { return new Uint8Array(new ArrayBuffer(10)); },
        {"Content-Type": "application/xml;charset=ASCII"},
        "application/xml;charset=ASCII",
        "ArrayBufferView request keeps setRequestHeader() Content-Type and charset"
      )
      request(
        function _FormData() { return new FormData(); },
        {"Content-Type": ""},
        "",
        'FormData request respects setRequestHeader("")'
      )
      request(
        function _FormData() { return new FormData(); },
        {},
        /multipart\/form-data; boundary=(.*)/,
        'FormData request has correct default Content-Type of "multipart\/form-data; boundary=_"'
      )
      request(
        function _FormData() { return new FormData(); },
        {"Content-Type": "application/xml;charset=ASCII"},
        "application/xml;charset=ASCII",
        "FormData request keeps setRequestHeader() Content-Type and charset"
      )
      request(
        function _URLSearchParams() { return new URLSearchParams("q=testQ&topic=testTopic") },
        {"Content-Type": ""},
        "",
        'URLSearchParams respects setRequestHeader("")'
      )
      request(
        function _URLSearchParams() { return new URLSearchParams("q=testQ&topic=testTopic") },
        {},
        "application/x-www-form-urlencoded;charset=UTF-8",
        'URLSearchParams request has correct default Content-Type of "application/x-www-form-urlencoded;charset=UTF-8"'
      )
      request(
        function _URLSearchParams() { return new URLSearchParams("q=testQ&topic=testTopic") },
        {"Content-Type": "application/xml;charset=ASCII"},
        "application/xml;charset=UTF-8",
        "URLSearchParams request keeps setRequestHeader() Content-Type, with charset adjusted to UTF-8"
        // the default Content-Type for URLSearchParams has a charset specified (utf-8) in
        // https://fetch.spec.whatwg.org/#bodyinit, so the user's must be changed to match it
        // as per https://xhr.spec.whatwg.org/#the-send%28%29-method step 4.
      )
    </script>
  </body>
</html>
