<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: setRequestHeader() after send()</title>
    <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[2]" />  
  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test()
      test.step(function() {
        var client = new XMLHttpRequest()
        client.open("GET", "resources/delay.py?ms=0")
        client.onreadystatechange = function() {
          test.step(function() {
            assert_throws("InvalidStateError", function() { client.setRequestHeader("x-test", "test") })
            if(client.readyState == 4)
              test.done()
          })
        }
        client.send(null)
      })
    </script>
  </body>
</html>
