summaryrefslogtreecommitdiffstats
path: root/dom/security/test/csp/test_multipartchannel.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/security/test/csp/test_multipartchannel.html')
-rw-r--r--dom/security/test/csp/test_multipartchannel.html68
1 files changed, 68 insertions, 0 deletions
diff --git a/dom/security/test/csp/test_multipartchannel.html b/dom/security/test/csp/test_multipartchannel.html
new file mode 100644
index 0000000000..2708611e6d
--- /dev/null
+++ b/dom/security/test/csp/test_multipartchannel.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Bug 1416045/Bug 1223743 - CSP: Check baseChannel for CSP when loading multipart channel</title>
+ <!-- Including SimpleTest.js so we can use waitForExplicitFinish !-->
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<iframe style="width:100%;" id="testframe"></iframe>
+<iframe style="width:100%;" id="testPartCSPframe"></iframe>
+
+<script class="testbody" type="text/javascript">
+
+var testsToRunMultipartCSP = {
+ rootCSP_test: false,
+ part1CSP_test: false,
+ part2CSP_test: false,
+};
+
+SimpleTest.waitForExplicitFinish();
+
+function checkTestsCompleted() {
+ for (var prop in testsToRunMultipartCSP) {
+ // some test hasn't run yet so we're not done
+ if (!testsToRunMultipartCSP[prop]) {
+ return;
+ }
+ }
+ window.removeEventListener("message", receiveMessage);
+ SimpleTest.finish();
+}
+/* Description of the test:
+ * We apply a CSP to a multipart channel and then try to load an image
+ * within a segment making sure the image is blocked correctly by CSP.
+ * We also provide CSP for each part and try to load an image in each
+ * part and make sure the image is loaded in first part and blocked in
+ * second part correctly based on its CSP accordingly.
+ */
+
+window.addEventListener("message", receiveMessage);
+function receiveMessage(event) {
+ switch (event.data.test) {
+ case "rootCSP_test":
+ is(event.data.msg, "img-blocked", "image should be blocked");
+ testsToRunMultipartCSP.rootCSP_test = true;
+ break;
+ case "part1CSP_test":
+ is(event.data.msg, "part1-img-loaded", "Part1 image should be loaded");
+ testsToRunMultipartCSP.part1CSP_test = true;
+ break;
+ case "part2CSP_test":
+ is(event.data.msg, "part2-img-blocked", "Part2 image should be blocked");
+ testsToRunMultipartCSP.part2CSP_test = true;
+ break;
+ }
+ checkTestsCompleted();
+}
+
+// start the test
+document.getElementById("testframe").src = "file_multipart_testserver.sjs?doc";
+document.getElementById("testPartCSPframe").src =
+ "file_multipart_testserver.sjs?partcspdoc";
+
+</script>
+</body>
+</html>