diff options
Diffstat (limited to 'testing/web-platform/tests/attribution-reporting/referrer-policy.sub.https.html')
-rw-r--r-- | testing/web-platform/tests/attribution-reporting/referrer-policy.sub.https.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/testing/web-platform/tests/attribution-reporting/referrer-policy.sub.https.html b/testing/web-platform/tests/attribution-reporting/referrer-policy.sub.https.html new file mode 100644 index 0000000000..ee4e0c9a8c --- /dev/null +++ b/testing/web-platform/tests/attribution-reporting/referrer-policy.sub.https.html @@ -0,0 +1,56 @@ +<!doctype html> +<meta charset=utf-8> +<meta name=timeout content=long> +<meta name=variant content="?method=a"> +<meta name=variant content="?method=a&noreferrer"> +<meta name=variant content="?method=img"> +<meta name=variant content="?method=img&noreferrer"> +<meta name=variant content="?method=open"> +<meta name=variant content="?method=open&noreferrer"> +<meta name=variant content="?method=script"> +<meta name=variant content="?method=script&noreferrer"> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/helpers.js"></script> +<body> +<script> +const waitForRequest = async () => { + const url = blankURL(); + url.searchParams.set('get-requests', 'true'); + + for (let i = 0; i < 20; i++) { + const resp = await fetch(url); + const payload = await resp.json(); + if (payload !== null && payload.length > 0) { + return payload; + } + await delay(100); + } + throw new Error('Timeout polling requests'); +}; + +const searchParams = new URLSearchParams(location.search); + +promise_test(async t => { + const noreferrer = searchParams.has('noreferrer'); + + await registerAttributionSrc({ + method: 'variant', + extraQueryParams: {'store-request': 'true'}, + referrerPolicy: noreferrer ? 'no-referrer' : '', + }); + + const requests = await waitForRequest(); + assert_equals(requests.length, 1); + + if (noreferrer) { + assert_not_own_property(requests[0], 'referer'); + } else { + assert_own_property(requests[0], 'referer'); + assert_equals(requests[0].referer, location.toString()); + } + +}, 'attributionsrc referrer policy is propagated.'); +</script> |