<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: send() - non-empty data argument and GET/HEAD - async, no upload events should fire</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] following::OL[1]/LI[8]" />

  </head>
  <body>
    <div id="log"></div>
    <script>
      function request(method) {
        var test = async_test( document.title + " (" + method + ")")
        var events=[]
        var logEvt = function (e) {
          events.push(e.type)
        }
        var client = new XMLHttpRequest()
        client.open(method, "resources/content.py")
        client.upload.addEventListener('progress', logEvt)
        client.upload.addEventListener('loadend', logEvt)
        client.upload.addEventListener('loadstart', logEvt)
        client.addEventListener('loadend', function(){
          test.step(function(){
            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, [])
            test.done()
          })
        })
        client.send("TEST")
      }
      request("GET")
      request("HEAD")
    </script>
  </body>
</html>