<!DOCTYPE html>
<html>
  <head>
    <title>Test CORS response with 'Access-Control-Expose-Headers' header</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/common/get-host-info.sub.js"></script>
  </head>
  <body>
    <script type="text/javascript">
async_test((test) => {
  const xhr = new XMLHttpRequest;

  xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN +
      "/xhr/resources/pass.txt?pipe=" +
      "header(Cache-Control,no-cache)|" +
      "header(Access-Control-Max-Age,0)|" +
      "header(Access-Control-Allow-Origin,*)|" +
      "header(X-foo,BAR)|" +
      "header(x-test,TEST)|" +
      "header(Access-Control-Expose-Headers,x-Foo)|",
      "header(Content-Type,text/html)");

  xhr.onerror = test.unreached_func("Unexpected error");

  xhr.onload = test.step_func_done(() => {
    assert_equals(xhr.status, 200);
    assert_equals(xhr.getResponseHeader("X-FOO"), "BAR");
    assert_equals(xhr.getResponseHeader("x-foo"), "BAR");
    assert_equals(xhr.getResponseHeader("x-test"), null);
    assert_equals(xhr.responseText, "PASS\n");
  });

  xhr.send();
});
    </script>
  </body>
</html>
