forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--
 | |
|   Any copyright is dedicated to the Public Domain.
 | |
|   http://creativecommons.org/publicdomain/zero/1.0/
 | |
| -->
 | |
| <!DOCTYPE HTML>
 | |
| <html>
 | |
|   <head>
 | |
|     <title>Test for SharedWorker</title>
 | |
|     <script src="/tests/SimpleTest/SimpleTest.js">
 | |
|     </script>
 | |
|     <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
 | |
|   </head>
 | |
|   <body>
 | |
|     <p id="display"></p>
 | |
|     <div id="content" style="display: none"></div>
 | |
|     <pre id="test">
 | |
|       <script class="testbody">
 | |
|         "use strict";
 | |
| 
 | |
|         const href = window.location.href;
 | |
|         const filename = "sharedWorker_sharedWorker.js";
 | |
|         const sentMessage = "ping";
 | |
|         const errorFilename = href.substring(0, href.lastIndexOf("/") + 1) +
 | |
|                               filename;
 | |
|         const errorLine = 90;
 | |
|         const errorColumn = 11;
 | |
| 
 | |
|         var worker = new SharedWorker(filename);
 | |
| 
 | |
|         ok(worker instanceof SharedWorker, "Got SharedWorker instance");
 | |
|         ok(!("postMessage" in worker), "SharedWorker has no 'postMessage'");
 | |
|         ok(worker.port instanceof MessagePort,
 | |
|           "Shared worker has MessagePort");
 | |
| 
 | |
|         var receivedMessage;
 | |
|         var receivedError;
 | |
| 
 | |
|         worker.port.onmessage = function(event) {
 | |
|           ok(event instanceof MessageEvent, "Got a MessageEvent");
 | |
|           ok(event.target === worker.port,
 | |
|              "MessageEvent has correct 'target' property");
 | |
|           is(event.data, sentMessage, "Got correct message");
 | |
|           ok(receivedMessage === undefined, "Haven't gotten message yet");
 | |
|           receivedMessage = event.data;
 | |
|           if (receivedError) {
 | |
|             SimpleTest.finish();
 | |
|           }
 | |
|         };
 | |
| 
 | |
|         worker.onerror = function(event) {
 | |
|           ok(event instanceof ErrorEvent, "Got an ErrorEvent");
 | |
|           is(event.message, "Error: " + sentMessage, "Got correct error");
 | |
|           is(event.filename, errorFilename, "Got correct filename");
 | |
|           is(event.lineno, errorLine, "Got correct lineno");
 | |
|           is(event.colno, errorColumn, "Got correct column");
 | |
|           ok(receivedError === undefined, "Haven't gotten error yet");
 | |
|           receivedError = event.message;
 | |
|           event.preventDefault();
 | |
|           if (receivedMessage) {
 | |
|             SimpleTest.finish();
 | |
|           }
 | |
|         };
 | |
| 
 | |
|         worker.port.postMessage(sentMessage);
 | |
| 
 | |
|         SimpleTest.waitForExplicitFinish();
 | |
| 
 | |
|       </script>
 | |
|     </pre>
 | |
|   </body>
 | |
| </html>
 | 
