<!DOCTYPE HTML>
<html>
<head>
  <title>
    Test that NEL reports are not sent for cached responses that don't hit the
    network
  </title>
  <script src='/resources/testharness.js'></script>
  <script src='/resources/testharnessreport.js'></script>
  <script src='./support/nel.sub.js'></script>
</head>
<body>
  <script>
    nel_test(async t => {
      // Fetch a resource that can be cached without validation.  Do this
      // *before* fetching the NEL policy for this origin, to ensure that we
      // don't generate any report about this request.
      await fetchCachedResource();
      // Fetch the NEL policy for this origin.
      await fetchResourceWithBasicPolicy();
      // Fetch the now-cached resource again.  This should not generate a new
      // network request.
      await fetchCachedResource();
      // Because the cached request did not generate a network request, we
      // should never receive a report about the request.
      assert_false(await reportExists({
        url: getURLForCachedResource(),
        type: "network-error",
      }));
    });
  </script>
</body>
</html>
