diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpErrorTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpErrorTest.cs index 257d8a202d..4fb9fe7b6a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpErrorTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpErrorTest.cs @@ -9,105 +9,52 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class CSharpErrorTest : CsHtmlCodeParserTestBase { + public CSharpErrorTest() + { + UseBaselineTests = true; + } + [Fact] public void ParseBlockHandlesQuotesAfterTransition() { - ParseBlockTest("@\"", - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(KeywordSet) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace) - ), - RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), - "\"")); + ParseBlockTest("@\""); } [Fact] public void ParseBlockWithHelperDirectiveProducesError() { - ParseBlockTest("@helper fooHelper { }", - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("helper") - .AsImplicitExpression(KeywordSet) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - RazorDiagnosticFactory.CreateParsing_HelperDirectiveNotAvailable( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 6))); + ParseBlockTest("@helper fooHelper { }"); } [Fact] public void ParseBlockWithNestedCodeBlockProducesError() { - ParseBlockTest("@if { @{} }", - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("if { ") - .AsStatement() - .Accepts(AcceptedCharactersInternal.Any), - new StatementBlock( - Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.EmptyCSharp() - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), - Factory.Code(" }") - .AsStatement() - .Accepts(AcceptedCharactersInternal.Any)), - RazorDiagnosticFactory.CreateParsing_UnexpectedNestedCodeBlock( - new SourceSpan(new SourceLocation(7, 0, 7), contentLength: 1))); + ParseBlockTest("@if { @{} }"); } [Fact] public void ParseBlockCapturesWhitespaceToEndOfLineInInvalidUsingStatementAndTreatsAsFileCode() { ParseBlockTest("using " + Environment.NewLine - + Environment.NewLine, - new StatementBlock( - Factory.Code("using " + Environment.NewLine).AsStatement() - )); + + Environment.NewLine); } [Fact] public void ParseBlockMethodOutputsOpenCurlyAsCodeSpanIfEofFoundAfterOpenCurlyBrace() { - ParseBlockTest("{", - new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.EmptyCSharp() - .AsStatement() - .With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" }) - ), - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_Code, "}", "{")); + ParseBlockTest("{"); } [Fact] public void ParseBlockMethodOutputsZeroLengthCodeSpanIfStatementBlockEmpty() { - ParseBlockTest("{}", - new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.EmptyCSharp() - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) - )); + ParseBlockTest("{}"); } [Fact] public void ParseBlockMethodProducesErrorIfNewlineFollowsTransition() { - ParseBlockTest("@" + Environment.NewLine, - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(1, 0, 1), Environment.NewLine.Length))); + ParseBlockTest("@" + Environment.NewLine); } [Fact] @@ -115,72 +62,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{" + Environment.NewLine + " @ {}" + Environment.NewLine - + "}", - new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - Factory.Code(" {}" + Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) - ), - RazorDiagnosticFactory.CreateParsing_UnexpectedWhiteSpaceAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(6 + Environment.NewLine.Length, 1, 5), contentLength: 3))); + + "}"); } [Fact] public void ParseBlockMethodProducesErrorIfEOFAfterTransitionInEmbeddedExpression() { ParseBlockTest("{" + Environment.NewLine - + " @", - new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith("}"), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - Factory.EmptyCSharp().AsStatement() - ), - RazorDiagnosticFactory.CreateParsing_UnexpectedEndOfFileAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(6 + Environment.NewLine.Length, 1, 5), contentLength: 1)), - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_Code, "}", "{")); + + " @"); } [Fact] public void ParseBlockMethodParsesNothingIfFirstCharacterIsNotIdentifierStartOrParenOrBrace() { - ParseBlockTest("@!!!", - new ExpressionBlock( - Factory.CodeTransition(), - Factory.EmptyCSharp() - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), - RazorDiagnosticFactory.CreateParsing_UnexpectedCharacterAtStartOfCodeBlock( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), - "!")); + ParseBlockTest("@!!!"); } [Fact] public void ParseBlockShouldReportErrorAndTerminateAtEOFIfIfParenInExplicitExpressionUnclosed() { ParseBlockTest("(foo bar" + Environment.NewLine - + "baz", - new ExpressionBlock( - Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None), - Factory.Code($"foo bar{Environment.NewLine}baz").AsExpression() - ), - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(SourceLocation.Zero, contentLength: 1), Resources.BlockName_ExplicitExpression, ")", "(")); + + "baz"); } [Fact] @@ -189,26 +91,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("(foo bar" + Environment.NewLine + "" + Environment.NewLine + "baz" + Environment.NewLine - + "@Html.Foo(Bar);" + Environment.NewLine, - new ExpressionBlock( - Factory.Code("Href(" + Environment.NewLine) - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - ), - RazorDiagnosticFactory.CreateParsing_ExpectedCloseBracketBeforeEOF( - new SourceSpan(new SourceLocation(4, 0, 4), contentLength: 1), "(", ")")); + + "