Convert CSharpExplicitExpressionTest

This commit is contained in:
Ajay Bhargav Baaskaran 2018-06-27 11:44:57 -07:00
parent 363be73a00
commit d48946c2e0
12 changed files with 104 additions and 74 deletions

View File

@ -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)
));
} }
} }
} }

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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;[)];

View File

@ -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.

View File

@ -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;[];

View File

@ -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;[)];