blob: 8797ccce4d9a119ecf679547b33495e9736a8773 [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="resources/script-for-breakpoint-actions.js"></script>
<script>
function runBreakpointActions()
{
breakpointActions(42, {x:1, y:2});
}
function test()
{
let suite = InspectorTest.createAsyncSuite("Debugger.BreakpointAction.Log");
suite.addTestCase({
name: "TemplateLiteralPlaceholders",
description: "Evaluate breakpoint with logging actions that include placeholders.",
test(resolve, reject) {
let breakpointPromise = new WI.WrappedPromise;
WI.debuggerManager.addEventListener(WI.DebuggerManager.Event.ScriptAdded, (event) => {
let scriptObject = event.data.script;
if (!/script\-for\-breakpoint\-actions\.js$/.test(scriptObject.url))
return;
let location = scriptObject.createSourceCodeLocation(4, 0);
let breakpoint = new WI.JavaScriptBreakpoint(location);
breakpoint.autoContinue = true;
function addLogAction(data) {
breakpoint.addAction(new WI.BreakpointAction(WI.BreakpointAction.Type.Log, {data}));
}
addLogAction("`${a}`");
addLogAction("'${a}'");
addLogAction("${'ab' + 'c'}");
addLogAction("${\"{abc}\"}");
addLogAction("${'{abc}'}");
addLogAction("${`{abc}`}");
addLogAction("${`ab${'c'}`}");
addLogAction("${({a: 137}).a}");
addLogAction("close curly brace in RegExp: ${/\\}/.test('}')}");
addLogAction("${a} and ${JSON.stringify(b)}");
WI.debuggerManager.addBreakpoint(breakpoint);
breakpointPromise.resolve();
});
let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);
InspectorTest.reloadPage();
Promise.all([
reloadPromise,
breakpointPromise.promise
])
.then(() => {
return InspectorTest.evaluateInPage("runBreakpointActions()");
})
.then(resolve);;
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Testing that "Log" breakpoint actions work correctly.</p>
</body>
</html>