summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/beacon
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /testing/web-platform/tests/beacon
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-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.html25
-rw-r--r--testing/web-platform/tests/beacon/headers/header-referrer.js21
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);