summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resource-timing/sizes-redirect-img.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/resource-timing/sizes-redirect-img.html
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/resource-timing/sizes-redirect-img.html')
-rw-r--r--testing/web-platform/tests/resource-timing/sizes-redirect-img.html57
1 files changed, 57 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resource-timing/sizes-redirect-img.html b/testing/web-platform/tests/resource-timing/sizes-redirect-img.html
new file mode 100644
index 0000000000..e440029782
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/sizes-redirect-img.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/sizes-helper.js"></script>
+<script src="resources/resource-loaders.js"></script>
+<script src="resources/entry-invariants.js"></script>
+<script>
+// Redirects for fetch() always apply CORS rules, whereas normal resources
+// don't, so this test covers extra code paths beyond those covered by
+// resource-timing-sizes-redirect.html.
+
+const baseUrl = new URL('/resource-timing/resources/TAOResponse.py?tao=wildcard&img=true', location.href).href;
+
+const expectedSize = 1010;
+
+const hostInfo = get_host_info();
+
+const redirectUrl = (redirectSourceOrigin, targetUrl) => {
+ return redirectSourceOrigin +
+ '/resource-timing/resources/redirect-cors.py?allow_origin=*&timing_allow_origin=*' +
+ '&location=' + encodeURIComponent(targetUrl);
+};
+
+const verify_entry = entry => {
+ checkSizeFields(entry, expectedSize, expectedSize + headerSize);
+};
+
+attribute_test(load.image, baseUrl,
+ verify_entry,
+ "PerformanceResourceTiming sizes redirect image - direct URL");
+
+attribute_test(load.image,
+ redirectUrl(hostInfo.HTTP_ORIGIN, baseUrl),
+ verify_entry,
+ "PerformanceResourceTiming sizes redirect image - same origin redirect");
+
+attribute_test(load.image_cors,
+ redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN, baseUrl),
+ verify_entry,
+ "PerformanceResourceTiming sizes redirect image - cross origin redirect");
+
+attribute_test(load.image_cors,
+ redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN,
+ redirectUrl(hostInfo.HTTP_ORIGIN, baseUrl)),
+ verify_entry,
+ "PerformanceResourceTiming sizes redirect image - cross origin to same origin redirect");
+
+attribute_test(load.image_cors,
+ redirectUrl(hostInfo.HTTP_ORIGIN,
+ redirectUrl(hostInfo.HTTP_REMOTE_ORIGIN,
+ redirectUrl(hostInfo.HTTP_ORIGIN,
+ baseUrl))),
+ verify_entry,
+ "PerformanceResourceTiming sizes redirect image - same origin to remote " +
+ "origin to same origin redirect");
+</script>