blob: 6eec2c4a2ace6ffa04aefd75781cfc3ad69c6ac2 [file] [edit]
<!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() {
[1, 2, 3].reverse();
TestPage.dispatchEventToFrontend("TestPage-SymbolicBreakpoint");
}
function test()
{
function triggerBreakpoint() {
return Promise.all([
InspectorTest.awaitEvent("TestPage-SymbolicBreakpoint"),
InspectorTest.evaluateInPage(`triggerSymbolicBreakpoint()`),
]);
}
let suite = InspectorTest.createAsyncSuite("SymbolicBreakpoint");
InspectorTest.BreakpointOptions.addTestCases(suite, {
testCaseNamePrefix: "ExactCaseInsensitive.Native.JS.Hit.",
createBreakpoint() {
let breakpoint = new WI.SymbolicBreakpoint("rEvErSe", {caseSensitive: false});
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
return breakpoint;
},
triggerBreakpoint,
});
suite.addTestCase({
name: "SymbolicBreakpoint.ExactCaseInsensitive.Native.JS.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("rEvErS", {caseSensitive: false});
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
InspectorTest.assert(!WI.debuggerManager.symbolicBreakpointsForSymbol("triggerSymbolicBreakpoint").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.ExactCaseInsensitive.Native.JS.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("rEvErSe", {caseSensitive: false, disabled: true});
WI.debuggerManager.addSymbolicBreakpoint(breakpoint);
InspectorTest.assert(!WI.debuggerManager.symbolicBreakpointsForSymbol("triggerSymbolicBreakpoint").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>