From 048a6ec3ea682bc7f7464b18c1591bcfe61063c9 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 27 Jun 2018 14:04:56 -0700 Subject: [PATCH] Converted HtmlAttributeTest --- .../Legacy/CSharpDirectivesTest.cs | 3 +- .../Legacy/HtmlAttributeTest.cs | 640 ++++-------------- ...otRewriteEscapedTransitions.syntaxtree.txt | 22 + ...ledForDataAttributesInBlock.syntaxtree.txt | 26 + ...ForDataAttributesInDocument.syntaxtree.txt | 26 + ...ributesWithExperimentalFlag.syntaxtree.txt | 27 + ...ledForDataAttributesInBlock.syntaxtree.txt | 28 + ...ForDataAttributesInDocument.syntaxtree.txt | 24 + ...oubleQuotedLiteralAttribute.syntaxtree.txt | 25 + ...WhitespaceSurroundingEquals.syntaxtree.txt | 27 + .../MultiPartLiteralAttribute.syntaxtree.txt | 25 + ...ltiValueExpressionAttribute.syntaxtree.txt | 34 + .../NewLineBetweenAttributes.syntaxtree.txt | 29 + .../NewLinePrecedingAttribute.syntaxtree.txt | 19 + .../SimpleExpressionAttribute.syntaxtree.txt | 23 + .../SimpleLiteralAttribute.syntaxtree.txt | 19 + ...WhitespaceSurroundingEquals.syntaxtree.txt | 23 + .../SymbolBoundAttributes1.syntaxtree.txt | 21 + .../SymbolBoundAttributes2.syntaxtree.txt | 20 + .../SymbolBoundAttributes3.syntaxtree.txt | 19 + .../SymbolBoundAttributes4.syntaxtree.txt | 19 + .../SymbolBoundAttributes5.syntaxtree.txt | 19 + .../SymbolBoundAttributes6.syntaxtree.txt | 19 + ...utes_BeforeEqualWhitespace1.syntaxtree.txt | 35 + ...utes_BeforeEqualWhitespace2.syntaxtree.txt | 33 + ...utes_BeforeEqualWhitespace3.syntaxtree.txt | 31 + ...utes_BeforeEqualWhitespace4.syntaxtree.txt | 31 + ...utes_BeforeEqualWhitespace5.syntaxtree.txt | 31 + ...utes_BeforeEqualWhitespace6.syntaxtree.txt | 31 + ...BoundAttributes_Whitespace1.syntaxtree.txt | 36 + ...BoundAttributes_Whitespace2.syntaxtree.txt | 34 + ...BoundAttributes_Whitespace3.syntaxtree.txt | 32 + ...BoundAttributes_Whitespace4.syntaxtree.txt | 32 + ...BoundAttributes_Whitespace5.syntaxtree.txt | 32 + ...BoundAttributes_Whitespace6.syntaxtree.txt | 32 + ...teWithCodeWithSpacesInBlock.syntaxtree.txt | 20 + ...ithCodeWithSpacesInDocument.syntaxtree.txt | 20 + .../UnquotedLiteralAttribute.syntaxtree.txt | 24 + ...rkWithConditionalAttributes.syntaxtree.txt | 30 + ...ndNewLinePrecedingAttribute.syntaxtree.txt | 20 + .../Language/Legacy/ParserTestBase.cs | 32 +- 41 files changed, 1162 insertions(+), 511 deletions(-) create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.syntaxtree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpDirectivesTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpDirectivesTest.cs index 56c5eb8548..abba962a46 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpDirectivesTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpDirectivesTest.cs @@ -923,8 +923,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (UseBaselineTests && !IsTheory) { - SyntaxTreeVerifier.Verify(result); - AssertSyntaxTreeNodeMatchesBaseline(result); + BaselineTest(result); return; } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs index 64686c9fbb..6fdf7f685f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs @@ -3,465 +3,225 @@ using System; using System.Linq; -using Moq; using Xunit; namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class HtmlAttributeTest : CsHtmlMarkupParserTestBase { - public static TheoryData SymbolBoundAttributeNames + public HtmlAttributeTest() { - get - { - return new TheoryData - { - "[item]", - "[(item,", - "(click)", - "(^click)", - "*something", - "#local", - }; - } + UseBaselineTests = true; } - [Theory] - [MemberData(nameof(SymbolBoundAttributeNames))] - public void SymbolBoundAttributes_BeforeEqualWhitespace(string attributeName) + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace1() { - // Arrange - var attributeNameLength = attributeName.Length; - var newlineLength = Environment.NewLine.Length; - var prefixLocation1 = new SourceLocation( - absoluteIndex: 2, - lineIndex: 0, - characterIndex: 2); - var suffixLocation1 = new SourceLocation( - absoluteIndex: 8 + newlineLength + attributeNameLength, - lineIndex: 1, - characterIndex: 5); - var valueLocation1 = new SourceLocation( - absoluteIndex: 5 + attributeNameLength + newlineLength, - lineIndex: 1, - characterIndex: 2); - var prefixLocation2 = SourceLocationTracker.Advance(suffixLocation1, "'"); - var suffixLocation2 = new SourceLocation( - absoluteIndex: 15 + attributeNameLength * 2 + newlineLength * 2, - lineIndex: 2, - characterIndex: 4); - var valueLocation2 = new SourceLocation( - absoluteIndex: 12 + attributeNameLength * 2 + newlineLength * 2, - lineIndex: 2, - characterIndex: 1); - - // Act & Assert - ParseBlockTest( - $"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("( - $" {attributeName}{Environment.NewLine}='", prefixLocation1), - suffix: new LocationTagged("'", suffixLocation1)), - Factory.Markup($" {attributeName}{Environment.NewLine}='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, valueLocation1), - value: new LocationTagged("Foo", valueLocation1))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - new MarkupBlock( - new AttributeBlockChunkGenerator( - attributeName, - prefix: new LocationTagged( - $"\t{attributeName}={Environment.NewLine}'", prefixLocation2), - suffix: new LocationTagged("'", suffixLocation2)), - Factory.Markup($"\t{attributeName}={Environment.NewLine}'").With(SpanChunkGenerator.Null), - Factory.Markup("Bar").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, valueLocation2), - value: new LocationTagged("Bar", valueLocation2))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + var attributeName = "[item]"; + ParseBlockTest($""); } - [Theory] - [MemberData(nameof(SymbolBoundAttributeNames))] - public void SymbolBoundAttributes_Whitespace(string attributeName) + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace2() { - // Arrange - var attributeNameLength = attributeName.Length; - var newlineLength = Environment.NewLine.Length; - var prefixLocation1 = new SourceLocation( - absoluteIndex: 2, - lineIndex: 0, - characterIndex: 2); - var suffixLocation1 = new SourceLocation( - absoluteIndex: 10 + newlineLength + attributeNameLength, - lineIndex: 1, - characterIndex: 7 + attributeNameLength); - var valueLocation1 = new SourceLocation( - absoluteIndex: 7 + attributeNameLength + newlineLength, - lineIndex: 1, - characterIndex: 4 + attributeNameLength); - var prefixLocation2 = SourceLocationTracker.Advance(suffixLocation1, "'"); - var suffixLocation2 = new SourceLocation( - absoluteIndex: 17 + attributeNameLength * 2 + newlineLength * 2, - lineIndex: 2, - characterIndex: 5 + attributeNameLength); - var valueLocation2 = new SourceLocation( - absoluteIndex: 14 + attributeNameLength * 2 + newlineLength * 2, - lineIndex: 2, - characterIndex: 2 + attributeNameLength); - - // Act & Assert - ParseBlockTest( - $"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("( - $" {Environment.NewLine} {attributeName}='", prefixLocation1), - suffix: new LocationTagged("'", suffixLocation1)), - Factory.Markup($" {Environment.NewLine} {attributeName}='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, valueLocation1), - value: new LocationTagged("Foo", valueLocation1))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - new MarkupBlock( - new AttributeBlockChunkGenerator( - attributeName, - prefix: new LocationTagged( - $"\t{Environment.NewLine}{attributeName}='", prefixLocation2), - suffix: new LocationTagged("'", suffixLocation2)), - Factory.Markup($"\t{Environment.NewLine}{attributeName}='").With(SpanChunkGenerator.Null), - Factory.Markup("Bar").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, valueLocation2), - value: new LocationTagged("Bar", valueLocation2))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + var attributeName = "[(item,"; + ParseBlockTest($""); } - [Theory] - [MemberData(nameof(SymbolBoundAttributeNames))] - public void SymbolBoundAttributes(string attributeName) + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace3() { - // Arrange - var attributeNameLength = attributeName.Length; - var suffixLocation = 8 + attributeNameLength; - var valueLocation = 5 + attributeNameLength; + var attributeName = "(click)"; + ParseBlockTest($""); + } - // Act & Assert - ParseBlockTest($"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("($" {attributeName}='", 2, 0, 2), - suffix: new LocationTagged("'", suffixLocation, 0, suffixLocation)), - Factory.Markup($" {attributeName}='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, valueLocation, 0, valueLocation), - value: new LocationTagged("Foo", valueLocation, 0, valueLocation))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace4() + { + var attributeName = "(^click)"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace5() + { + var attributeName = "*something"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_BeforeEqualWhitespace6() + { + var attributeName = "#local"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace1() + { + var attributeName = "[item]"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace2() + { + var attributeName = "[(item,"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace3() + { + var attributeName = "(click)"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace4() + { + var attributeName = "(^click)"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace5() + { + var attributeName = "*something"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes_Whitespace6() + { + var attributeName = "#local"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes1() + { + var attributeName = "[item]"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes2() + { + var attributeName = "[(item,"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes3() + { + var attributeName = "(click)"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes4() + { + var attributeName = "(^click)"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes5() + { + var attributeName = "*something"; + ParseBlockTest($""); + } + + [Fact] + public void SymbolBoundAttributes6() + { + var attributeName = "#local"; + ParseBlockTest($""); } [Fact] public void SimpleLiteralAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href='", 2, 0, 2), suffix: new LocationTagged("'", 12, 0, 12)), - Factory.Markup(" href='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 9, 0, 9), value: new LocationTagged("Foo", 9, 0, 9))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void SimpleLiteralAttributeWithWhitespaceSurroundingEquals() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href \f\r\n= \t\n'", 2, 0, 2), - suffix: new LocationTagged("'", 19, 2, 4)), - Factory.Markup(" href \f\r\n= \t\n'").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 16, 2, 1), value: new LocationTagged("Foo", 16, 2, 1))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void DynamicAttributeWithWhitespaceSurroundingEquals() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href \n= \r\n'", 2, 0, 2), - suffix: new LocationTagged("'", 18, 2, 5)), - Factory.Markup(" href \n= \r\n'").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 14, 2, 1), 14, 2, 1), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("Foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void MultiPartLiteralAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href='", 2, 0, 2), suffix: new LocationTagged("'", 20, 0, 20)), - Factory.Markup(" href='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(string.Empty, 9, 0, 9), value: new LocationTagged("Foo", 9, 0, 9))), - Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 12, 0, 12), value: new LocationTagged("Bar", 13, 0, 13))), - Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 16, 0, 16), value: new LocationTagged("Baz", 17, 0, 17))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void DoubleQuotedLiteralAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href=\"", 2, 0, 2), suffix: new LocationTagged("\"", 20, 0, 20)), - Factory.Markup(" href=\"").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(string.Empty, 9, 0, 9), value: new LocationTagged("Foo", 9, 0, 9))), - Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 12, 0, 12), value: new LocationTagged("Bar", 13, 0, 13))), - Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 16, 0, 16), value: new LocationTagged("Baz", 17, 0, 17))), - Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void NewLinePrecedingAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("("\r\nhref='", 2, 0, 2), - suffix: new LocationTagged("'", 13, 1, 9)), - Factory.Markup("\r\nhref='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 10, 1, 6), - value: new LocationTagged("Foo", 10, 1, 6))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void NewLineBetweenAttributes() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("("\nhref='", 2, 0, 2), - suffix: new LocationTagged("'", 12, 1, 9)), - Factory.Markup("\nhref='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 9, 1, 6), - value: new LocationTagged("Foo", 9, 1, 6))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - new MarkupBlock( - new AttributeBlockChunkGenerator( - name: "abcd", - prefix: new LocationTagged("\r\nabcd='", 13, 1, 10), - suffix: new LocationTagged("'", 24, 2, 9)), - Factory.Markup("\r\nabcd='").With(SpanChunkGenerator.Null), - Factory.Markup("Bar").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 21, 2, 6), - value: new LocationTagged("Bar", 21, 2, 6))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void WhitespaceAndNewLinePrecedingAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" \t\r\nhref='", 2, 0, 2), - suffix: new LocationTagged("'", 15, 1, 9)), - Factory.Markup(" \t\r\nhref='").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With( - new LiteralAttributeChunkGenerator( - prefix: new LocationTagged(string.Empty, 12, 1, 6), - value: new LocationTagged("Foo", 12, 1, 6))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void UnquotedLiteralAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href=", 2, 0, 2), suffix: new LocationTagged(string.Empty, 11, 0, 11)), - Factory.Markup(" href=").With(SpanChunkGenerator.Null), - Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(string.Empty, 8, 0, 8), value: new LocationTagged("Foo", 8, 0, 8)))), - new MarkupBlock(Factory.Markup(" Bar")), - new MarkupBlock(Factory.Markup(" Baz")), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void SimpleExpressionAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href='", 2, 0, 2), suffix: new LocationTagged("'", 13, 0, 13)), - Factory.Markup(" href='").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 9, 0, 9), 9, 0, 9), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void MultiValueExpressionAttribute() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href='", 2, 0, 2), suffix: new LocationTagged("'", 22, 0, 22)), - Factory.Markup(" href='").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 9, 0, 9), 9, 0, 9), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup(" bar").With(new LiteralAttributeChunkGenerator(new LocationTagged(" ", 13, 0, 13), new LocationTagged("bar", 14, 0, 14))), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(" ", 17, 0, 17), 18, 0, 18), - Factory.Markup(" ").With(SpanChunkGenerator.Null), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("baz") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void VirtualPathAttributesWorkWithConditionalAttributes() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" href='", 2, 0, 2), suffix: new LocationTagged("'", 23, 0, 23)), - Factory.Markup(" href='").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 9, 0, 9), 9, 0, 9), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup(" ~/Foo/Bar") - .With(new LiteralAttributeChunkGenerator( - new LocationTagged(" ", 13, 0, 13), - new LocationTagged("~/Foo/Bar", 14, 0, 14))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void UnquotedAttributeWithCodeWithSpacesInBlock() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" value=", 6, 0, 6), suffix: new LocationTagged(string.Empty, 17, 0, 17)), - Factory.Markup(" value=").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 13, 0, 13), 13, 0, 13), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void UnquotedAttributeWithCodeWithSpacesInDocument() { - ParseDocumentTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" value=", 6, 0, 6), suffix: new LocationTagged(string.Empty, 17, 0, 17)), - Factory.Markup(" value=").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 13, 0, 13), 13, 0, 13), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), - Factory.Markup(" />")))); + ParseDocumentTest(""); } [Fact] @@ -473,18 +233,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var rewritten = attributeCollapser.Rewrite(results.Root); // Assert - EvaluateParseTree(rewritten, - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" foo='", 5, 0, 5), new LocationTagged("'", 13, 0, 13)), - Factory.Markup(" foo='").With(SpanChunkGenerator.Null), - new MarkupBlock( - Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 11, 0, 11), new LocationTagged("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None), - Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />")))); + BaselineTest(rewritten); } [Fact] @@ -564,144 +313,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest( RazorLanguageVersion.Experimental, - "", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" data-foo='", 5, 0, 5), new LocationTagged("'", 20, 0, 20)), - Factory.Markup(" data-foo='").With(SpanChunkGenerator.Null), - new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(string.Empty, 16, 0, 16), 16, 0, 16), - new ExpressionBlock( - Factory.CodeTransition(), - Factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ""); } [Fact] public void ConditionalAttributesAreDisabledForDataAttributesInBlock() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ConditionalAttributesAreDisabledForDataAttributesInDocument() { - ParseDocumentTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("")), - new MarkupTagBlock( - Factory.Markup("")))); + ParseDocumentTest(""); } [Fact] public void ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument() { - ParseDocumentTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("")), - new MarkupTagBlock( - Factory.Markup("")))); - } - - private class EmptyTestDocument : ITextDocument - { - public int Length - { - get - { - throw new NotImplementedException(); - } - } - - public SourceLocation Location - { - get - { - throw new NotImplementedException(); - } - } - - public int Position - { - get - { - throw new NotImplementedException(); - } - - set - { - throw new NotImplementedException(); - } - } - - public int Peek() - { - throw new NotImplementedException(); - } - - public int Read() - { - throw new NotImplementedException(); - } + ParseDocumentTest(""); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions.syntaxtree.txt new file mode 100644 index 0000000000..ae9fda8436 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributeCollapserDoesNotRewriteEscapedTransitions.syntaxtree.txt @@ -0,0 +1,22 @@ +Markup block - Gen - 17 - (0:0,0) + Tag block - Gen - 17 - (0:0,0) + Markup span - Gen - [ - 9 - (5:0,5) + Markup span - Gen - [ foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 2 - (11:0,11) + Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (11:0,11) - Symbols:1 + HtmlSymbolType.Transition;[@]; + Markup span - Gen - [@] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:1 + HtmlSymbolType.Transition;[@]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.syntaxtree.txt new file mode 100644 index 0000000000..602ab3d5b2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInBlock.syntaxtree.txt @@ -0,0 +1,26 @@ +Markup block - Gen - 29 - (0:0,0) + Tag block - Gen - 22 - (0:0,0) + Markup span - Gen - [ - 16 - (5:0,5) + Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[data-foo]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Expression block - Gen - 4 - (16:0,16) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (22:0,22) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[span]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.syntaxtree.txt new file mode 100644 index 0000000000..2bb7e7a974 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreDisabledForDataAttributesInDocument.syntaxtree.txt @@ -0,0 +1,26 @@ +Markup block - Gen - 29 - (0:0,0) + Tag block - Gen - 22 - (0:0,0) + Markup span - Gen - [ - 16 - (5:0,5) + Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[data-foo]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Expression block - Gen - 4 - (16:0,16) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (22:0,22) + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[span]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.syntaxtree.txt new file mode 100644 index 0000000000..71f3e5d07c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesAreEnabledForDataAttributesWithExperimentalFlag.syntaxtree.txt @@ -0,0 +1,27 @@ +Markup block - Gen - 29 - (0:0,0) + Tag block - Gen - 22 - (0:0,0) + Markup span - Gen - [ - 16 - (5:0,5) + Markup span - Gen - [ data-foo='] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[data-foo]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 4 - (16:0,16) + Expression block - Gen - 4 - (16:0,16) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (17:0,17) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (22:0,22) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[span]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.syntaxtree.txt new file mode 100644 index 0000000000..a4e9edca87 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInBlock.syntaxtree.txt @@ -0,0 +1,28 @@ +Markup block - Gen - 33 - (0:0,0) + Tag block - Gen - 26 - (0:0,0) + Markup span - Gen - [ - 20 - (5:0,5) + Markup span - Gen - [ data-foo = '] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[data-foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.SingleQuote;[']; + Expression block - Gen - 4 - (20:0,20) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (21:0,21) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (24:0,24) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (26:0,26) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (26:0,26) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[span]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.syntaxtree.txt new file mode 100644 index 0000000000..af0247c1e3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/ConditionalAttributesWithWeirdSpacingAreDisabledForDataAttributesInDocument.syntaxtree.txt @@ -0,0 +1,24 @@ +Markup block - Gen - 28 - (0:0,0) + Tag block - Gen - 21 - (0:0,0) + Markup span - Gen - [ - 14 - (5:0,5) + Markup span - Gen - [ data-foo=] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[data-foo]; + HtmlSymbolType.Equals;[=]; + 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[RTD];K14 - (16:0,16) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - [ >] - SpanEditHandler;Accepts:Any - (19:0,19) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (21:0,21) + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[span]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.syntaxtree.txt new file mode 100644 index 0000000000..60aa126b31 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DoubleQuotedLiteralAttribute.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 24 - (0:0,0) + Tag block - Gen - 24 - (0:0,0) + Markup span - Gen - [ - 19 - (2:0,2) + Markup span - Gen - [ href="] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1 + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt new file mode 100644 index 0000000000..0d25110a6e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/DynamicAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt @@ -0,0 +1,27 @@ +Markup block - Gen - 23 - (0:0,0) + Tag block - Gen - 23 - (0:0,0) + Markup span - Gen - [ - 18 - (2:0,2) + Markup span - Gen - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 4 - (15:2,1) + Expression block - Gen - 4 - (15:2,1) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (15:2,1) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [Foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (16:2,2) - Symbols:1 + CSharpSymbolType.Identifier;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:2,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (20:2,6) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.syntaxtree.txt new file mode 100644 index 0000000000..957dae8ec1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiPartLiteralAttribute.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 24 - (0:0,0) + Tag block - Gen - 24 - (0:0,0) + Markup span - Gen - [ - 19 - (2:0,2) + Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:0,20) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.syntaxtree.txt new file mode 100644 index 0000000000..6eda21e7fd --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/MultiValueExpressionAttribute.syntaxtree.txt @@ -0,0 +1,34 @@ +Markup block - Gen - 26 - (0:0,0) + Tag block - Gen - 26 - (0:0,0) + Markup span - Gen - [ - 21 - (2:0,2) + Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 4 - (9:0,9) + Expression block - Gen - 4 - (9:0,9) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - [ bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + Markup block - Gen - 5 - (17:0,17) + Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:1 + HtmlSymbolType.WhiteSpace;[ ]; + Expression block - Gen - 4 - (18:0,18) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [baz] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (19:0,19) - Symbols:1 + CSharpSymbolType.Identifier;[baz]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:0,22) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.syntaxtree.txt new file mode 100644 index 0000000000..b94af221c6 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLineBetweenAttributes.syntaxtree.txt @@ -0,0 +1,29 @@ +Markup block - Gen - 29 - (0:0,0) + Tag block - Gen - 29 - (0:0,0) + Markup span - Gen - [ - 12 - (2:0,2) + Markup span - Gen - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 12 - (14:1,10) + Markup span - Gen - [LFabcd='] - SpanEditHandler;Accepts:Any - (14:1,10) - Symbols:4 + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[abcd]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (22:2,6) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (25:2,9) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (26:2,10) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.syntaxtree.txt new file mode 100644 index 0000000000..edab638ad1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/NewLinePrecedingAttribute.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 17 - (0:0,0) + Tag block - Gen - 17 - (0:0,0) + Markup span - Gen - [ - 12 - (2:0,2) + Markup span - Gen - [LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (10:1,6) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:1,9) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (14:1,10) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.syntaxtree.txt new file mode 100644 index 0000000000..79d64b2f5c --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleExpressionAttribute.syntaxtree.txt @@ -0,0 +1,23 @@ +Markup block - Gen - 17 - (0:0,0) + Tag block - Gen - 17 - (0:0,0) + Markup span - Gen - [ - 12 - (2:0,2) + Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 4 - (9:0,9) + Expression block - Gen - 4 - (9:0,9) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.syntaxtree.txt new file mode 100644 index 0000000000..a16c8b85d6 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttribute.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 16 - (0:0,0) + Tag block - Gen - 16 - (0:0,0) + Markup span - Gen - [ - 11 - (2:0,2) + Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt new file mode 100644 index 0000000000..91ce2ead5e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SimpleLiteralAttributeWithWhitespaceSurroundingEquals.syntaxtree.txt @@ -0,0 +1,23 @@ +Markup block - Gen - 24 - (0:0,0) + Tag block - Gen - 24 - (0:0,0) + Markup span - Gen - [ - 19 - (2:0,2) + Markup span - Gen - [ href LF= LF'] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:2,1) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (21:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.syntaxtree.txt new file mode 100644 index 0000000000..c34837ae53 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes1.syntaxtree.txt @@ -0,0 +1,21 @@ +Markup block - Gen - 18 - (0:0,0) + Tag block - Gen - 18 - (0:0,0) + Markup span - Gen - [ - 13 - (2:0,2) + Markup span - Gen - [ [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[item]; + HtmlSymbolType.RightBracket;[]]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.syntaxtree.txt new file mode 100644 index 0000000000..1eb8707834 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes2.syntaxtree.txt @@ -0,0 +1,20 @@ +Markup block - Gen - 19 - (0:0,0) + Tag block - Gen - 19 - (0:0,0) + Markup span - Gen - [ - 14 - (2:0,2) + Markup span - Gen - [ [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[(item,]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.syntaxtree.txt new file mode 100644 index 0000000000..3e2fa00788 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes3.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 19 - (0:0,0) + Tag block - Gen - 19 - (0:0,0) + Markup span - Gen - [ - 14 - (2:0,2) + Markup span - Gen - [ (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.syntaxtree.txt new file mode 100644 index 0000000000..be065341ba --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes4.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 20 - (0:0,0) + Tag block - Gen - 20 - (0:0,0) + Markup span - Gen - [ - 15 - (2:0,2) + Markup span - Gen - [ (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(^click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.syntaxtree.txt new file mode 100644 index 0000000000..c4f5fccd52 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes5.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 22 - (0:0,0) + Tag block - Gen - 22 - (0:0,0) + Markup span - Gen - [ - 17 - (2:0,2) + Markup span - Gen - [ *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[*something]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:0,18) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.syntaxtree.txt new file mode 100644 index 0000000000..9cc08e57d7 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes6.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 18 - (0:0,0) + Tag block - Gen - 18 - (0:0,0) + Markup span - Gen - [ - 13 - (2:0,2) + Markup span - Gen - [ #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[#local]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (14:0,14) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.syntaxtree.txt new file mode 100644 index 0000000000..fa3e6f5d54 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace1.syntaxtree.txt @@ -0,0 +1,35 @@ +Markup block - Gen - 35 - (0:0,0) + Tag block - Gen - 35 - (0:0,0) + Markup span - Gen - [ - 15 - (2:0,2) + Markup span - Gen - [ [item]LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:7 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[item]; + HtmlSymbolType.RightBracket;[]]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 15 - (17:1,6) + Markup span - Gen - [ [item]=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Symbols:7 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[item]; + HtmlSymbolType.RightBracket;[]]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.syntaxtree.txt new file mode 100644 index 0000000000..8a02dfd167 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace2.syntaxtree.txt @@ -0,0 +1,33 @@ +Markup block - Gen - 37 - (0:0,0) + Tag block - Gen - 37 - (0:0,0) + Markup span - Gen - [ - 16 - (2:0,2) + Markup span - Gen - [ [(item,LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[(item,]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 16 - (18:1,6) + Markup span - Gen - [ [(item,=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[(item,]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.syntaxtree.txt new file mode 100644 index 0000000000..48499553e2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace3.syntaxtree.txt @@ -0,0 +1,31 @@ +Markup block - Gen - 37 - (0:0,0) + Tag block - Gen - 37 - (0:0,0) + Markup span - Gen - [ - 16 - (2:0,2) + Markup span - Gen - [ (click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(click)]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (14:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (17:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 16 - (18:1,6) + Markup span - Gen - [ (click)=LF'] - SpanEditHandler;Accepts:Any - (18:1,6) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.syntaxtree.txt new file mode 100644 index 0000000000..8546f99429 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace4.syntaxtree.txt @@ -0,0 +1,31 @@ +Markup block - Gen - 39 - (0:0,0) + Tag block - Gen - 39 - (0:0,0) + Markup span - Gen - [ - 17 - (2:0,2) + Markup span - Gen - [ (^click)LF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(^click)]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 17 - (19:1,6) + Markup span - Gen - [ (^click)=LF'] - SpanEditHandler;Accepts:Any - (19:1,6) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(^click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.syntaxtree.txt new file mode 100644 index 0000000000..0a98fe3869 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace5.syntaxtree.txt @@ -0,0 +1,31 @@ +Markup block - Gen - 43 - (0:0,0) + Tag block - Gen - 43 - (0:0,0) + Markup span - Gen - [ - 19 - (2:0,2) + Markup span - Gen - [ *somethingLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[*something]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 19 - (21:1,6) + Markup span - Gen - [ *something=LF'] - SpanEditHandler;Accepts:Any - (21:1,6) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[*something]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (36:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (39:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (40:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.syntaxtree.txt new file mode 100644 index 0000000000..57dc419f23 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_BeforeEqualWhitespace6.syntaxtree.txt @@ -0,0 +1,31 @@ +Markup block - Gen - 35 - (0:0,0) + Tag block - Gen - 35 - (0:0,0) + Markup span - Gen - [ - 15 - (2:0,2) + Markup span - Gen - [ #localLF='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[#local]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (13:1,2) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:1,5) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 15 - (17:1,6) + Markup span - Gen - [ #local=LF'] - SpanEditHandler;Accepts:Any - (17:1,6) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[#local]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (28:2,1) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (31:2,4) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (32:2,5) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.syntaxtree.txt new file mode 100644 index 0000000000..8c37de9446 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace1.syntaxtree.txt @@ -0,0 +1,36 @@ +Markup block - Gen - 37 - (0:0,0) + Tag block - Gen - 37 - (0:0,0) + Markup span - Gen - [ - 17 - (2:0,2) + Markup span - Gen - [ LF [item]='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:8 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[item]; + HtmlSymbolType.RightBracket;[]]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 15 - (19:1,14) + Markup span - Gen - [ LF[item]='] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:7 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[item]; + HtmlSymbolType.RightBracket;[]]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.syntaxtree.txt new file mode 100644 index 0000000000..225cad96a2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace2.syntaxtree.txt @@ -0,0 +1,34 @@ +Markup block - Gen - 39 - (0:0,0) + Tag block - Gen - 39 - (0:0,0) + Markup span - Gen - [ - 18 - (2:0,2) + Markup span - Gen - [ LF [(item,='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:7 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[(item,]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 16 - (20:1,15) + Markup span - Gen - [ LF[(item,='] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.LeftBracket;[[]; + HtmlSymbolType.Text;[(item,]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.syntaxtree.txt new file mode 100644 index 0000000000..d7b112f36a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace3.syntaxtree.txt @@ -0,0 +1,32 @@ +Markup block - Gen - 39 - (0:0,0) + Tag block - Gen - 39 - (0:0,0) + Markup span - Gen - [ - 18 - (2:0,2) + Markup span - Gen - [ LF (click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (16:1,11) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 16 - (20:1,15) + Markup span - Gen - [ LF(click)='] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[(click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (32:2,9) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (35:2,12) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (36:2,13) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.syntaxtree.txt new file mode 100644 index 0000000000..5891c6d877 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace4.syntaxtree.txt @@ -0,0 +1,32 @@ +Markup block - Gen - 41 - (0:0,0) + Tag block - Gen - 41 - (0:0,0) + Markup span - Gen - [ - 19 - (2:0,2) + Markup span - Gen - [ LF (^click)='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[(^click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (17:1,12) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (20:1,15) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 17 - (21:1,16) + Markup span - Gen - [ LF(^click)='] - SpanEditHandler;Accepts:Any - (21:1,16) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[(^click)]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (34:2,10) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (37:2,13) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (38:2,14) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.syntaxtree.txt new file mode 100644 index 0000000000..58bb7a2b3f --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace5.syntaxtree.txt @@ -0,0 +1,32 @@ +Markup block - Gen - 45 - (0:0,0) + Tag block - Gen - 45 - (0:0,0) + Markup span - Gen - [ - 21 - (2:0,2) + Markup span - Gen - [ LF *something='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[*something]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (22:1,17) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 19 - (23:1,18) + Markup span - Gen - [ LF*something='] - SpanEditHandler;Accepts:Any - (23:1,18) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[*something]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (38:2,12) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (41:2,15) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (42:2,16) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.syntaxtree.txt new file mode 100644 index 0000000000..ca6bd4894e --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/SymbolBoundAttributes_Whitespace6.syntaxtree.txt @@ -0,0 +1,32 @@ +Markup block - Gen - 37 - (0:0,0) + Tag block - Gen - 37 - (0:0,0) + Markup span - Gen - [ - 17 - (2:0,2) + Markup span - Gen - [ LF #local='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[#local]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (15:1,10) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (18:1,13) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 15 - (19:1,14) + Markup span - Gen - [ LF#local='] - SpanEditHandler;Accepts:Any - (19:1,14) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[#local]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Bar] - SpanEditHandler;Accepts:Any - (30:2,8) - Symbols:1 + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (33:2,11) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (34:2,12) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.syntaxtree.txt new file mode 100644 index 0000000000..da82898b51 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInBlock.syntaxtree.txt @@ -0,0 +1,20 @@ +Markup block - Gen - 20 - (0:0,0) + Tag block - Gen - 20 - (0:0,0) + Markup span - Gen - [ - 11 - (6:0,6) + Markup span - Gen - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[value]; + HtmlSymbolType.Equals;[=]; + Markup block - Gen - 4 - (13:0,13) + Expression block - Gen - 4 - (13:0,13) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (14:0,14) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.syntaxtree.txt new file mode 100644 index 0000000000..4fc192b53b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedAttributeWithCodeWithSpacesInDocument.syntaxtree.txt @@ -0,0 +1,20 @@ +Markup block - Gen - 20 - (0:0,0) + Tag block - Gen - 20 - (0:0,0) + Markup span - Gen - [ - 11 - (6:0,6) + Markup span - Gen - [ value=] - SpanEditHandler;Accepts:Any - (6:0,6) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[value]; + HtmlSymbolType.Equals;[=]; + Markup block - Gen - 4 - (13:0,13) + Expression block - Gen - 4 - (13:0,13) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (13:0,13) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (14:0,14) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:Any - (17:0,17) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.syntaxtree.txt new file mode 100644 index 0000000000..a1d434aaff --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/UnquotedLiteralAttribute.syntaxtree.txt @@ -0,0 +1,24 @@ +Markup block - Gen - 22 - (0:0,0) + Tag block - Gen - 22 - (0:0,0) + Markup span - Gen - [ - 9 - (2:0,2) + Markup span - Gen - [ href=] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (8:0,8) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup block - Gen - 4 - (11:0,11) + Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (11:0,11) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + Markup block - Gen - 4 - (15:0,15) + Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.syntaxtree.txt new file mode 100644 index 0000000000..e1d5df2f35 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/VirtualPathAttributesWorkWithConditionalAttributes.syntaxtree.txt @@ -0,0 +1,30 @@ +Markup block - Gen - 27 - (0:0,0) + Tag block - Gen - 27 - (0:0,0) + Markup span - Gen - [ - 22 - (2:0,2) + Markup span - Gen - [ href='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup block - Gen - 4 - (9:0,9) + Expression block - Gen - 4 - (9:0,9) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [foo] - ImplicitExpressionEditHandler;Accepts:NonWhiteSpace;ImplicitExpression[RTD];K14 - (10:0,10) - Symbols:1 + CSharpSymbolType.Identifier;[foo]; + Markup span - Gen - [ ~/Foo/Bar] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:6 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[~]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[Foo]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[Bar]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.syntaxtree.txt new file mode 100644 index 0000000000..591aaa15d6 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlAttributeTest/WhitespaceAndNewLinePrecedingAttribute.syntaxtree.txt @@ -0,0 +1,20 @@ +Markup block - Gen - 19 - (0:0,0) + Tag block - Gen - 19 - (0:0,0) + Markup span - Gen - [ - 14 - (2:0,2) + Markup span - Gen - [ LFhref='] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:5 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.Text;[href]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [Foo] - SpanEditHandler;Accepts:Any - (12:1,6) - Symbols:1 + HtmlSymbolType.Text;[Foo]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (15:1,9) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (16:1,10) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs index 5354c54224..4089843e22 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs @@ -95,6 +95,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } internal void AssertSyntaxTreeNodeMatchesBaseline(RazorSyntaxTree syntaxTree) + { + AssertSyntaxTreeNodeMatchesBaseline(syntaxTree.Root, syntaxTree.Diagnostics.ToArray()); + } + + internal void AssertSyntaxTreeNodeMatchesBaseline(Block root, params RazorDiagnostic[] diagnostics) { if (FileName == null) { @@ -105,8 +110,6 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var baselineFileName = Path.ChangeExtension(FileName, ".syntaxtree.txt"); var baselineDiagnosticsFileName = Path.ChangeExtension(FileName, ".diagnostics.txt"); - var root = syntaxTree.Root; - var diagnostics = syntaxTree.Diagnostics; if (GenerateBaselines) { var baselineFullPath = Path.Combine(TestProjectRoot, baselineFileName); @@ -159,6 +162,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return Regex.Replace(content, "(?