test_sharedWorker.html (2395B)
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 SharedWorker</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"> 10 </script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> 12 </head> 13 <body> 14 <p id="display"></p> 15 <div id="content" style="display: none"></div> 16 <pre id="test"> 17 <script class="testbody"> 18 "use strict"; 19 20 const href = window.location.href; 21 const filename = "sharedWorker_sharedWorker.js"; 22 const sentMessage = "ping"; 23 const errorFilename = href.substring(0, href.lastIndexOf("/") + 1) + 24 filename; 25 const errorLine = 98; 26 const errorColumn = 11; 27 28 var worker = new SharedWorker(filename); 29 30 ok(worker instanceof SharedWorker, "Got SharedWorker instance"); 31 ok(!("postMessage" in worker), "SharedWorker has no 'postMessage'"); 32 ok(worker.port instanceof MessagePort, 33 "Shared worker has MessagePort"); 34 35 var receivedMessage; 36 var receivedError; 37 38 worker.port.onmessage = function(event) { 39 ok(event instanceof MessageEvent, "Got a MessageEvent"); 40 ok(event.target === worker.port, 41 "MessageEvent has correct 'target' property"); 42 is(event.data, sentMessage, "Got correct message"); 43 ok(receivedMessage === undefined, "Haven't gotten message yet"); 44 receivedMessage = event.data; 45 if (receivedError) { 46 SimpleTest.finish(); 47 } 48 }; 49 50 worker.onerror = function(event) { 51 ok(event instanceof ErrorEvent, "Got an ErrorEvent"); 52 is(event.message, "Error: " + sentMessage, "Got correct error"); 53 is(event.filename, errorFilename, "Got correct filename"); 54 is(event.lineno, errorLine, "Got correct lineno"); 55 is(event.colno, errorColumn, "Got correct column"); 56 ok(receivedError === undefined, "Haven't gotten error yet"); 57 receivedError = event.message; 58 event.preventDefault(); 59 if (receivedMessage) { 60 SimpleTest.finish(); 61 } 62 }; 63 64 worker.port.postMessage(sentMessage); 65 66 SimpleTest.waitForExplicitFinish(); 67 68 </script> 69 </pre> 70 </body> 71 </html>