Convert CSharpExplicitExpressionTest
This commit is contained in:
parent
363be73a00
commit
d48946c2e0
|
|
@ -8,68 +8,39 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||||
{
|
{
|
||||||
public class CSharpExplicitExpressionTest : CsHtmlCodeParserTestBase
|
public class CSharpExplicitExpressionTest : CsHtmlCodeParserTestBase
|
||||||
{
|
{
|
||||||
|
public CSharpExplicitExpressionTest()
|
||||||
|
{
|
||||||
|
UseBaselineTests = true;
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldOutputZeroLengthCodeSpanIfExplicitExpressionIsEmpty()
|
public void ParseBlockShouldOutputZeroLengthCodeSpanIfExplicitExpressionIsEmpty()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@()",
|
ParseBlockTest("@()");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.EmptyCSharp().AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldOutputZeroLengthCodeSpanIfEOFOccursAfterStartOfExplicitExpression()
|
public void ParseBlockShouldOutputZeroLengthCodeSpanIfEOFOccursAfterStartOfExplicitExpression()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(",
|
ParseBlockTest("@(");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.EmptyCSharp().AsExpression()
|
|
||||||
),
|
|
||||||
RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF(
|
|
||||||
new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1),
|
|
||||||
Resources.BlockName_ExplicitExpression,
|
|
||||||
")",
|
|
||||||
"("));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptEscapedQuoteInNonVerbatimStrings()
|
public void ParseBlockShouldAcceptEscapedQuoteInNonVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(\"\\\"\")",
|
ParseBlockTest("@(\"\\\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("\"\\\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptEscapedQuoteInVerbatimStrings()
|
public void ParseBlockShouldAcceptEscapedQuoteInVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(@\"\"\"\")",
|
ParseBlockTest("@(@\"\"\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("@\"\"\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptMultipleRepeatedEscapedQuoteInVerbatimStrings()
|
public void ParseBlockShouldAcceptMultipleRepeatedEscapedQuoteInVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
ParseBlockTest("@(@\"\"\"\"\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("@\"\"\"\"\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -79,61 +50,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||||
+ @"Foo" + Environment.NewLine
|
+ @"Foo" + Environment.NewLine
|
||||||
+ @"Bar" + Environment.NewLine
|
+ @"Bar" + Environment.NewLine
|
||||||
+ @"Baz" + Environment.NewLine
|
+ @"Baz" + Environment.NewLine
|
||||||
+ @""")",
|
+ @""")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code($"@\"{Environment.NewLine}Foo{Environment.NewLine}Bar{Environment.NewLine}Baz{Environment.NewLine}\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptMultipleEscapedQuotesInNonVerbatimStrings()
|
public void ParseBlockShouldAcceptMultipleEscapedQuotesInNonVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(\"\\\"hello, world\\\"\")",
|
ParseBlockTest("@(\"\\\"hello, world\\\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("\"\\\"hello, world\\\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptMultipleEscapedQuotesInVerbatimStrings()
|
public void ParseBlockShouldAcceptMultipleEscapedQuotesInVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(@\"\"\"hello, world\"\"\")",
|
ParseBlockTest("@(@\"\"\"hello, world\"\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("@\"\"\"hello, world\"\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInNonVerbatimStrings()
|
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInNonVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(\"\\\"\\\"\")",
|
ParseBlockTest("@(\"\\\"\\\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("\"\\\"\\\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInVerbatimStrings()
|
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInVerbatimStrings()
|
||||||
{
|
{
|
||||||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
ParseBlockTest("@(@\"\"\"\"\"\")");
|
||||||
new ExpressionBlock(
|
|
||||||
Factory.CodeTransition(),
|
|
||||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
|
||||||
Factory.Code("@\"\"\"\"\"\"").AsExpression(),
|
|
||||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 9 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - ["\"\""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;["\"\""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (8:0,8) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 10 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [@""""""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;[@""""""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 7 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - ["\""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;["\""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (6:0,6) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 8 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [@""""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;[@""""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (7:0,7) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 23 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [@"LFFooLFBarLFBazLF"] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;[@"LFFooLFBarLFBazLF"];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (22:4,1) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 21 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - ["\"hello, world\""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;["\"hello, world\""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 22 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [@"""hello, world"""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;[@"""hello, world"""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 10 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [@""""""] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.StringLiteral;[@""""""];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
(1,2): Error RZ1006: The explicit expression block is missing a closing ")" character. Make sure you have a matching ")" character for all the "(" characters within this block, and that none of the ")" characters are being interpreted as markup.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Expression block - Gen<Expr> - 2 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.Unknown;[];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Expression block - Gen<Expr> - 3 - (0:0,0)
|
||||||
|
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
|
||||||
|
CSharpSymbolType.Transition;[@];
|
||||||
|
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1
|
||||||
|
CSharpSymbolType.LeftParenthesis;[(];
|
||||||
|
Code span - Gen<Expr> - [] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.Unknown;[];
|
||||||
|
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:1
|
||||||
|
CSharpSymbolType.RightParenthesis;[)];
|
||||||
Loading…
Reference in New Issue