diff options
Diffstat (limited to 'testing/web-platform/tests/signed-exchange/reporting/sxg-reporting-navigation-failed-zero-success-fraction.tentative.html')
-rw-r--r-- | testing/web-platform/tests/signed-exchange/reporting/sxg-reporting-navigation-failed-zero-success-fraction.tentative.html | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/testing/web-platform/tests/signed-exchange/reporting/sxg-reporting-navigation-failed-zero-success-fraction.tentative.html b/testing/web-platform/tests/signed-exchange/reporting/sxg-reporting-navigation-failed-zero-success-fraction.tentative.html new file mode 100644 index 0000000000..a92735f714 --- /dev/null +++ b/testing/web-platform/tests/signed-exchange/reporting/sxg-reporting-navigation-failed-zero-success-fraction.tentative.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<title>SXG reporting test of sxg.failed for navigation (zero success fraction)</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="/network-error-logging/support/nel.sub.js"></script> +<script src="../resources/sxg-util.js"></script> +<body> +<script> +const alt_origin = get_host_info().HTTPS_NOTSAMESITE_ORIGIN; +const test_origin = get_host_info().HTTPS_ORIGIN; + +nel_iframe_test(async t => { + await loadResourceWithZeroSuccessFractionPolicyInIframe(); + const sxg_url = + alt_origin + '/signed-exchange/resources/sxg/sxg-cert-not-found.sxg?navigation'; + const cert_url = test_origin + '/signed-exchange/resources/not_found_certfile.cbor'; + const message = await openSXGInIframeAndWaitForMessage(t, sxg_url); + assert_equals(message.location, + innerURLOrigin() + '/signed-exchange/resources/inner-url.html'); + assert_true(message.is_fallback); + assert_true(await reportExists( + { + url: sxg_url, + user_agent: navigator.userAgent, + type: "network-error", + body: { + phase: "sxg", + // The origin of this SXG's certURL is different from the reporting + // origin. So the report must be downgraded. + type: "sxg.failed", + elapsed_time: 0, + status_code: 200, + referrer: location.origin + '/', + sxg: { + outer_url: sxg_url, + inner_url: + innerURLOrigin() + '/signed-exchange/resources/inner-url.html', + cert_url: cert_url + } + }, + metadata: { + content_type: "application/reports+json", + }, + } + ), 'SXG error reporting must be downgraded when the cert URL is different ' + + 'from the reporting origin'); + assert_false(await reportExists( + { + url: sxg_url, + user_agent: navigator.userAgent, + type: "network-error", + body: { + phase: "application", + type: "ok", + status_code: 200, + referrer: location.origin + '/', + }, + metadata: { + content_type: "application/reports+json", + }, + } + ), 'Succeeded normal NEL report should not be sent when success fraction ' + + 'is zero.'); +}, 'SXG error report must be downgraded when the cert URL is different from ' + + 'the reporting origin. And succeeded normal NEL report should not be sent ' + + ' when success fraction is zero.'); +</script> +</body> |