<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: send() - "Basic" authenticated CORS request using setRequestHeader() (expects to succeed)</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/common/utils.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <script>
      async_test(test => {
        var client = new XMLHttpRequest(),
            urlstart = location.host + location.pathname.replace(/\/[^\/]*$/, '/'),
            user = token()
        client.open("GET", location.protocol+'//www1.'+urlstart + "resources/auth2/corsenabled.py", false)
        client.withCredentials = true
        client.setRequestHeader("x-user", user)
        client.setRequestHeader("x-pass", 'pass')
        client.setRequestHeader('Authorization', 'Basic ' + btoa(user + ":pass"))
        client.onload = test.step_func_done(() => {
            assert_equals(client.responseText, user + '\npass', 'responseText should contain the right user and password')
            assert_equals(client.status, 200)
            assert_equals(client.getResponseHeader('x-challenge'), 'DID-NOT')
        })
        client.send(null)
      })
    </script>
  </body>
</html>
