<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: send() - Redirects (no Location header)</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dl[1]/dt[2]" />
    <!--
      NOTE: the XHR spec does not really handle this scenario. It's handled in the Fetch spec:
      "If response's headers do not contain a header whose name is Location, return response."
     -->
  </head>
  <body>
    <div id="log"></div>
    <script>
      function redirect(code) {
        var test = async_test(document.title + " (" + code + ")")
        test.step(function() {
          var client = new XMLHttpRequest()
          client.onreadystatechange = function() {
            test.step(function() {
              if(client.readyState == 4) {
                assert_equals(client.status + "", code)
                assert_equals(client.statusText, "ABE ODDYSSEE")
                assert_equals(client.responseXML.documentElement.localName, "x")
                test.done()
              }
            })
          }
          client.open("GET", "resources/status.py?content=<x>x<\/x>&type=text/xml&text=ABE ODDYSSEE&code=" + code)
          client.send(null)
        })
      }
      redirect("301")
      redirect("302")
      redirect("303")
      redirect("307")
    </script>
  </body>
</html>
