summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/fetch/test_fetch_csp_block.html
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /dom/tests/mochitest/fetch/test_fetch_csp_block.html
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/tests/mochitest/fetch/test_fetch_csp_block.html')
-rw-r--r--dom/tests/mochitest/fetch/test_fetch_csp_block.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/tests/mochitest/fetch/test_fetch_csp_block.html b/dom/tests/mochitest/fetch/test_fetch_csp_block.html
new file mode 100644
index 0000000000..0347c7319e
--- /dev/null
+++ b/dom/tests/mochitest/fetch/test_fetch_csp_block.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test fetch() rejects when CSP blocks</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<script type="application/javascript">
+SimpleTest.waitForExplicitFinish();
+
+function withFrame(url) {
+ return new Promise(resolve => {
+ let frame = document.createElement('iframe');
+ frame.addEventListener('load', _ => {
+ resolve(frame);
+ }, { once: true });
+ frame.src = url;
+ document.body.appendChild(frame);
+ });
+}
+
+function asyncTest(frame) {
+ return new Promise((resolve, reject) => {
+ addEventListener('message', evt => {
+ if (evt.data === 'REJECTED') {
+ resolve();
+ } else {
+ reject();
+ }
+ }, { once: true });
+ frame.contentWindow.postMessage('GO', '*');
+ });
+}
+
+withFrame('file_fetch_csp_block_frame.html').then(frame => {
+ asyncTest(frame).then(_ => {
+ ok(true, 'fetch rejected correctly');
+ }).catch(e => {
+ ok(false, 'fetch resolved when it should have been CSP blocked');
+ }).then(_ => {
+ frame.remove();
+ SimpleTest.finish();
+ });
+});
+
+</script>
+</body>
+</html>