<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: send() - non-empty data argument and GET/HEAD</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
        <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::OL[1]/LI[3] following::OL[1]/LI[7]" />  

  </head>
  <body>
    <div id="log"></div>
    <script>
      function request(method) {
        test(function() {
          var events=[]
          var logEvt = function (e) {
            events.push(e.type)
          }
          var client = new XMLHttpRequest()
          client.open(method, "resources/content.py", false)
          client.send("TEST")
          client.upload.addEventListener('progress', logEvt)
          client.upload.addEventListener('loadend', logEvt)
          client.upload.addEventListener('loadstart', logEvt)

          if (method === "HEAD") {
            // Fetch 4.4.3 --- Set Content-Length to 0 if method is HEAD and
            // request's body is null.
            assert_equals(client.getResponseHeader("x-request-content-length"), "0")
          } else {
            assert_equals(client.getResponseHeader("x-request-content-length"), "NO")
          }
          assert_equals(client.getResponseHeader("x-request-method"), method)
          assert_equals(client.responseText, "")
          assert_array_equals(events, [])
        }, document.title + " (" + method + ")")
      }
      request("GET")
      request("HEAD")
    </script>
  </body>
</html>
