summaryrefslogtreecommitdiffstats
path: root/dom/websocket/tests/test_websocket_mixed_content_blob.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/websocket/tests/test_websocket_mixed_content_blob.html')
-rw-r--r--dom/websocket/tests/test_websocket_mixed_content_blob.html76
1 files changed, 76 insertions, 0 deletions
diff --git a/dom/websocket/tests/test_websocket_mixed_content_blob.html b/dom/websocket/tests/test_websocket_mixed_content_blob.html
new file mode 100644
index 0000000000..160ef4f5de
--- /dev/null
+++ b/dom/websocket/tests/test_websocket_mixed_content_blob.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></meta>
+ <title>WebSocket mixed content tests - load secure and insecure websockets</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+
+ <script type="text/javascript" src="websocket_helpers.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<div id="container"></div>
+<script class="testbody" type="text/javascript">
+
+let testsCompleted = 0;
+const numberOfTestCases = 2;
+
+function markTestCaseComplete() {
+ testsCompleted++;
+
+ if (testsCompleted == numberOfTestCases) {
+ SimpleTest.finish();
+ }
+}
+
+onmessage = (event) => {
+ if (event.data.method === "ws://mochi.test:8888") {
+ is(event.data.result, "SecurityError", "SecurityError should be received from insecure websocket creation in Secure Context.");
+ markTestCaseComplete();
+ }
+ else if (event.data.method === "wss://example.com") {
+ is(event.data.result, "WS onopen", "onopen method should be run from secure websocket creation in Secure Context.");
+ markTestCaseComplete();
+ }
+}
+
+function testWebSocketBlob (method) {
+ let blob = URL.createObjectURL(
+ new Blob(
+ [`<!DOCTYPE html><script>
+ try {
+ let socket = new WebSocket("${method}/tests/dom/websocket/tests/file_websocket_hello");
+ socket.onerror = (e) => {
+ opener.postMessage({result: 'WS onerror', method: '${method}'}, '*');
+ close();
+ };
+ socket.onopen = (e) => {
+ socket.close();
+ opener.postMessage({result: 'WS onopen', method: '${method}'}, '*');
+ close();
+ };
+ }
+ catch(e) {
+ if (e instanceof DOMException) {
+ opener.postMessage({result: 'SecurityError', method: '${method}'}, '*');
+ close();
+ } else {
+ opener.postMessage({result: 'WS Throws something else!', method: '${method}'}, '*');
+ close();
+ }
+ }
+ <\/script>`],
+ {type: 'text/html'}
+ )
+ );
+
+ window.open(blob);
+}
+
+SimpleTest.waitForExplicitFinish();
+testWebSocketBlob("ws://mochi.test:8888");
+testWebSocketBlob("wss://example.com");
+
+</script>
+</body>
+</html>