<!DOCTYPE HTML>
<html>
<head>
<title>
Test that NEL reports are sent for cache validation requests
</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, but whose response requires
// validation. Do this *before* fetching the NEL policy for this origin,
// to ensure that we don't generate any report about this request.
await fetchValidatedCachedResource();
// Fetch the NEL policy for this origin.
await fetchResourceWithBasicPolicy();
// Fetch the now-cached resource again. Because the response requires
// validation, this will result in a network request.
await fetchValidatedCachedResource();
// We should receive a report about the cache validation request.
assert_true(await reportExists({
url: getURLForValidatedCachedResource(),
user_agent: navigator.userAgent,
type: "network-error",
body: {
method: "GET",
sampling_fraction: 1.0,
status_code: 304,
phase: "application",
type: "ok",
},
metadata: {
content_type: "application/reports+json",
},
}));
});
</script>
</body>
</html>