dom/workers/test/test_sharedWorker.html

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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";
    20         const swPref = "dom.workers.sharedWorkers.enabled";
    22         const href = window.location.href;
    23         const filename = "sharedWorker_sharedWorker.js";
    24         const sentMessage = "ping";
    25         const errorFilename = href.substring(0, href.lastIndexOf("/") + 1) +
    26                               filename;
    27         const errorLine = 86;
    28         const errorColumn = 0;
    30         if (!SpecialPowers.getBoolPref(swPref)) {
    31           ok(!("SharedWorker" in window), "No SharedWorker without pref set");
    32         }
    34         SpecialPowers.pushPrefEnv({ set: [[swPref, true]] }, function() {
    35           var worker = new SharedWorker(filename);
    37           ok(worker instanceof SharedWorker, "Got SharedWorker instance");
    38           ok(!("postMessage" in worker), "SharedWorker has no 'postMessage'");
    39           ok(worker.port instanceof MessagePort,
    40             "Shared worker has MessagePort");
    42           var receivedMessage;
    43           var receivedError;
    45           worker.port.onmessage = function(event) {
    46             ok(event instanceof MessageEvent, "Got a MessageEvent");
    47             ok(event.target === worker.port,
    48                "MessageEvent has correct 'target' property");
    49             is(event.data, sentMessage, "Got correct message");
    50             ok(receivedMessage === undefined, "Haven't gotten message yet");
    51             ok(receivedError === undefined, "Haven't gotten error yet");
    52             receivedMessage = event.data;
    53           };
    55           worker.onerror = function(event) {
    56             ok(event instanceof ErrorEvent, "Got an ErrorEvent");
    57             is(event.message, "Error: " + sentMessage, "Got correct error");
    58             is(event.filename, errorFilename, "Got correct filename");
    59             is(event.lineno, errorLine, "Got correct lineno");
    60             is(event.colno, errorColumn, "Got correct column");
    61             ok(receivedMessage !== undefined, "Got message already");
    62             ok(receivedError === undefined, "Haven't gotten error yet");
    63             receivedError = event.message;
    64             event.preventDefault();
    65             SimpleTest.finish();
    66           };
    68           worker.port.postMessage(sentMessage);
    69         });
    71         SimpleTest.waitForExplicitFinish();
    73       </script>
    74     </pre>
    75   </body>
    76 </html>

mercurial