<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: open() after abort()</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[15] following::ol/li[15]/ol/li[1] following::ol/li[15]/ol/li[2]" />
  </head>
  <body>
    <div id="log"></div>
    <script>
      var test = async_test()
      test.step(function() {
        var client = new XMLHttpRequest(),
            result = [],
            expected = [1,  4, 1] // open() -> 1, 
                                    // abort() -> 4, open() -> 1
        client.onreadystatechange = function() {
          test.step(function() {
            result.push(client.readyState)
          })
        }
        client.open("GET", "resources/well-formed.xml")
        assert_equals(client.readyState, 1)
        client.send(null)
        client.abort()
        assert_equals(client.readyState, 0)
        client.open("GET", "resources/well-formed.xml")
        assert_equals(client.readyState, 1)
        assert_array_equals(result, expected)
      })
      test.done()
    </script>
  </body>
</html>
