Backed out changeset 06f41c22f3a6 (bug 1888460) for causing linux xpcshell failures...
[gecko.git] / dom / workers / test / test_importScripts_3rdparty.html
blob7f10f23fafb62b0372432816c49040ffd4bad7b5
1 <!--
2 Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/
4 -->
5 <!DOCTYPE HTML>
6 <html>
7 <head>
8 <title>Test for 3rd party imported script and muted errors</title>
9 <script src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
11 </head>
12 <body>
13 <script type="text/javascript">
15 const workerURL = 'http://mochi.test:8888/tests/dom/workers/test/importScripts_3rdParty_worker.js';
17 const sameOriginURL = 'http://mochi.test:8888/tests/dom/workers/test/invalid.js'
19 var tests = [
20 function() {
21 var worker = new Worker("importScripts_3rdParty_worker.js");
22 worker.onmessage = function(event) {
23 ok("result" in event.data && event.data.result, "It seems we don't share data!");
24 next();
27 worker.postMessage({ url: sameOriginURL, test: 'try', nested: false });
30 function() {
31 var worker = new Worker("importScripts_3rdParty_worker.js");
32 worker.onmessage = function(event) {
33 ok("result" in event.data && event.data.result, "It seems we don't share data in nested workers!");
34 next();
37 worker.postMessage({ url: sameOriginURL, test: 'try', nested: true });
40 function() {
41 var worker = new Worker("importScripts_3rdParty_worker.js");
42 worker.onmessage = function(event) {
43 ok("result" in event.data && event.data.result, "It seems we don't share data via eventListener!");
44 next();
47 worker.postMessage({ url: sameOriginURL, test: 'eventListener', nested: false });
50 function() {
51 var worker = new Worker("importScripts_3rdParty_worker.js");
52 worker.onmessage = function(event) {
53 ok("result" in event.data && event.data.result, "It seems we don't share data in nested workers via eventListener!");
54 next();
57 worker.postMessage({ url: sameOriginURL, test: 'eventListener', nested: true });
60 function() {
61 var worker = new Worker("importScripts_3rdParty_worker.js");
62 worker.onmessage = function(event) {
63 ok("result" in event.data && event.data.result, "It seems we don't share data via onerror!");
64 next();
66 worker.onerror = function(event) {
67 event.preventDefault();
70 worker.postMessage({ url: sameOriginURL, test: 'onerror', nested: false });
73 function() {
74 var worker = new Worker("importScripts_3rdParty_worker.js");
75 worker.onerror = function(event) {
76 event.preventDefault();
77 ok(event instanceof ErrorEvent, "ErrorEvent received.");
78 is(event.filename, workerURL, "ErrorEvent.filename is correct");
79 next();
82 worker.postMessage({ url: sameOriginURL, test: 'none', nested: false });
85 function() {
86 var worker = new Worker("importScripts_3rdParty_worker.js");
87 worker.addEventListener("error", function(event) {
88 event.preventDefault();
89 ok(event instanceof ErrorEvent, "ErrorEvent received.");
90 is(event.filename, workerURL, "ErrorEvent.filename is correct");
91 next();
92 });
94 worker.postMessage({ url: sameOriginURL, test: 'none', nested: false });
97 function() {
98 var worker = new Worker("importScripts_3rdParty_worker.js");
99 worker.onerror = function(event) {
100 ok(false, "No error should be received!");
103 worker.onmessage = function(event) {
104 ok("error" in event.data && event.data.error, "The error has been fully received from a nested worker");
105 next();
107 worker.postMessage({ url: sameOriginURL, test: 'none', nested: true });
110 function() {
111 var url = URL.createObjectURL(new Blob(["%&%^&%^"]));
112 var worker = new Worker(url);
113 worker.onerror = function(event) {
114 event.preventDefault();
115 ok(event instanceof Event, "Event received.");
116 next();
121 function next() {
122 if (!tests.length) {
123 SimpleTest.finish();
124 return;
127 var test = tests.shift();
128 test();
131 SimpleTest.waitForExplicitFinish();
132 next();
134 </script>
135 </body>
136 </html>