diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:13:27 +0000 |
commit | 40a355a42d4a9444dc753c04c6608dade2f06a23 (patch) | |
tree | 871fc667d2de662f171103ce5ec067014ef85e61 /testing/web-platform/tests/beacon | |
parent | Adding upstream version 124.0.1. (diff) | |
download | firefox-40a355a42d4a9444dc753c04c6608dade2f06a23.tar.xz firefox-40a355a42d4a9444dc753c04c6608dade2f06a23.zip |
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/beacon')
-rw-r--r-- | testing/web-platform/tests/beacon/headers/header-origin-same-origin.html | 25 | ||||
-rw-r--r-- | testing/web-platform/tests/beacon/headers/header-referrer.js | 21 |
2 files changed, 43 insertions, 3 deletions
diff --git a/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html b/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html new file mode 100644 index 0000000000..7c1bb2ce9a --- /dev/null +++ b/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html @@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <title>SendBeacon Origin Header Same Origin Policy</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <meta name='referrer' content='same-origin'> + </head> + <body> + <script src="/common/utils.js"></script> + <script src="/common/get-host-info.sub.js"></script> + <script src="header-referrer.js"></script> + <script> + var testBase = RESOURCES_DIR; + const addBody = true; + testOriginHeader(testBase, window.location.origin); + testOriginHeader(testBase, window.location.origin, addBody); + + testBase = get_host_info().HTTP_REMOTE_ORIGIN + RESOURCES_DIR; + testOriginHeader(testBase, "null"); + testOriginHeader(testBase, "null", addBody); + </script> + </body> +</html> diff --git a/testing/web-platform/tests/beacon/headers/header-referrer.js b/testing/web-platform/tests/beacon/headers/header-referrer.js index ebd67df1d7..1e9d4f697d 100644 --- a/testing/web-platform/tests/beacon/headers/header-referrer.js +++ b/testing/web-platform/tests/beacon/headers/header-referrer.js @@ -18,17 +18,32 @@ function testReferrerHeader(testBase, expectedReferrer, mayBeBlockedAsMixedConte }, "Test referer header " + testBase); } +function testOriginHeader(testBase, expectedOrigin, addBody) { + var id = self.token(); + var testUrl = testBase + "inspect-header.py?header=origin&cmd=put&id=" + id; + + promise_test(function(test) { + const sentBeacon = navigator.sendBeacon(testUrl, addBody ? "data" : undefined); + assert_true(sentBeacon, "SendBeacon Succeeded"); + return pollResult(expectedOrigin, id, "origin") .then(result => { + assert_equals(result, expectedOrigin, "Correct origin header result"); + }); + }, "Test origin header " + testBase + (addBody ? " - with body" : " - without body")); +} + // SendBeacon is an asynchronous and non-blocking request to a web server. // We may have to create a poll loop to get result from server -function pollResult(expectedReferrer, id) { - var checkUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=get&id=" + id; +function pollResult(expectedReferrer, id, headerName) { + if (!headerName) + headerName = "referer"; + var checkUrl = RESOURCES_DIR + "inspect-header.py?header=" + headerName + "&cmd=get&id=" + id; return new Promise(resolve => { function checkResult() { fetch(checkUrl).then( function(response) { assert_equals(response.status, 200, "Inspect header response's status is 200"); - let result = response.headers.get("x-request-referer"); + let result = response.headers.get("x-request-" + headerName); if (result != undefined) { resolve(result); |