<!--
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 = 98;
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>