<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: open() after setRequestHeader()</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method" data-tested-assertations="following::ol/li[14]/ul/li[4]" />

  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test()
      test.step(function() {
        var client = new XMLHttpRequest()
        client.onreadystatechange = function() {
          test.step(function() {
            if(client.readyState === 4){
              assert_equals(client.responseText, '')
              test.done()
            }
          })
        }
        client.open("GET", "resources/inspect-headers.py?filter_name=X-foo")
        assert_equals(client.readyState, 1)
        client.setRequestHeader('X-foo', 'bar')
        client.open("GET", "resources/inspect-headers.py?filter_name=X-foo")
        assert_equals(client.readyState, 1)
        client.send()
      })
    </script>
  </body>
</html>
