162 lines
4.1 KiB
HTML
162 lines
4.1 KiB
HTML
<!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.createSyncSuite("Debugger.BreakpointLogMessageLexer");
|
|
|
|
function addTestCase({name, input, expectedTokens}) {
|
|
suite.addTestCase({
|
|
name,
|
|
test() {
|
|
let lexer = new WI.BreakpointLogMessageLexer;
|
|
let tokens = lexer.tokenize(input);
|
|
InspectorTest.log("Input: " + input);
|
|
InspectorTest.expectShallowEqual(tokens, expectedTokens, "Token stream should match expected tokens.");
|
|
return true;
|
|
}
|
|
});
|
|
}
|
|
|
|
addTestCase({
|
|
name: "EmptyMessage",
|
|
input: "",
|
|
expectedTokens: []
|
|
});
|
|
|
|
addTestCase({
|
|
name: "TextOnly",
|
|
input: "hello world",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.PlainText,
|
|
data: "hello world",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "PlaceholderOnly",
|
|
input: "${x}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "x",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "NestedTemplateLiteral",
|
|
input: "${'x' + `${'y'}`}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "'x' + `${'y'}`",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "TextBeforePlaceholder",
|
|
input: "abc ${x}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.PlainText,
|
|
data: "abc ",
|
|
},
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "x",
|
|
},
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "TextAfterPlaceholder",
|
|
input: "${x} abc",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "x",
|
|
},
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.PlainText,
|
|
data: " abc",
|
|
},
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "PlaceholderWithNestedBraces",
|
|
input: "${({a: '${}'}).a}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "({a: '${}'}).a",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "PlaceholderWithRegExpLiteral",
|
|
input: "${/\\}/.test('${')}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "/\\}/.test('${')",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "MultiplePlaceholders",
|
|
input: "${1} ${2}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "1",
|
|
},
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.PlainText,
|
|
data: " ",
|
|
},
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "2",
|
|
}
|
|
]
|
|
});
|
|
|
|
addTestCase({
|
|
name: "ExpressionFollowedByBraces",
|
|
input: "${1}{2}",
|
|
expectedTokens: [
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.Expression,
|
|
data: "1",
|
|
},
|
|
{
|
|
type: WI.BreakpointLogMessageLexer.TokenType.PlainText,
|
|
data: "{2}",
|
|
},
|
|
]
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Check that BreakpointLogMessageLexer correctly tokenizes breakpoint action log messages. Message text can include template literal placeholders.</p>
|
|
</body>
|
|
</html>
|