diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs index 522fa00289..1899cf90c7 100644 --- a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs +++ b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs @@ -172,11 +172,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return Regex.Replace(content, "(? directives, int? expectedParseLength = null) { - ParseBlockTest(version, document, false); + ParseBlockTest(document, directives, false, expectedParseLength); } - internal virtual void ParseBlockTest(string document, IEnumerable directives) + internal virtual void ParseBlockTest(string document, IEnumerable directives, bool designTime, int? expectedParseLength = null) { - ParseBlockTest(document, directives, false); + ParseBlockTest(RazorLanguageVersion.Latest, document, directives, designTime, expectedParseLength); } - internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, bool designTime) - { - ParseBlockTest(version, document, null, designTime); - } - - internal virtual void ParseBlockTest(string document, IEnumerable directives, bool designTime) - { - ParseBlockTest(RazorLanguageVersion.Latest, document, directives, designTime); - } - - internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime) + internal virtual void ParseBlockTest(RazorLanguageVersion version, string document, IEnumerable directives, bool designTime, int? expectedParseLength = null) { var result = ParseBlock(version, document, directives, designTime); - BaselineTest(result, ensureFullFidelity: false); + BaselineTest(result, expectedParseLength: expectedParseLength); } internal virtual void ParseDocumentTest(string document) diff --git a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs index f4f416616c..f0627432cb 100644 --- a/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs +++ b/src/Razor/test/Microsoft.AspNetCore.Razor.Test.Common/Language/SyntaxTreeVerifier.cs @@ -12,7 +12,7 @@ namespace Microsoft.AspNetCore.Razor.Language // Verifies recursively that a syntax tree has no gaps in terms of position/location. internal class SyntaxTreeVerifier { - public static void Verify(RazorSyntaxTree syntaxTree, bool ensureFullFidelity = true) + public static void Verify(RazorSyntaxTree syntaxTree, bool ensureFullFidelity = true, int? expectedParseLength = null) { var verifier = new Verifier(syntaxTree.Source); verifier.Visit(syntaxTree.Root); @@ -21,7 +21,8 @@ namespace Microsoft.AspNetCore.Razor.Language { var syntaxTreeString = syntaxTree.Root.ToFullString(); var builder = new StringBuilder(syntaxTree.Source.Length); - for (var i = 0; i < syntaxTree.Source.Length; i++) + var sourceLength = expectedParseLength ?? syntaxTree.Source.Length; + for (var i = 0; i < sourceLength; i++) { builder.Append(syntaxTree.Source[i]); }