<!DOCTYPE html>
<html>
<head>
<title>Referrer with the no-referrer policy</title>
<meta name="referrer" content="no-referrer">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script type="module">

// "name" parameter is necessary for bypassing the module map.

import { referrer as referrerSame } from "./resources/referrer-checker.py?name=same";

import { referrer as referrerRemote } from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/module/resources/referrer-checker.py?name=remote";

import { referrer as referrerSameSame } from "./resources/import-referrer-checker.sub.js?name=same_same";

import { referrer as referrerSameRemote } from "./resources/import-remote-origin-referrer-checker.sub.js?name=same_remote";

import { referrer as referrerRemoteRemote } from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/module/resources/import-referrer-checker.sub.js?name=remote_remote";

import { referrer as referrerRemoteSame } from "http://{{domains[www1]}}:{{ports[http][0]}}/html/semantics/scripting-1/the-script-element/module/resources/import-same-origin-referrer-checker-from-remote-origin.sub.js?name=remote_same";

test(t => {
  assert_equals(
      referrerSame, "",
      "Referrer should not be sent for the same-origin top-level script.");
}, "Importing a same-origin top-level script with the no-referrer policy.");

test(t => {
  assert_equals(
      referrerRemote, "",
      "Referrer should not be sent for the remote-origin top-level script.");
}, "Importing a remote-origin top-level script with the no-referrer policy.");

test(t => {
  assert_equals(
      referrerSameSame, "",
      "Referrer should not be sent for the same-origin descendant script.");
}, "Importing a same-origin descendant script from a same-origin top-level " +
   "script with the no-referrer policy.");

test(t => {
  assert_equals(
      referrerSameRemote, "",
      "Referrer should not be sent for the remote-origin descendant script.");
}, "Importing a remote-origin descendant script from a same-origin top-level " +
   "script with the no-referrer policy.");

test(t => {
  assert_equals(
      referrerRemoteRemote, "",
      "Referrer should not be sent for the remote-origin descendant script.");
}, "Importing a remote-origin descendant script from a remote-origin " +
   "top-level script with the no-referrer policy.");

test(t => {
  assert_equals(
      referrerRemoteSame, "",
      "Referrer should not be sent for the same-origin descendant script.");
}, "Importing a same-origin descendant script from a remote-origin " +
   "top-level script with the no-referrer policy.");

</script>
</body>
</html>
