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 CSharpExplicitExpressionTest()
|
||||
{
|
||||
UseBaselineTests = true;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldOutputZeroLengthCodeSpanIfExplicitExpressionIsEmpty()
|
||||
{
|
||||
ParseBlockTest("@()",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp().AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@()");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldOutputZeroLengthCodeSpanIfEOFOccursAfterStartOfExplicitExpression()
|
||||
{
|
||||
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,
|
||||
")",
|
||||
"("));
|
||||
ParseBlockTest("@(");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptEscapedQuoteInNonVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(\"\\\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\\\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(\"\\\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptEscapedQuoteInVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(@\"\"\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("@\"\"\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(@\"\"\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptMultipleRepeatedEscapedQuoteInVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("@\"\"\"\"\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(@\"\"\"\"\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -79,61 +50,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ @"Foo" + Environment.NewLine
|
||||
+ @"Bar" + 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]
|
||||
public void ParseBlockShouldAcceptMultipleEscapedQuotesInNonVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(\"\\\"hello, world\\\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\\\"hello, world\\\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(\"\\\"hello, world\\\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptMultipleEscapedQuotesInVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(@\"\"\"hello, world\"\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("@\"\"\"hello, world\"\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(@\"\"\"hello, world\"\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInNonVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(\"\\\"\\\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\\\"\\\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(\"\\\"\\\"\")");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockShouldAcceptConsecutiveEscapedQuotesInVerbatimStrings()
|
||||
{
|
||||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("@\"\"\"\"\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
ParseBlockTest("@(@\"\"\"\"\"\")");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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