Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<?xml version="1.0"?>
<!--
Any copyright is dedicated to the Public Domain.
-->
<window title="Test for WorkerDebuggerGlobalScope.reportError"
onload="test();">
<script type="application/javascript" src="dom_worker_helper.js"/>
<script type="application/javascript">
<![CDATA[
const WORKER_URL = "WorkerDebuggerGlobalScope.reportError_worker.js";
const CHILD_WORKER_URL = "WorkerDebuggerGlobalScope.reportError_childWorker.js";
const DEBUGGER_URL = BASE_URL + "WorkerDebuggerGlobalScope.reportError_debugger.js";
function test() {
(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;
worker.onmessage = function () {
ok(false, "Debugger error events should not be fired at workers.");
};
info("Send a request to the worker debugger. This should cause the " +
"worker debugger to report an error.");
promise = waitForDebuggerError(dbg);
dbg.postMessage("report");
let error = await promise;
is(error.fileName, DEBUGGER_URL,
"fileName should be name of file from which error is reported.");
is(error.lineNumber, 6,
"lineNumber should be line number from which error is reported.");
is(error.message, "reported", "message should be reported.");
info("Send a request to the worker debugger. This should cause the " +
"worker debugger to throw an error.");
promise = waitForDebuggerError(dbg);
dbg.postMessage("throw");
error = await promise;
is(error.fileName, DEBUGGER_URL,
"fileName should be name of file from which error is thrown");
is(error.lineNumber, 9,
"lineNumber should be line number from which error is thrown");
is(error.message, "Error: thrown", "message should be Error: thrown");
info("Send a reqeust to the child worker debugger. This should cause " +
"the child worker debugger to report an error.");
promise = waitForDebuggerError(childDbg);
childDbg.postMessage("report");
error = await promise;
is(error.fileName, DEBUGGER_URL,
"fileName should be name of file from which error is reported.");
is(error.lineNumber, 6,
"lineNumber should be line number from which error is reported.");
is(error.message, "reported", "message should be reported.");
info("Send a message to the child worker debugger. This should cause " +
"the child worker debugger to throw an error.");
promise = waitForDebuggerError(childDbg);
childDbg.postMessage("throw");
error = await promise;
is(error.fileName, DEBUGGER_URL,
"fileName should be name of file from which error is thrown");
is(error.lineNumber, 9,
"lineNumber should be line number from which error is thrown");
is(error.message, "Error: thrown", "message should be Error: thrown");
SimpleTest.finish();
})();
}
]]>
</script>
<p id="display"></p>
<div id="content" style="display:none;"></div>
<pre id="test"></pre>
</body>
<label id="test-result"/>
</window>