diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs index 9cc91b0a32..96cbba4c7b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpNestedStatementsTest.cs @@ -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) {

Hello

}", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("while(true) {") - .AsStatement(), - new MarkupBlock( - Factory.Markup(" "), - new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("Hello"), - new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) - ), - Factory.Code("}") - .AsStatement() - .Accepts(AcceptedCharactersInternal.None))); + ParseBlockTest("@while(true) {

Hello

}"); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt new file mode 100644 index 0000000000..550209a3d4 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedCodeBlock.syntaxtree.txt @@ -0,0 +1,29 @@ +Statement block - Gen - 35 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..969e6055f8 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedExplicitExpression.syntaxtree.txt @@ -0,0 +1,23 @@ +Statement block - Gen - 23 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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 - 6 - (15:0,15) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1 + CSharpSymbolType.Transition;[@]; + MetaCode span - Gen - [(] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1 + CSharpSymbolType.LeftParenthesis;[(]; + Code span - Gen - [foo] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + MetaCode span - Gen - [)] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1 + CSharpSymbolType.RightParenthesis;[)]; + Code span - Gen - [ }] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:2 + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt new file mode 100644 index 0000000000..0cf648e8cb --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedImplicitExpression.syntaxtree.txt @@ -0,0 +1,19 @@ +Statement block - Gen - 21 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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 - 4 - (15:0,15) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[ATD];K14 - (16:0,16) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Code span - Gen - [ }] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:2 + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt new file mode 100644 index 0000000000..506479fe91 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedKeywordStatement.syntaxtree.txt @@ -0,0 +1,43 @@ +Statement block - Gen - 55 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt new file mode 100644 index 0000000000..b37c94671c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedMarkupBlock.syntaxtree.txt @@ -0,0 +1,30 @@ +Statement block - Gen - 29 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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 - 14 - (14:0,14) + Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1 + HtmlSymbolType.WhiteSpace;[ ]; + Tag block - Gen - 3 - (15:0,15) + Markup span - Gen - [

] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[p]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [Hello] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1 + HtmlSymbolType.Text;[Hello]; + Tag block - Gen - 4 - (23:0,23) + Markup span - Gen - [

] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[p]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ ] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:1 + HtmlSymbolType.WhiteSpace;[ ]; + Code span - Gen - [}] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:1 + CSharpSymbolType.RightBrace;[}]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt new file mode 100644 index 0000000000..a7645b93aa --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/CSharpNestedStatementsTest/NestedSimpleStatement.syntaxtree.txt @@ -0,0 +1,17 @@ +Statement block - Gen - 23 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [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;[}];