diff options
Diffstat (limited to 'testing/web-platform/tests/loading/early-hints/resources/csp-basic.html')
-rw-r--r-- | testing/web-platform/tests/loading/early-hints/resources/csp-basic.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/testing/web-platform/tests/loading/early-hints/resources/csp-basic.html b/testing/web-platform/tests/loading/early-hints/resources/csp-basic.html new file mode 100644 index 0000000000..0086711fb7 --- /dev/null +++ b/testing/web-platform/tests/loading/early-hints/resources/csp-basic.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="early-hints-helpers.sub.js"></script> +<body> +<script> +const SEARCH_PARAMS = new URLSearchParams(window.location.search); +const EARLY_HINTS_POLICY = SEARCH_PARAMS.get("early-hints-policy"); +const FINAL_POLICY = SEARCH_PARAMS.get("final-policy"); + +function isResourceAllowed() { + return FINAL_POLICY === "absent" || FINAL_POLICY === "allowed"; +} + +function shouldEarlyHintsPreloadResource() { + return EARLY_HINTS_POLICY === "absent" || EARLY_HINTS_POLICY == "allowed"; +} + +promise_test(async (t) => { + const resource_url = SEARCH_PARAMS.get("resource-url"); + if (isResourceAllowed()) { + await fetchScript(resource_url); + const early_hints_preloaded = isPreloadedByEarlyHints(resource_url); + const should_early_hints_preload = shouldEarlyHintsPreloadResource(); + const description = "Early Hints " + + (early_hints_preloaded ? "preloaded" : "didn't preload") + + " the resource, should " + + (should_early_hints_preload ? "" : "not ") + "preload."; + assert_equals(early_hints_preloaded, should_early_hints_preload, + description); + } else { + await promise_rejects_js(t, Error, fetchScript(resource_url)); + } +}, `Early Hints CSP: Early Hints policy = ${EARLY_HINTS_POLICY}, final response policy = ${FINAL_POLICY}.`); +</script> +</body> |