blob: 19daa33ec2620ba83cdeac47c949989cbb16b462 [file]
<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="resources/breakpoint-options-utilities.js"></script>
<script>
function triggerSymbolicBreakpoint() {
document.body.addEventListener("click", (event) => {
event.preventDefault();
TestPage.dispatchEventToFrontend("TestPage-SymbolicBreakpoint");
}, {once: true});
document.body.click();
}
function test()
{
function triggerBreakpoint() {
return Promise.all([
InspectorTest.awaitEvent("TestPage-SymbolicBreakpoint"),
InspectorTest.evaluateInPage(`triggerSymbolicBreakpoint()`),
]);
}
let suite = InspectorTest.createAsyncSuite("SymbolicBreakpoint");
InspectorTest.BreakpointOptions.addTestCases(suite, {
testCaseNamePrefix: "ExactCaseSensitive.Native.DOM.Hit.",
createBreakpoint() {
let breakpoint = new WI.SymbolicBreakpoint("preventDefault");
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
return breakpoint;
},
triggerBreakpoint,
});
suite.addTestCase({
name: "SymbolicBreakpoint.ExactCaseSensitive.Native.DOM.Miss",
async test() {
let pauseCount = 0;
let pausedListener = WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, (event) => {
++pauseCount;
WI.debuggerManager.resume();
});
InspectorTest.log("Adding breakpoint...");
let breakpoint = new WI.SymbolicBreakpoint("pReVeNtDeFaUlT");
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
InspectorTest.assert(!WI.debuggerManager.symbolicBreakpointsForSymbol("preventDefault").length, "Should not match breakpoint.");
InspectorTest.log("Triggering breakpoint...");
await triggerBreakpoint();
InspectorTest.expectEqual(pauseCount, 0, "Should not pause.");
InspectorTest.newline();
InspectorTest.log("Removing breakpoint...");
breakpoint.remove();
InspectorTest.log("Triggering breakpoint...");
await triggerBreakpoint();
InspectorTest.expectEqual(pauseCount, 0, "Should not pause.");
WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, pausedListener);
},
});
suite.addTestCase({
name: "SymbolicBreakpoint.ExactCaseSensitive.Native.DOM.Disabled",
async test() {
let pauseCount = 0;
let pausedListener = WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.Paused, (event) => {
++pauseCount;
WI.debuggerManager.resume();
});
InspectorTest.log("Adding breakpoint...");
let breakpoint = new WI.SymbolicBreakpoint("preventDefault", {disabled: true});
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
InspectorTest.assert(!WI.debuggerManager.symbolicBreakpointsForSymbol("preventDefault").length, "Should not match breakpoint.");
InspectorTest.log("Triggering breakpoint...");
await triggerBreakpoint();
InspectorTest.expectEqual(pauseCount, 0, "Should not pause.");
InspectorTest.newline();
InspectorTest.log("Removing breakpoint...");
breakpoint.remove();
InspectorTest.log("Triggering breakpoint...");
await triggerBreakpoint();
InspectorTest.expectEqual(pauseCount, 0, "Should not pause.");
WI.debuggerManager.removeEventListener(WI.DebuggerManager.Event.Paused, pausedListener);
},
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Tests for SymbolicBreakpoint.</p>
</body>
</html>