blob: bf1871591876838f3f79ae05685df8d827d5f3b0 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="../debugger/resources/log-active-stack-trace.js"></script>
<script src="resources/dom-debugger-utilities.js"></script>
<script>
function test()
{
let workerTarget = null;
let suite = InspectorTest.createAsyncSuite("Worker.DOMDebugger.EventBreakpoint.Listener");
suite.addTestCase({
name: "Worker.DOMDebugger.EventBreakpoint.Listener.Basic",
description: "Check that adding/removing listener event breakpoints work for a Worker target.",
async test() {
InspectorTest.assert(workerTarget.DOMDebuggerAgent, "Worker target should have a DOMDebuggerAgent.");
InspectorTest.assert(workerTarget.DOMDebuggerAgent.setEventBreakpoint, "The Worker's DOMDebuggerAgent should have a setEventBreakpoint command.");
InspectorTest.assert(workerTarget.DOMDebuggerAgent.removeEventBreakpoint, "The Worker's DOMDebuggerAgent should have a removeEventBreakpoint command.");
const breakpointType = "listener";
const eventName = "custom";
await workerTarget.DOMDebuggerAgent.setEventBreakpoint(breakpointType, eventName);
await Promise.all([
WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused),
InspectorTest.evaluateInPage(`worker.postMessage("triggerListener")`),
]);
let paused = WI.debuggerManager.paused;
let targetData = WI.debuggerManager.dataForTarget(WI.debuggerManager.activeCallFrame.target);
let pauseReason = targetData.pauseReason;
let pauseData = targetData.pauseData;
let stackTrace = getActiveStackTrace();
await workerTarget.DOMDebuggerAgent.removeEventBreakpoint(breakpointType, eventName);
await WI.debuggerManager.resume();
InspectorTest.expectThat(paused, "Should have paused.");
InspectorTest.expectEqual(pauseReason, WI.DebuggerManager.PauseReason.Listener, "Pause reason should have been Listener.");
InspectorTest.expectEqual(pauseData.eventName, eventName, `Pause data eventName should have been "${eventName}".`);
logStackTrace(stackTrace);
},
});
InspectorTest.Worker.DOMDebugger.createWorkerTarget((target) => {
workerTarget = target;
suite.runTestCasesAndFinish();
});
}
</script>
</head>
<body onload="runTest()">
<p>Tests for listener event breakpoint functionality (DOMDebugger) in a Worker.</p>
</body>
</html>