From f2b9696298141dda80c4810f2953f2bb806b7cf2 Mon Sep 17 00:00:00 2001 From: Artak Mkrtchyan Date: Wed, 7 Mar 2018 16:34:12 -0800 Subject: [PATCH] Naming improvements and test code cleanup --- .../Legacy/HtmlMarkupParser.cs | 12 ++++---- .../Legacy/TokenizerLookaheadTest.cs | 28 +++++++++---------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs index 2fe84b5a33..fb5237866e 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs @@ -614,8 +614,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { if (NextIs(HtmlSymbolType.CloseAngle)) { - // We're at the end of a comment. check the condition 2.3 to make sure the text ending is allowed. - isValidComment = !EndsWithSymbolsSequence(p, HtmlSymbolType.OpenAngle, HtmlSymbolType.Bang, HtmlSymbolType.DoubleHyphen); + // Check condition 2.3: We're at the end of a comment. Check to make sure the text ending is allowed. + isValidComment = !SymbolSequenceEndsWithItems(p, HtmlSymbolType.OpenAngle, HtmlSymbolType.Bang, HtmlSymbolType.DoubleHyphen); breakLookahead = true; } else if (NextIs(ns => IsDashSymbol(ns) && NextIs(HtmlSymbolType.CloseAngle))) @@ -645,17 +645,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return isValidComment; } - private bool EndsWithSymbolsSequence(IEnumerable symbols, params HtmlSymbolType[] sequenceToMatchWith) + internal static bool SymbolSequenceEndsWithItems(IEnumerable sequence, params HtmlSymbolType[] items) { - int index = sequenceToMatchWith.Length; - foreach (var previousSymbol in symbols) + int index = items.Length; + foreach (var previousSymbol in sequence) { if (index == 0) { break; } - if (sequenceToMatchWith[--index] != previousSymbol.Type) + if (items[--index] != previousSymbol.Type) return false; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TokenizerLookaheadTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TokenizerLookaheadTest.cs index a9ac4be740..74d0c075f3 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TokenizerLookaheadTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TokenizerLookaheadTest.cs @@ -60,11 +60,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public void LookaheadUntil_PassesThePreviousSymbolsInReverseOrder() { // Arrange - var source = TestRazorSourceDocument.Create("asdf--fvd--<"); - var options = RazorParserOptions.CreateDefault(); - var context = new ParserContext(source, options); - - var tokenizer = new TestTokenizerBackedParser(HtmlLanguageCharacteristics.Instance, context); + var tokenizer = CreateContentTokenizer("asdf--fvd--<"); // Act Stack symbols = new Stack(); @@ -86,11 +82,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public void LookaheadUntil_ReturnsFalseAfterIteratingOverAllSymbolsIfConditionIsNotMet() { // Arrange - var source = TestRazorSourceDocument.Create("asdf--fvd"); - var options = RazorParserOptions.CreateDefault(); - var context = new ParserContext(source, options); - - var tokenizer = new TestTokenizerBackedParser(HtmlLanguageCharacteristics.Instance, context); + var tokenizer = CreateContentTokenizer("asdf--fvd"); // Act Stack symbols = new Stack(); @@ -112,11 +104,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public void LookaheadUntil_ReturnsTrueAndBreaksIteration() { // Arrange - var source = TestRazorSourceDocument.Create("asdf--fvd"); - var options = RazorParserOptions.CreateDefault(); - var context = new ParserContext(source, options); - - var tokenizer = new TestTokenizerBackedParser(HtmlLanguageCharacteristics.Instance, context); + var tokenizer = CreateContentTokenizer("asdf--fvd"); // Act Stack symbols = new Stack(); @@ -133,6 +121,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Assert.Equal(new HtmlSymbol("asdf", HtmlSymbolType.Text), symbols.Pop()); } + private static TestTokenizerBackedParser CreateContentTokenizer(string content) + { + var source = TestRazorSourceDocument.Create(content); + var options = RazorParserOptions.CreateDefault(); + var context = new ParserContext(source, options); + + var tokenizer = new TestTokenizerBackedParser(HtmlLanguageCharacteristics.Instance, context); + return tokenizer; + } + private class ExposedTokenizer : Tokenizer { public ExposedTokenizer(string input)