63 lines
2.6 KiB
HTML
63 lines
2.6 KiB
HTML
<!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.URLBreakpoint");
|
|
|
|
for (let type of ["Fetch", "XHR"]) {
|
|
suite.addTestCase({
|
|
name: "Worker.DOMDebugger.URLBreakpoint." + type,
|
|
description: "Check that adding/removing URL breakpoints work for a Worker target.",
|
|
async test() {
|
|
InspectorTest.assert(workerTarget.DOMDebuggerAgent, "Worker target should have a DOMDebuggerAgent.");
|
|
InspectorTest.assert(workerTarget.DOMDebuggerAgent.setURLBreakpoint, "The Worker's DOMDebuggerAgent should have a setURLBreakpoint command.");
|
|
InspectorTest.assert(workerTarget.DOMDebuggerAgent.removeURLBreakpoint, "The Worker's DOMDebuggerAgent should have a removeURLBreakpoint command.");
|
|
|
|
let url = type; // The resource names have "Fetch" and "XHR" in them.
|
|
|
|
await workerTarget.DOMDebuggerAgent.setURLBreakpoint(url);
|
|
|
|
await Promise.all([
|
|
WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused),
|
|
InspectorTest.evaluateInPage(`worker.postMessage("trigger${type}")`),
|
|
]);
|
|
|
|
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.removeURLBreakpoint(url);
|
|
|
|
await WI.debuggerManager.resume();
|
|
|
|
InspectorTest.expectThat(paused, "Should have paused.");
|
|
InspectorTest.expectEqual(pauseReason, WI.DebuggerManager.PauseReason[type], `Pause reason should have been ${type}.`);
|
|
InspectorTest.expectThat(pauseData.breakpointURL.includes(url), `Pause data URL should include "${type}".`);
|
|
logStackTrace(stackTrace);
|
|
},
|
|
});
|
|
}
|
|
|
|
InspectorTest.Worker.DOMDebugger.createWorkerTarget((target) => {
|
|
workerTarget = target;
|
|
suite.runTestCasesAndFinish();
|
|
});
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Tests for URL breakpoint functionality (DOMDebugger) in a Worker.</p>
|
|
</body>
|
|
</html>
|