зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1246091 - patch 6/7 - Tests, r=ejpbruel
This commit is contained in:
Родитель
df932690be
Коммит
934bd500b6
|
@ -0,0 +1,3 @@
|
|||
"use strict";
|
||||
|
||||
self.onmessage = function () {};
|
|
@ -0,0 +1,37 @@
|
|||
"use strict"
|
||||
|
||||
function ok(a, msg) {
|
||||
postMessage(JSON.stringify({ type: 'status', what: !!a, msg: msg }));
|
||||
}
|
||||
|
||||
function is(a, b, msg) {
|
||||
ok(a === b, msg);
|
||||
}
|
||||
|
||||
function finish() {
|
||||
postMessage(JSON.stringify({ type: 'finish' }));
|
||||
}
|
||||
|
||||
function magic() {
|
||||
console.log("Hello from the debugger script!");
|
||||
|
||||
var foo = retrieveConsoleEvents();
|
||||
ok(Array.isArray(foo), "We received an array.");
|
||||
ok(foo.length >= 2, "At least 2 messages.");
|
||||
|
||||
is(foo[0].arguments[0], "Can you see this console message?", "First message ok.");
|
||||
is(foo[1].arguments[0], "Can you see this second console message?", "Second message ok.");
|
||||
|
||||
setConsoleEventHandler(function(consoleData) {
|
||||
is(consoleData.arguments[0], "Random message.", "Random message ok!");
|
||||
finish();
|
||||
});
|
||||
}
|
||||
|
||||
this.onmessage = function (event) {
|
||||
switch (event.data) {
|
||||
case "do magic":
|
||||
magic();
|
||||
break;
|
||||
}
|
||||
};
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";
|
||||
|
||||
console.log("Can you see this console message?");
|
||||
console.warn("Can you see this second console message?");
|
||||
|
||||
var worker = new Worker("WorkerDebugger.console_childWorker.js");
|
||||
|
||||
setInterval(function() {
|
||||
console.log("Random message.");
|
||||
}, 200);
|
|
@ -1,6 +1,9 @@
|
|||
[DEFAULT]
|
||||
skip-if = buildapp == 'b2g' || os == 'android'
|
||||
support-files =
|
||||
WorkerDebugger.console_childWorker.js
|
||||
WorkerDebugger.console_debugger.js
|
||||
WorkerDebugger.console_worker.js
|
||||
WorkerDebugger.initialize_childWorker.js
|
||||
WorkerDebugger.initialize_debugger.js
|
||||
WorkerDebugger.initialize_worker.js
|
||||
|
@ -62,6 +65,7 @@ support-files =
|
|||
[test_WorkerDebuggerGlobalScope.reportError.xul]
|
||||
[test_WorkerDebuggerGlobalScope.setImmediate.xul]
|
||||
[test_WorkerDebuggerManager.xul]
|
||||
[test_WorkerDebugger_console.xul]
|
||||
[test_WorkerDebugger_frozen.xul]
|
||||
[test_WorkerDebugger_suspended.xul]
|
||||
[test_bug883784.xul]
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
<?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 type="application/javascript"
|
||||
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
||||
<script type="application/javascript"
|
||||
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() {
|
||||
function consoleListener() {
|
||||
SpecialPowers.addObserver(this, "console-api-log-event", false);
|
||||
}
|
||||
|
||||
consoleListener.prototype = {
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
if (aTopic == "console-api-log-event") {
|
||||
var obj = aSubject.wrappedJSObject;
|
||||
if (obj.arguments[0] == "Hello from the debugger script!" &&
|
||||
!consoleMessagesReceived) {
|
||||
consoleMessagesReceived++;
|
||||
ok(true, "Something has been received");
|
||||
SpecialPowers.removeObserver(this, "console-api-log-event");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var cl = new consoleListener();
|
||||
|
||||
Task.spawn(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] = yield promise;
|
||||
|
||||
info("Send a request to the worker debugger. This should cause the " +
|
||||
"the worker debugger to send a response.");
|
||||
dbg.addListener({
|
||||
onMessage: function(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>
|
Загрузка…
Ссылка в новой задаче