Convert CSharpNestedStatementsTest

This commit is contained in:
Ajay Bhargav Baaskaran 2018-06-27 13:00:54 -07:00
parent df22392996
commit a7fd53b3a3
7 changed files with 172 additions and 64 deletions

View File

@ -7,98 +7,45 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
{
public class CSharpNestedStatementsTest : CsHtmlCodeParserTestBase
{
public CSharpNestedStatementsTest()
{
UseBaselineTests = true;
}
[Fact]
public void NestedSimpleStatement()
{
ParseBlockTest("@while(true) { foo(); }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) { foo(); }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { foo(); }");
}
[Fact]
public void NestedKeywordStatement()
{
ParseBlockTest("@while(true) { for(int i = 0; i < 10; i++) { foo(); } }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) { for(int i = 0; i < 10; i++) { foo(); } }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { for(int i = 0; i < 10; i++) { foo(); } }");
}
[Fact]
public void NestedCodeBlock()
{
ParseBlockTest("@while(true) { { { { foo(); } } } }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) { { { { foo(); } } } }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { { { { foo(); } } } }");
}
[Fact]
public void NestedImplicitExpression()
{
ParseBlockTest("@while(true) { @foo }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) { ")
.AsStatement(),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.Code("foo")
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
Factory.Code(" }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { @foo }");
}
[Fact]
public void NestedExplicitExpression()
{
ParseBlockTest("@while(true) { @(foo) }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) { ")
.AsStatement(),
new ExpressionBlock(
Factory.CodeTransition(),
Factory.MetaCode("(")
.Accepts(AcceptedCharactersInternal.None),
Factory.Code("foo")
.AsExpression(),
Factory.MetaCode(")")
.Accepts(AcceptedCharactersInternal.None)),
Factory.Code(" }")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { @(foo) }");
}
[Fact]
public void NestedMarkupBlock()
{
ParseBlockTest("@while(true) { <p>Hello</p> }",
new StatementBlock(
Factory.CodeTransition(),
Factory.Code("while(true) {")
.AsStatement(),
new MarkupBlock(
Factory.Markup(" "),
new MarkupTagBlock(
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
Factory.Markup("Hello"),
new MarkupTagBlock(
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
),
Factory.Code("}")
.AsStatement()
.Accepts(AcceptedCharactersInternal.None)));
ParseBlockTest("@while(true) { <p>Hello</p> }");
}
}
}

View File

@ -0,0 +1,29 @@
Statement block - Gen<None> - 35 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) { { { { foo(); } } } }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:25
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,23 @@
Statement block - Gen<None> - 23 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:7
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 6 - (15:0,15)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
CSharpSymbolType.Transition;[@];
MetaCode span - Gen<None> - [(] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1
CSharpSymbolType.LeftParenthesis;[(];
Code span - Gen<Expr> - [foo] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1
CSharpSymbolType.Identifier;[foo];
MetaCode span - Gen<None> - [)] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1
CSharpSymbolType.RightParenthesis;[)];
Code span - Gen<Stmt> - [ }] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:2
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,19 @@
Statement block - Gen<None> - 21 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) { ] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:7
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
Expression block - Gen<Expr> - 4 - (15:0,15)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Expr> - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (16:0,16) - Symbols:1
CSharpSymbolType.Identifier;[foo];
Code span - Gen<Stmt> - [ }] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:2
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,43 @@
Statement block - Gen<None> - 55 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) { for(int i = 0; i < 10; i++) { foo(); } }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:39
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Keyword;[for];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[int];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[i];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Assign;[=];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.IntegerLiteral;[0];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[i];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LessThan;[<];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.IntegerLiteral;[10];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[i];
CSharpSymbolType.Increment;[++];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,30 @@
Statement block - Gen<None> - 29 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) {] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:6
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
Markup block - Gen<None> - 14 - (14:0,14)
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Tag block - Gen<None> - 3 - (15:0,15)
Markup span - Gen<Markup> - [<p>] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [Hello] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1
HtmlSymbolType.Text;[Hello];
Tag block - Gen<None> - 4 - (23:0,23)
Markup span - Gen<Markup> - [</p>] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:4
HtmlSymbolType.OpenAngle;[<];
HtmlSymbolType.ForwardSlash;[/];
HtmlSymbolType.Text;[p];
HtmlSymbolType.CloseAngle;[>];
Markup span - Gen<Markup> - [ ] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:1
HtmlSymbolType.WhiteSpace;[ ];
Code span - Gen<Stmt> - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1
CSharpSymbolType.RightBrace;[}];

View File

@ -0,0 +1,17 @@
Statement block - Gen<None> - 23 - (0:0,0)
Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1
CSharpSymbolType.Transition;[@];
Code span - Gen<Stmt> - [while(true) { foo(); }] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:13
CSharpSymbolType.Keyword;[while];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.Keyword;[true];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.LeftBrace;[{];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.Identifier;[foo];
CSharpSymbolType.LeftParenthesis;[(];
CSharpSymbolType.RightParenthesis;[)];
CSharpSymbolType.Semicolon;[;];
CSharpSymbolType.WhiteSpace;[ ];
CSharpSymbolType.RightBrace;[}];