dom/workers/test/test_sharedWorker.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/workers/test/test_sharedWorker.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,76 @@
     1.4 +<!--
     1.5 +  Any copyright is dedicated to the Public Domain.
     1.6 +  http://creativecommons.org/publicdomain/zero/1.0/
     1.7 +-->
     1.8 +<!DOCTYPE HTML>
     1.9 +<html>
    1.10 +  <head>
    1.11 +    <title>Test for SharedWorker</title>
    1.12 +    <script src="/tests/SimpleTest/SimpleTest.js">
    1.13 +    </script>
    1.14 +    <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
    1.15 +  </head>
    1.16 +  <body>
    1.17 +    <p id="display"></p>
    1.18 +    <div id="content" style="display: none"></div>
    1.19 +    <pre id="test">
    1.20 +      <script class="testbody">
    1.21 +        "use strict";
    1.22 +
    1.23 +        const swPref = "dom.workers.sharedWorkers.enabled";
    1.24 +
    1.25 +        const href = window.location.href;
    1.26 +        const filename = "sharedWorker_sharedWorker.js";
    1.27 +        const sentMessage = "ping";
    1.28 +        const errorFilename = href.substring(0, href.lastIndexOf("/") + 1) +
    1.29 +                              filename;
    1.30 +        const errorLine = 86;
    1.31 +        const errorColumn = 0;
    1.32 +
    1.33 +        if (!SpecialPowers.getBoolPref(swPref)) {
    1.34 +          ok(!("SharedWorker" in window), "No SharedWorker without pref set");
    1.35 +        }
    1.36 +
    1.37 +        SpecialPowers.pushPrefEnv({ set: [[swPref, true]] }, function() {
    1.38 +          var worker = new SharedWorker(filename);
    1.39 +
    1.40 +          ok(worker instanceof SharedWorker, "Got SharedWorker instance");
    1.41 +          ok(!("postMessage" in worker), "SharedWorker has no 'postMessage'");
    1.42 +          ok(worker.port instanceof MessagePort,
    1.43 +            "Shared worker has MessagePort");
    1.44 +
    1.45 +          var receivedMessage;
    1.46 +          var receivedError;
    1.47 +
    1.48 +          worker.port.onmessage = function(event) {
    1.49 +            ok(event instanceof MessageEvent, "Got a MessageEvent");
    1.50 +            ok(event.target === worker.port,
    1.51 +               "MessageEvent has correct 'target' property");
    1.52 +            is(event.data, sentMessage, "Got correct message");
    1.53 +            ok(receivedMessage === undefined, "Haven't gotten message yet");
    1.54 +            ok(receivedError === undefined, "Haven't gotten error yet");
    1.55 +            receivedMessage = event.data;
    1.56 +          };
    1.57 +
    1.58 +          worker.onerror = function(event) {
    1.59 +            ok(event instanceof ErrorEvent, "Got an ErrorEvent");
    1.60 +            is(event.message, "Error: " + sentMessage, "Got correct error");
    1.61 +            is(event.filename, errorFilename, "Got correct filename");
    1.62 +            is(event.lineno, errorLine, "Got correct lineno");
    1.63 +            is(event.colno, errorColumn, "Got correct column");
    1.64 +            ok(receivedMessage !== undefined, "Got message already");
    1.65 +            ok(receivedError === undefined, "Haven't gotten error yet");
    1.66 +            receivedError = event.message;
    1.67 +            event.preventDefault();
    1.68 +            SimpleTest.finish();
    1.69 +          };
    1.70 +
    1.71 +          worker.port.postMessage(sentMessage);
    1.72 +        });
    1.73 +
    1.74 +        SimpleTest.waitForExplicitFinish();
    1.75 +
    1.76 +      </script>
    1.77 +    </pre>
    1.78 +  </body>
    1.79 +</html>

mercurial