blob: 780ca300d7c2971c2779d538bc2fb9cc90b6f9e5 [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.Timeout");
suite.addTestCase({
name: "Worker.DOMDebugger.EventBreakpoint.Timeout.Basic",
description: "Check that adding/removing timeout 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 = "timeout";
await workerTarget.DOMDebuggerAgent.setEventBreakpoint(breakpointType);
await Promise.all([
WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused),
InspectorTest.evaluateInPage(`worker.postMessage("triggerTimeout")`),
]);
let paused = WI.debuggerManager.paused;
let targetData = WI.debuggerManager.dataForTarget(WI.debuggerManager.activeCallFrame.target);
let pauseReason = targetData.pauseReason;
let stackTrace = getActiveStackTrace();
await workerTarget.DOMDebuggerAgent.removeEventBreakpoint(breakpointType);
await WI.debuggerManager.resume();
InspectorTest.expectThat(paused, "Should have paused.");
InspectorTest.expectEqual(pauseReason, WI.DebuggerManager.PauseReason.Timeout, "Pause reason should have been Timeout.");
logStackTrace(stackTrace);
},
});
InspectorTest.Worker.DOMDebugger.createWorkerTarget((target) => {
workerTarget = target;
suite.runTestCasesAndFinish();
});
}
</script>
</head>
<body onload="runTest()">
<p>Tests for timeout event breakpoint functionality (DOMDebugger) in a Worker.</p>
</body>
</html>