<!DOCTYPE html>
<html>
  <head>
    <title>Tests that CORS-safelisted response headers are permitted in cross-origin request</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">
    test(function() {
      const xhr = new XMLHttpRequest;

      xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN +
          "/XMLHttpRequest/resources/access-control-basic-whitelist-response-headers.py", false);
      xhr.send();

      assert_not_equals(xhr.getResponseHeader("cache-control"), null);
      assert_not_equals(xhr.getResponseHeader("content-language"), null);
      assert_not_equals(xhr.getResponseHeader("content-type"), null);
      assert_not_equals(xhr.getResponseHeader("expires"), null);
      assert_not_equals(xhr.getResponseHeader("last-modified"), null);
      assert_not_equals(xhr.getResponseHeader("pragma"), null);
      assert_equals(xhr.getResponseHeader("x-webkit"), null);

      assert_not_equals(xhr.getAllResponseHeaders().match("en"), null);
      assert_equals(xhr.getAllResponseHeaders().match("foobar"), null);
    }, "Response with CORS-safelisted headers");
    </script>
  </body>
</html>
