Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  test_WorkerDebugger_console.xhtml   Sprache: unbekannt

 
<?xml version="1.0"?>
<!--
  Any copyright is dedicated to the Public Domain.
  http://creativecommons.org/publicdomain/zero/1.0/
-->
<window title="Test for WorkerDebuggerGlobalScope.console methods"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="test();">

  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
  <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
  <script type="application/javascript" src="dom_worker_helper.js"/>

  <script type="application/javascript">
  <![CDATA[

    const WORKER_URL = "WorkerDebugger.console_worker.js";
    const CHILD_WORKER_URL = "WorkerDebugger.console_childWorker.js";
    const DEBUGGER_URL = BASE_URL + "WorkerDebugger.console_debugger.js";

    consoleMessagesReceived = 0;
    function test() {
      const ConsoleAPIStorage = SpecialPowers.Cc[
        "@mozilla.org/consoleAPI-storage;1"
      ].getService(SpecialPowers.Ci.nsIConsoleAPIStorage);

      function consoleListener() {
        this.observe = this.observe.bind(this);
        ConsoleAPIStorage.addLogEventListener(this.observe, SpecialPowers.wrap(document).nodePrincipal);
      }

      consoleListener.prototype  = {
        observe(aSubject) {
          var obj = aSubject.wrappedJSObject;
          if (obj.arguments[0] == "Hello from the debugger script!" &&
              !consoleMessagesReceived) {
            consoleMessagesReceived++;
            ok(true, "Something has been received");
            ConsoleAPIStorage.removeLogEventListener(this.observe);
          }
        }
      }

      var cl = new consoleListener();

      (async function() {
        SimpleTest.waitForExplicitFinish();

        info("Create a worker that creates a child worker, wait for their " +
             "debuggers to be registered, and initialize them.");
        let promise = waitForMultiple([
          waitForRegister(WORKER_URL, DEBUGGER_URL),
          waitForRegister(CHILD_WORKER_URL, DEBUGGER_URL)
        ]);
        let worker = new Worker(WORKER_URL);
        let [dbg, childDbg] = await promise;

        info("Send a request to the worker debugger. This should cause the " +
             "the worker debugger to send a response.");
        dbg.addListener({
          onMessage(msg) {
            try {
              msg = JSON.parse(msg);
            } catch(e) {
              ok(false, "Something went wrong");
              return;
            }

            if (msg.type == 'finish') {
              ok(consoleMessagesReceived, "We received something via debugger console!");
              dbg.removeListener(this);
              SimpleTest.finish();
              return;
            }

            if (msg.type == 'status') {
              ok(msg.what, msg.msg);
              return;
            }

            ok(false, "Something went wrong");
          }
        });

        dbg.postMessage("do magic");
      })();
    }

  ]]>
  </script>

  <body xmlns="http://www.w3.org/1999/xhtml">
    <p id="display"></p>
    <div id="content" style="display:none;"></div>
    <pre id="test"></pre>
  </body>
  <label id="test-result"/>
</window>

[ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge