<!DOCTYPE html>
<html>
  <head>
    <title>Tests CORS denying resource without Access-Control-Allow-Origin 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">
    const path = "/xhr/resources/access-control-basic-denied.py";

    test(function() {
      const xhr = new XMLHttpRequest;

      xhr.open("GET", get_host_info().HTTP_ORIGIN + path, false);
      xhr.send();
      assert_equals(xhr.status, 200);
    }, "Same-origin request accepted");

    test(function() {
      const xhr = new XMLHttpRequest;

      xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN + path, false);
      assert_throws_dom("NetworkError", () => xhr.send());
      assert_equals(xhr.status, 0);
    }, "Cross-origin request denied");
    </script>
  </body>
</html>
