From 1e58748f59c75e22fcace7d50aee013a2020b7e9 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Tue, 26 Jun 2018 15:36:41 -0700 Subject: [PATCH] Converted HtmlBlockTest to use baselines --- .../Legacy/HtmlBlockTest.cs | 486 ++---------------- ...mmentSupportsMultipleDashes.syntaxtree.txt | 133 +++++ ...rseBlockAcceptsEmptyTextTag.syntaxtree.txt | 7 + ...gAsOuterTagButDoesNotRender.syntaxtree.txt | 25 + ...ttributeValueIfDoubleQuoted.syntaxtree.txt | 30 ++ ...ttributeValueIfSingleQuoted.syntaxtree.txt | 30 ++ ...ttributeValueIfDoubleQuoted.syntaxtree.txt | 34 ++ ...ttributeValueIfSingleQuoted.syntaxtree.txt | 34 ++ ...artAndEndTagsToDifferInCase.syntaxtree.txt | 25 + ...anRecoverToAnExpectedEndTag.syntaxtree.txt | 22 + ...eSelfClosingTagsWithinBlock.syntaxtree.txt | 19 + ...MarkupWithEmbeddedStatement.syntaxtree.txt | 29 ++ ...rPsuedoTagWithinMarkupBlock.syntaxtree.txt | 28 + ...lessPreceededByQuestionMark.syntaxtree.txt | 25 + ...BlockHandlesOpenAngleAtEof.diagnostics.txt | 1 + ...eBlockHandlesOpenAngleAtEof.syntaxtree.txt | 14 + ...leWithProperTagFollowingIt.diagnostics.txt | 2 + ...gleWithProperTagFollowingIt.syntaxtree.txt | 24 + ...ancedTripleDashHTMLComments.syntaxtree.txt | 52 ++ ...esTagsInContentsOfScriptTag.syntaxtree.txt | 28 + ...tesCommentOnFullEndSequence.syntaxtree.txt | 18 + ...esSGMLDeclarationAsEmptyTag.syntaxtree.txt | 23 + ...itespaceCharacterIsStartTag.syntaxtree.txt | 34 ++ ...essingInstructionAsEmptyTag.syntaxtree.txt | 24 + ...ancesCommentStartAndEndTags.syntaxtree.txt | 17 + ...acterAfterTransitionIsColon.syntaxtree.txt | 15 + ...dersLiteralTextTagIfDoubled.syntaxtree.txt | 36 ++ ...tMatchingCloseTagToStartTag.syntaxtree.txt | 23 + ...ingMidEmptyTagIfEOFReached.diagnostics.txt | 1 + ...singMidEmptyTagIfEOFReached.syntaxtree.txt | 6 + ...ineBlockAtEOFIfNoEOLReached.syntaxtree.txt | 9 + ...BlockSupportsCommentAsBlock.syntaxtree.txt | 13 + ...CommentWithExtraDashAsBlock.syntaxtree.txt | 14 + ...kSupportsCommentWithinBlock.syntaxtree.txt | 28 + ...TagsWithLessThanSignsInThem.syntaxtree.txt | 24 + ...thSpacedLessThanSignsInThem.syntaxtree.txt | 26 + ...kSupportsTagsWithAttributes.syntaxtree.txt | 48 ++ .../ParseBlockTerminatesAtEOF.diagnostics.txt | 1 + .../ParseBlockTerminatesAtEOF.syntaxtree.txt | 6 + ...atesAtEOFWhenParsingComment.syntaxtree.txt | 8 + ...irstOccurrenceOfEndSequence.syntaxtree.txt | 30 ++ ...eclarationAtFirstCloseAngle.syntaxtree.txt | 25 + ...tQuestionMarkCloseAnglePair.syntaxtree.txt | 27 + ...eatsMalformedTagsAsContent.diagnostics.txt | 1 + ...reatsMalformedTagsAsContent.syntaxtree.txt | 17 + ...hSelfClosingTagJustEmitsTag.syntaxtree.txt | 8 + ...AngleDoesNotTerminateBlock.diagnostics.txt | 1 + ...eAngleDoesNotTerminateBlock.syntaxtree.txt | 7 + .../Language/Legacy/ParserTestBase.cs | 2 +- 49 files changed, 1106 insertions(+), 434 deletions(-) create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsEmptyTextTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsTextTagAsOuterTagButDoesNotRender.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfSingleQuoted.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfDoubleQuoted.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfSingleQuoted.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsStartAndEndTagsToDifferInCase.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCanHandleSelfClosingTagsWithinBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotConsiderPsuedoTagWithinMarkupBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotTerminateXMLProcessingInstructionAtCloseAngleUnlessPreceededByQuestionMark.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesUnbalancedTripleDashHTMLComments.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockIgnoresTagsInContentsOfScriptTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockOnlyTerminatesCommentOnFullEndSequence.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesSGMLDeclarationAsEmptyTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesXMLProcessingInstructionAsEmptyTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockProperlyBalancesCommentStartAndEndTags.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockRendersLiteralTextTagIfDoubled.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsAtMatchingCloseTagToStartTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingSingleLineBlockAtEOFIfNoEOLReached.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentAsBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithExtraDashAsBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithinBlock.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithLessThanSignsInThem.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithSpacedLessThanSignsInThem.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsTagsWithAttributes.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOFWhenParsingComment.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesCommentAtFirstOccurrenceOfEndSequence.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesSGMLDeclarationAtFirstCloseAngle.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockWithSelfClosingTagJustEmitsTag.syntaxtree.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.diagnostics.txt create mode 100644 test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.syntaxtree.txt diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs index 3abd53b105..6e3ca96b9e 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs @@ -8,47 +8,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { public class HtmlBlockTest : CsHtmlMarkupParserTestBase { + public HtmlBlockTest() + { + UseBaselineTests = true; + } + [Fact] public void ParseBlockHandlesUnbalancedTripleDashHTMLComments() { ParseDocumentTest( @"@{ -}", - new MarkupBlock( - Factory.EmptyHtml(), - new StatementBlock( - Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.Code(Environment.NewLine).AsStatement().AutoCompleteWith(null), - new MarkupBlock( - Factory.Markup(" "), - BlockFactory.HtmlCommentBlock(" Hello, I'm a comment that shouldn't break razor -"), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), - Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), - Factory.EmptyHtml()), - new RazorDiagnostic[0]); +}"); } [Fact] public void ParseBlockHandlesOpenAngleAtEof() { ParseDocumentTest("@{" + Environment.NewLine - + "<", - new MarkupBlock( - Factory.EmptyHtml(), - new StatementBlock( - Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.Code(Environment.NewLine) - .AsStatement() - .AutoCompleteWith("}"), - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("<"))))), - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), Resources.BlockName_Code, "}", "{")); + + "<"); } [Fact] @@ -57,601 +35,243 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseDocumentTest("@{" + Environment.NewLine + "<" + Environment.NewLine + "", - new MarkupBlock( - Factory.EmptyHtml(), - new StatementBlock( - Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), - Factory.Code(Environment.NewLine) - .AsStatement() - .AutoCompleteWith("}"), - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("<" + Environment.NewLine)) - ), - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - ), - Factory.EmptyCSharp().AsStatement() - ) - ), - designTime: true, - expectedErrors: new[] - { - RazorDiagnosticFactory.CreateParsing_UnexpectedEndTag( - new SourceSpan(new SourceLocation(5 + Environment.NewLine.Length * 2, 2, 2), contentLength: 4), "html"), - RazorDiagnosticFactory.CreateParsing_ExpectedEndOfBlockBeforeEOF( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), Resources.BlockName_Code, "}", "{"), - }); + designTime: true); } [Fact] public void TagWithoutCloseAngleDoesNotTerminateBlock() { ParseBlockTest("< " + Environment.NewLine - + " ", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup($"< {Environment.NewLine} "))), - designTime: true, - expectedErrors: RazorDiagnosticFactory.CreateParsing_UnfinishedTag( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 1), string.Empty)); + + " "); } [Fact] public void ParseBlockAllowsStartAndEndTagsToDifferInCase() { - ParseBlockTest("
  • Foo

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

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

    ").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest("
  • Foo

  • "); } [Fact] public void ParseBlockReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon() { ParseBlockTest("@:
  • Foo Bar Baz" + Environment.NewLine - + "bork", - new MarkupBlock( - Factory.MarkupTransition(), - Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("
  • Foo Bar Baz" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) - )); + + "bork"); } [Fact] public void ParseBlockStopsParsingSingleLineBlockAtEOFIfNoEOLReached() { - ParseBlockTest("@:foo bar", - new MarkupBlock( - Factory.MarkupTransition(), - Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup(@"foo bar") - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)) - )); + ParseBlockTest("@:foo bar"); } [Fact] public void ParseBlockStopsAtMatchingCloseTagToStartTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockAllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockWithSelfClosingTagJustEmitsTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockCanHandleSelfClosingTagsWithinBlock() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockSupportsTagsWithAttributes() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("(" bar=\"", 4, 0, 4), new LocationTagged("\"", 13, 0, 13)), - Factory.Markup(" bar=\"").With(SpanChunkGenerator.Null), - Factory.Markup("baz").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 10, 0, 10), new LocationTagged("baz", 10, 0, 10))), - Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("(" zoop=", 24, 0, 24), new LocationTagged(string.Empty, 34, 0, 34)), - Factory.Markup(" zoop=").With(SpanChunkGenerator.Null), - Factory.Markup("zork").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 30, 0, 30), new LocationTagged("zork", 30, 0, 30)))), - Factory.Markup("/>").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ParseBlockAllowsCloseAngleBracketInAttributeValueIfDoubleQuoted() { - ParseBlockTest("\" />", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("(" baz=\"", 9, 0, 9), new LocationTagged("\"", 16, 0, 16)), - Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null), - Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged(">", 15, 0, 15))), - Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest("\" />"); } [Fact] public void ParseBlockAllowsCloseAngleBracketInAttributeValueIfSingleQuoted() { - ParseBlockTest("\' />", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("(" baz='", 9, 0, 9), new LocationTagged("'", 16, 0, 16)), - Factory.Markup(" baz='").With(SpanChunkGenerator.Null), - Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged(">", 15, 0, 15))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest("\' />"); } [Fact] public void ParseBlockAllowsSlashInAttributeValueIfDoubleQuoted() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("(" baz=\"", 9, 0, 9), new LocationTagged("\"", 16, 0, 16)), - Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null), - Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged("/", 15, 0, 15))), - Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ParseBlockAllowsSlashInAttributeValueIfSingleQuoted() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("(" baz='", 9, 0, 9), new LocationTagged("'", 16, 0, 16)), - Factory.Markup(" baz='").With(SpanChunkGenerator.Null), - Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged("/", 15, 0, 15))), - Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ParseBlockTerminatesAtEOF() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), - RazorDiagnosticFactory.CreateParsing_MissingEndTag( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 3), "foo")); + ParseBlockTest(""); } [Fact] public void ParseBlockSupportsCommentAsBlock() { - ParseBlockTest("", new MarkupBlock(BlockFactory.HtmlCommentBlock(" foo "))); + ParseBlockTest(""); } [Fact] public void ParseBlockSupportsCommentWithExtraDashAsBlock() { - ParseBlockTest("", new MarkupBlock(BlockFactory.HtmlCommentBlock(" foo -"))); + ParseBlockTest(""); } [Fact] public void ParseBlockSupportsCommentWithinBlock() { - ParseBlockTest("barbaz", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("bar"), - BlockFactory.HtmlCommentBlock(" zoop "), - Factory.Markup("baz").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest("barbaz"); } - public static TheoryData HtmlCommentSupportsMultipleDashesData + [Fact] + public void HtmlCommentSupportsMultipleDashes() { - get - { - var factory = new SpanFactory(); - var blockFactory = new BlockFactory(factory); - return new TheoryData - { - { - "
    ", - new MarkupBlock( - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), - blockFactory.HtmlCommentBlock("- Hello World -"), - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) - }, - { - "
    ", - new MarkupBlock( - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), - blockFactory.HtmlCommentBlock("-- Hello World --"), - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) - }, - { - "
    ", - new MarkupBlock( - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), - blockFactory.HtmlCommentBlock("--- Hello World ---"), - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) - }, - { - "
    ", - new MarkupBlock( - new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), - blockFactory.HtmlCommentBlock("--- Hello < --- > World
    ---"), - new MarkupTagBlock( - factory.Markup("").Accepts(AcceptedCharactersInternal.None))) - }, - }; - } - } - - [Theory] - [MemberData(nameof(HtmlCommentSupportsMultipleDashesData))] - public void HtmlCommentSupportsMultipleDashes(string documentContent, object expectedOutput) - { - FixupSpans = true; - - ParseBlockTest(documentContent, (MarkupBlock)expectedOutput); + ParseDocumentTest( +@"
    +
    +
    +
    +"); } [Fact] public void ParseBlockProperlyBalancesCommentStartAndEndTags() { - ParseBlockTest("", new MarkupBlock(BlockFactory.HtmlCommentBlock(""))); + ParseBlockTest(""); } [Fact] public void ParseBlockTerminatesAtEOFWhenParsingComment() { - ParseBlockTest( - "", new MarkupBlock(BlockFactory.HtmlCommentBlock("--"))); + ParseBlockTest(""); } [Fact] public void ParseBlockTerminatesCommentAtFirstOccurrenceOfEndSequence() { - ParseBlockTest("-->", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - BlockFactory.HtmlCommentBlock("").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest("-->"); } [Fact] public void ParseBlockTreatsMalformedTagsAsContent() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), - RazorDiagnosticFactory.CreateParsing_MissingEndTag( - new SourceSpan(new SourceLocation(1, 0, 1), contentLength: 3), "foo")); + ParseBlockTest(""); } [Fact] public void ParseBlockParsesSGMLDeclarationAsEmptyTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ParseBlockTerminatesSGMLDeclarationAtFirstCloseAngle() { - ParseBlockTest(" baz>", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("").Accepts(AcceptedCharactersInternal.None), - Factory.Markup(" baz>"), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(" baz>"); } [Fact] public void ParseBlockParsesXMLProcessingInstructionAsEmptyTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(""); } [Fact] public void ParseBlockTerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair() { - ParseBlockTest(" baz", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("").Accepts(AcceptedCharactersInternal.None), - Factory.Markup(" baz"), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(" baz"); } [Fact] public void ParseBlockDoesNotTerminateXMLProcessingInstructionAtCloseAngleUnlessPreceededByQuestionMark() { - ParseBlockTest(" baz?>", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup(" baz?>").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(" baz?>"); } [Fact] public void ParseBlockSupportsScriptTagsWithLessThanSignsInThem() { - ParseBlockTest(@"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(@""); } [Fact] public void ParseBlockSupportsScriptTagsWithSpacedLessThanSignsInThem() { - ParseBlockTest(@"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(@""); } [Fact] public void ParseBlockAcceptsEmptyTextTag() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.MarkupTransition("")) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockAcceptsTextTagAsOuterTagButDoesNotRender() { - ParseBlockTest("Foo Bar Baz zoop", - new MarkupBlock( - new MarkupTagBlock( - Factory.MarkupTransition("")), - Factory.Markup("Foo Bar ").Accepts(AcceptedCharactersInternal.None), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup(" Baz"), - new MarkupTagBlock( - Factory.MarkupTransition("")))); + ParseBlockTest("Foo Bar Baz zoop"); } [Fact] public void ParseBlockRendersLiteralTextTagIfDoubled() { - ParseBlockTest("Foo Bar Baz zoop", - new MarkupBlock( - new MarkupTagBlock( - Factory.MarkupTransition("")), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("Foo Bar "), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup(" Baz"), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.MarkupTransition("")))); + ParseBlockTest("Foo Bar Baz zoop"); } [Fact] public void ParseBlockDoesNotConsiderPsuedoTagWithinMarkupBlock() { - ParseBlockTest("", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) - )); + ParseBlockTest(""); } [Fact] public void ParseBlockStopsParsingMidEmptyTagIfEOFReached() { - ParseBlockTest("
    Foo @if(true) {} Bar", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), - Factory.Markup("Foo "), - new StatementBlock( - Factory.CodeTransition(), - Factory.Code("if(true) {}").AsStatement()), - Factory.Markup(" Bar"), - new MarkupTagBlock( - Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest("
    Foo @if(true) {} Bar
    "); } [Fact] public void ParseBlockIgnoresTagsInContentsOfScriptTag() { - ParseBlockTest(@"", - new MarkupBlock( - new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); + ParseBlockTest(@""); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.syntaxtree.txt new file mode 100644 index 0000000000..cf4ac1e4ba --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/HtmlCommentSupportsMultipleDashes.syntaxtree.txt @@ -0,0 +1,133 @@ +Markup block - Gen - 165 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + HtmlComment block - Gen - 22 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (27:0,27) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (27:0,27) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (33:0,33) - Symbols:1 + HtmlSymbolType.NewLine;[LF]; + Tag block - Gen - 5 - (35:1,0) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (35:1,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + HtmlComment block - Gen - 24 - (40:1,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (61:1,26) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (64:1,29) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (64:1,29) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (70:1,35) - Symbols:1 + HtmlSymbolType.NewLine;[LF]; + Tag block - Gen - 5 - (72:2,0) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (72:2,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + HtmlComment block - Gen - 26 - (77:2,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (100:2,28) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (103:2,31) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (103:2,31) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (109:2,37) - Symbols:1 + HtmlSymbolType.NewLine;[LF]; + Tag block - Gen - 5 - (111:3,0) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (111:3,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + HtmlComment block - Gen - 41 - (116:3,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (154:3,43) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (157:3,46) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:Any - (157:3,46) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [LF] - SpanEditHandler;Accepts:Any - (163:3,52) - Symbols:1 + HtmlSymbolType.NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsEmptyTextTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsEmptyTextTag.syntaxtree.txt new file mode 100644 index 0000000000..f3f212fd59 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsEmptyTextTag.syntaxtree.txt @@ -0,0 +1,7 @@ +Markup block - Gen - 7 - (0:0,0) + Tag block - Gen - 7 - (0:0,0) + Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsTextTagAsOuterTagButDoesNotRender.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsTextTagAsOuterTagButDoesNotRender.syntaxtree.txt new file mode 100644 index 0000000000..bdbcde8a21 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAcceptsTextTagAsOuterTagButDoesNotRender.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 30 - (0:0,0) + Tag block - Gen - 6 - (0:0,0) + Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [Foo Bar ] - SpanEditHandler;Accepts:None - (6:0,6) - Symbols:4 + HtmlSymbolType.Text;[Foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + HtmlSymbolType.WhiteSpace;[ ]; + Tag block - Gen - 5 - (14:0,14) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (19:0,19) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + Tag block - Gen - 7 - (23:0,23) + Transition span - Gen - [] - SpanEditHandler;Accepts:None - (23:0,23) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.syntaxtree.txt new file mode 100644 index 0000000000..4bf5bf87cf --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfDoubleQuoted.syntaxtree.txt @@ -0,0 +1,30 @@ +Markup block - Gen - 26 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 15 - (5:0,5) + Markup span - Gen - [ - 8 - (9:0,9) + Markup span - Gen - [ baz="] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:1 + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [ />] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (20:0,20) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfSingleQuoted.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfSingleQuoted.syntaxtree.txt new file mode 100644 index 0000000000..f841c6e3e2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsCloseAngleBracketInAttributeValueIfSingleQuoted.syntaxtree.txt @@ -0,0 +1,30 @@ +Markup block - Gen - 26 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 15 - (5:0,5) + Markup span - Gen - [ - 8 - (9:0,9) + Markup span - Gen - [ baz='] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + 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;[>]; + Tag block - Gen - 6 - (20:0,20) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfDoubleQuoted.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfDoubleQuoted.syntaxtree.txt new file mode 100644 index 0000000000..c93a1c8b82 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfDoubleQuoted.syntaxtree.txt @@ -0,0 +1,34 @@ +Markup block - Gen - 30 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 13 - (5:0,5) + Markup span - Gen - [ - 8 - (9:0,9) + Markup span - Gen - [ baz="] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [/] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.ForwardSlash;[/]; + Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:1 + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (18:0,18) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (24:0,24) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfSingleQuoted.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfSingleQuoted.syntaxtree.txt new file mode 100644 index 0000000000..f6a505e1df --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsSlashInAttributeValueIfSingleQuoted.syntaxtree.txt @@ -0,0 +1,34 @@ +Markup block - Gen - 30 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 13 - (5:0,5) + Markup span - Gen - [ - 8 - (9:0,9) + Markup span - Gen - [ baz='] - SpanEditHandler;Accepts:Any - (9:0,9) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [/] - SpanEditHandler;Accepts:Any - (15:0,15) - Symbols:1 + HtmlSymbolType.ForwardSlash;[/]; + Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (16:0,16) - Symbols:1 + HtmlSymbolType.SingleQuote;[']; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (18:0,18) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (24:0,24) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsStartAndEndTagsToDifferInCase.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsStartAndEndTagsToDifferInCase.syntaxtree.txt new file mode 100644 index 0000000000..96663e5979 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsStartAndEndTagsToDifferInCase.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 19 - (0:0,0) + Tag block - Gen - 4 - (0:0,0) + Markup span - Gen - [
  • ] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[li]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 3 - (4:0,4) + Markup span - Gen - [

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

    ] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[P]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (14:0,14) + Markup span - Gen - [
  • ] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[lI]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.syntaxtree.txt new file mode 100644 index 0000000000..3010542a8f --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockAllowsUnclosedTagsAsLongAsItCanRecoverToAnExpectedEndTag.syntaxtree.txt @@ -0,0 +1,22 @@ +Markup block - Gen - 21 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (10:0,10) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (15:0,15) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCanHandleSelfClosingTagsWithinBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCanHandleSelfClosingTagsWithinBlock.syntaxtree.txt new file mode 100644 index 0000000000..de14d12c44 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCanHandleSelfClosingTagsWithinBlock.syntaxtree.txt @@ -0,0 +1,19 @@ +Markup block - Gen - 18 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:5 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (12:0,12) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (12:0,12) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.syntaxtree.txt new file mode 100644 index 0000000000..3e216a7058 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockCorrectlyHandlesSingleLineOfMarkupWithEmbeddedStatement.syntaxtree.txt @@ -0,0 +1,29 @@ +Markup block - Gen - 31 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [Foo ] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:2 + HtmlSymbolType.Text;[Foo]; + HtmlSymbolType.WhiteSpace;[ ]; + Statement block - Gen - 12 - (9:0,9) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:1 + CSharpSymbolType.Transition;[@]; + Code span - Gen - [if(true) {}] - SpanEditHandler;Accepts:Any - (10:0,10) - Symbols:7 + CSharpSymbolType.Keyword;[if]; + CSharpSymbolType.LeftParenthesis;[(]; + CSharpSymbolType.Keyword;[true]; + CSharpSymbolType.RightParenthesis;[)]; + CSharpSymbolType.WhiteSpace;[ ]; + CSharpSymbolType.LeftBrace;[{]; + CSharpSymbolType.RightBrace;[}]; + Markup span - Gen - [ Bar] - SpanEditHandler;Accepts:Any - (21:0,21) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + Tag block - Gen - 6 - (25:0,25) + Markup span - Gen - [
    ] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[div]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotConsiderPsuedoTagWithinMarkupBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotConsiderPsuedoTagWithinMarkupBlock.syntaxtree.txt new file mode 100644 index 0000000000..54b33813a0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotConsiderPsuedoTagWithinMarkupBlock.syntaxtree.txt @@ -0,0 +1,28 @@ +Markup block - Gen - 28 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (11:0,11) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (11:0,11) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (16:0,16) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (16:0,16) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (22:0,22) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotTerminateXMLProcessingInstructionAtCloseAngleUnlessPreceededByQuestionMark.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotTerminateXMLProcessingInstructionAtCloseAngleUnlessPreceededByQuestionMark.syntaxtree.txt new file mode 100644 index 0000000000..c3ec0955cf --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockDoesNotTerminateXMLProcessingInstructionAtCloseAngleUnlessPreceededByQuestionMark.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 31 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ baz?>] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:12 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.Text;[xml]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (25:0,25) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.diagnostics.txt new file mode 100644 index 0000000000..1ced8c1b88 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.syntaxtree.txt new file mode 100644 index 0000000000..0261b81480 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleAtEof.syntaxtree.txt @@ -0,0 +1,14 @@ +Markup block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1 + HtmlSymbolType.Unknown;[]; + Statement block - Gen - 5 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1 + CSharpSymbolType.LeftBrace;[{]; + Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (2:0,2) - Symbols:1 + CSharpSymbolType.NewLine;[LF]; + Markup block - Gen - 1 - (4:1,0) + Tag block - Gen - 1 - (4:1,0) + Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (4:1,0) - Symbols:1 + HtmlSymbolType.OpenAngle;[<]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.diagnostics.txt new file mode 100644 index 0000000000..c3ebccbf81 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.diagnostics.txt @@ -0,0 +1,2 @@ +(3,3): Error RZ1026: Encountered end tag "html" with no matching start tag. Are your start/end tags properly balanced? +(1,2): Error RZ1006: The code block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.syntaxtree.txt new file mode 100644 index 0000000000..278a774360 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesOpenAngleWithProperTagFollowingIt.syntaxtree.txt @@ -0,0 +1,24 @@ +Markup block - Gen - 14 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1 + HtmlSymbolType.Unknown;[]; + Statement block - Gen - 14 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1 + CSharpSymbolType.LeftBrace;[{]; + Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[}];AtEOL - (2:0,2) - Symbols:1 + CSharpSymbolType.NewLine;[LF]; + Markup block - Gen - 3 - (4:1,0) + Tag block - Gen - 3 - (4:1,0) + Markup span - Gen - [ - 7 - (7:2,0) + Tag block - Gen - 7 - (7:2,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (7:2,0) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[html]; + HtmlSymbolType.CloseAngle;[>]; + Code span - Gen - [] - SpanEditHandler;Accepts:Any - (14:2,7) - Symbols:1 + CSharpSymbolType.Unknown;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesUnbalancedTripleDashHTMLComments.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesUnbalancedTripleDashHTMLComments.syntaxtree.txt new file mode 100644 index 0000000000..b5b47f3e0f --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockHandlesUnbalancedTripleDashHTMLComments.syntaxtree.txt @@ -0,0 +1,52 @@ +Markup block - Gen - 68 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:1 + HtmlSymbolType.Unknown;[]; + Statement block - Gen - 68 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + CSharpSymbolType.Transition;[@]; + MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Symbols:1 + CSharpSymbolType.LeftBrace;[{]; + Code span - Gen - [LF] - AutoCompleteEditHandler;Accepts:Any,AutoComplete:[];AtEOL - (2:0,2) - Symbols:1 + CSharpSymbolType.NewLine;[LF]; + Markup block - Gen - 63 - (4:1,0) + Markup span - Gen - [ ] - SpanEditHandler;Accepts:Any - (4:1,0) - Symbols:1 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlComment block - Gen - 57 - (8:1,4) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (62:1,58) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [LF] - SpanEditHandler;Accepts:None - (65:1,61) - Symbols:1 + HtmlSymbolType.NewLine;[LF]; + Code span - Gen - [] - SpanEditHandler;Accepts:Any - (67:2,0) - Symbols:1 + CSharpSymbolType.Unknown;[]; + MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (67:2,0) - Symbols:1 + CSharpSymbolType.RightBrace;[}]; + Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (68:2,1) - Symbols:1 + HtmlSymbolType.Unknown;[]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockIgnoresTagsInContentsOfScriptTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockIgnoresTagsInContentsOfScriptTag.syntaxtree.txt new file mode 100644 index 0000000000..bcd72e46d7 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockIgnoresTagsInContentsOfScriptTag.syntaxtree.txt @@ -0,0 +1,28 @@ +Markup block - Gen - 36 - (0:0,0) + Tag block - Gen - 8 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[script]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockOnlyTerminatesCommentOnFullEndSequence.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockOnlyTerminatesCommentOnFullEndSequence.syntaxtree.txt new file mode 100644 index 0000000000..5bf4e41ece --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockOnlyTerminatesCommentOnFullEndSequence.syntaxtree.txt @@ -0,0 +1,18 @@ +Markup block - Gen - 20 - (0:0,0) + HtmlComment block - Gen - 20 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (17:0,17) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesSGMLDeclarationAsEmptyTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesSGMLDeclarationAsEmptyTag.syntaxtree.txt new file mode 100644 index 0000000000..4da11d2a32 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesSGMLDeclarationAsEmptyTag.syntaxtree.txt @@ -0,0 +1,23 @@ +Markup block - Gen - 33 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:10 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Bang;[!]; + HtmlSymbolType.Text;[DOCTYPE]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (27:0,27) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.syntaxtree.txt new file mode 100644 index 0000000000..30562c2c43 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesUntilMatchingEndTagIfFirstNonWhitespaceCharacterIsStartTag.syntaxtree.txt @@ -0,0 +1,34 @@ +Markup block - Gen - 33 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[boz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (10:0,10) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[biz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (15:0,15) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[biz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (21:0,21) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[boz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (27:0,27) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (27:0,27) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesXMLProcessingInstructionAsEmptyTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesXMLProcessingInstructionAsEmptyTag.syntaxtree.txt new file mode 100644 index 0000000000..508dae3b77 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockParsesXMLProcessingInstructionAsEmptyTag.syntaxtree.txt @@ -0,0 +1,24 @@ +Markup block - Gen - 30 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:11 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.Text;[xml]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (24:0,24) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockProperlyBalancesCommentStartAndEndTags.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockProperlyBalancesCommentStartAndEndTags.syntaxtree.txt new file mode 100644 index 0000000000..c31a638de5 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockProperlyBalancesCommentStartAndEndTags.syntaxtree.txt @@ -0,0 +1,17 @@ +Markup block - Gen - 18 - (0:0,0) + HtmlComment block - Gen - 18 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.syntaxtree.txt new file mode 100644 index 0000000000..8e4955243d --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockReadsToEndOfLineIfFirstCharacterAfterTransitionIsColon.syntaxtree.txt @@ -0,0 +1,15 @@ +Markup block - Gen - 19 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + HtmlSymbolType.Transition;[@]; + MetaCode span - Gen - [:] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:1 + HtmlSymbolType.Colon;[:]; + Markup span - Gen - [
  • Foo Bar BazLF] - SpanEditHandler;Accepts:None - (2:0,2) - Symbols:9 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[li]; + HtmlSymbolType.CloseAngle;[>]; + HtmlSymbolType.Text;[Foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + HtmlSymbolType.NewLine;[LF]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockRendersLiteralTextTagIfDoubled.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockRendersLiteralTextTagIfDoubled.syntaxtree.txt new file mode 100644 index 0000000000..54d276de39 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockRendersLiteralTextTagIfDoubled.syntaxtree.txt @@ -0,0 +1,36 @@ +Markup block - Gen - 43 - (0:0,0) + Tag block - Gen - 6 - (0:0,0) + Transition span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (6:0,6) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (6:0,6) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [Foo Bar ] - SpanEditHandler;Accepts:Any - (12:0,12) - Symbols:4 + HtmlSymbolType.Text;[Foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Bar]; + HtmlSymbolType.WhiteSpace;[ ]; + Tag block - Gen - 5 - (20:0,20) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (20:0,20) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ Baz] - SpanEditHandler;Accepts:Any - (25:0,25) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[Baz]; + Tag block - Gen - 7 - (29:0,29) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (29:0,29) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 7 - (36:0,36) + Transition span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[text]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsAtMatchingCloseTagToStartTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsAtMatchingCloseTagToStartTag.syntaxtree.txt new file mode 100644 index 0000000000..2fefc01c58 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsAtMatchingCloseTagToStartTag.syntaxtree.txt @@ -0,0 +1,23 @@ +Markup block - Gen - 14 - (0:0,0) + Tag block - Gen - 3 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[a]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 3 - (3:0,3) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (3:0,3) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[b]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 4 - (6:0,6) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (6:0,6) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[b]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 4 - (10:0,10) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[a]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.diagnostics.txt new file mode 100644 index 0000000000..9bb386f834 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1024: End of file or an unexpected character was reached before the "br" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("
    ") or have matching end tags ("

    Hello

    "). If you intended to display a "<" character, use the "<" HTML entity. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.syntaxtree.txt new file mode 100644 index 0000000000..bbf4d14e72 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockStopsParsingMidEmptyTagIfEOFReached.syntaxtree.txt @@ -0,0 +1,6 @@ +Markup block - Gen - 4 - (0:0,0) + Tag block - Gen - 4 - (0:0,0) + Markup span - Gen - [
    - 9 - (0:0,0) + Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:1 + HtmlSymbolType.Transition;[@]; + MetaCode span - Gen - [:] - SpanEditHandler;Accepts:Any - (1:0,1) - Symbols:1 + HtmlSymbolType.Colon;[:]; + Markup span - Gen - [foo bar] - SpanEditHandler;Accepts:Any - (2:0,2) - Symbols:3 + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentAsBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentAsBlock.syntaxtree.txt new file mode 100644 index 0000000000..03b31e8cf8 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentAsBlock.syntaxtree.txt @@ -0,0 +1,13 @@ +Markup block - Gen - 12 - (0:0,0) + HtmlComment block - Gen - 12 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (9:0,9) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithExtraDashAsBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithExtraDashAsBlock.syntaxtree.txt new file mode 100644 index 0000000000..0afbc19cc3 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithExtraDashAsBlock.syntaxtree.txt @@ -0,0 +1,14 @@ +Markup block - Gen - 13 - (0:0,0) + HtmlComment block - Gen - 13 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (10:0,10) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithinBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithinBlock.syntaxtree.txt new file mode 100644 index 0000000000..48f1cfb47b --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsCommentWithinBlock.syntaxtree.txt @@ -0,0 +1,28 @@ +Markup block - Gen - 30 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [bar] - SpanEditHandler;Accepts:Any - (5:0,5) - Symbols:1 + HtmlSymbolType.Text;[bar]; + HtmlComment block - Gen - 13 - (8:0,8) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (18:0,18) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [baz] - SpanEditHandler;Accepts:None - (21:0,21) - Symbols:1 + HtmlSymbolType.Text;[baz]; + Tag block - Gen - 6 - (24:0,24) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (24:0,24) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithLessThanSignsInThem.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithLessThanSignsInThem.syntaxtree.txt new file mode 100644 index 0000000000..989ac653a2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithLessThanSignsInThem.syntaxtree.txt @@ -0,0 +1,24 @@ +Markup block - Gen - 45 - (0:0,0) + Tag block - Gen - 8 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[script]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithSpacedLessThanSignsInThem.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithSpacedLessThanSignsInThem.syntaxtree.txt new file mode 100644 index 0000000000..b23a7e8db2 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsScriptTagsWithSpacedLessThanSignsInThem.syntaxtree.txt @@ -0,0 +1,26 @@ +Markup block - Gen - 47 - (0:0,0) + Tag block - Gen - 8 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (38:0,38) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[script]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsTagsWithAttributes.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsTagsWithAttributes.syntaxtree.txt new file mode 100644 index 0000000000..4199e1e793 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockSupportsTagsWithAttributes.syntaxtree.txt @@ -0,0 +1,48 @@ +Markup block - Gen - 48 - (0:0,0) + Tag block - Gen - 15 - (0:0,0) + Markup span - Gen - [ - 10 - (4:0,4) + Markup span - Gen - [ bar="] - SpanEditHandler;Accepts:Any - (4:0,4) - Symbols:4 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.Equals;[=]; + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [baz] - SpanEditHandler;Accepts:Any - (10:0,10) - Symbols:1 + HtmlSymbolType.Text;[baz]; + Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (13:0,13) - Symbols:1 + HtmlSymbolType.DoubleQuote;["]; + Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (14:0,14) - Symbols:1 + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 5 - (15:0,15) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (15:0,15) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[biz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 16 - (20:0,20) + Markup span - Gen - [ - 10 - (24:0,24) + Markup span - Gen - [ zoop=] - SpanEditHandler;Accepts:Any - (24:0,24) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[zoop]; + HtmlSymbolType.Equals;[=]; + Markup span - Gen - [zork] - SpanEditHandler;Accepts:Any - (30:0,30) - Symbols:1 + HtmlSymbolType.Text;[zork]; + Markup span - Gen - [/>] - SpanEditHandler;Accepts:None - (34:0,34) - Symbols:2 + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (36:0,36) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (36:0,36) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[biz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (42:0,42) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (42:0,42) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.diagnostics.txt new file mode 100644 index 0000000000..1de63b58d1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.syntaxtree.txt new file mode 100644 index 0000000000..ea49323f52 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOF.syntaxtree.txt @@ -0,0 +1,6 @@ +Markup block - Gen - 5 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOFWhenParsingComment.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOFWhenParsingComment.syntaxtree.txt new file mode 100644 index 0000000000..a41995ec12 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesAtEOFWhenParsingComment.syntaxtree.txt @@ -0,0 +1,8 @@ +Markup block - Gen - 9 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (19:0,19) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [-->] - SpanEditHandler;Accepts:None - (22:0,22) - Symbols:2 + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (25:0,25) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (25:0,25) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesSGMLDeclarationAtFirstCloseAngle.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesSGMLDeclarationAtFirstCloseAngle.syntaxtree.txt new file mode 100644 index 0000000000..fd020c79b0 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesSGMLDeclarationAtFirstCloseAngle.syntaxtree.txt @@ -0,0 +1,25 @@ +Markup block - Gen - 34 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:8 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Bang;[!]; + HtmlSymbolType.Text;[DOCTYPE]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ baz>] - SpanEditHandler;Accepts:Any - (23:0,23) - Symbols:3 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 6 - (28:0,28) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.syntaxtree.txt new file mode 100644 index 0000000000..c1a2609413 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTerminatesXMLProcessingInstructionAtQuestionMarkCloseAnglePair.syntaxtree.txt @@ -0,0 +1,27 @@ +Markup block - Gen - 34 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:11 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.Text;[xml]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + HtmlSymbolType.QuestionMark;[?]; + HtmlSymbolType.CloseAngle;[>]; + Markup span - Gen - [ baz] - SpanEditHandler;Accepts:Any - (24:0,24) - Symbols:2 + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[baz]; + Tag block - Gen - 6 - (28:0,28) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (28:0,28) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.diagnostics.txt new file mode 100644 index 0000000000..1de63b58d1 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1025: The "foo" element was not closed. All elements must be either self-closing or have a matching end tag. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.syntaxtree.txt new file mode 100644 index 0000000000..808cc4bb5a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockTreatsMalformedTagsAsContent.syntaxtree.txt @@ -0,0 +1,17 @@ +Markup block - Gen - 18 - (0:0,0) + Tag block - Gen - 5 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:3 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.CloseAngle;[>]; + Tag block - Gen - 13 - (5:0,5) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (5:0,5) - Symbols:9 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.Bang;[!]; + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.Text;[bar]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.DoubleHyphen;[--]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockWithSelfClosingTagJustEmitsTag.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockWithSelfClosingTagJustEmitsTag.syntaxtree.txt new file mode 100644 index 0000000000..63dca617ae --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/ParseBlockWithSelfClosingTagJustEmitsTag.syntaxtree.txt @@ -0,0 +1,8 @@ +Markup block - Gen - 7 - (0:0,0) + Tag block - Gen - 7 - (0:0,0) + Markup span - Gen - [] - SpanEditHandler;Accepts:None - (0:0,0) - Symbols:5 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.Text;[foo]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.ForwardSlash;[/]; + HtmlSymbolType.CloseAngle;[>]; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.diagnostics.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.diagnostics.txt new file mode 100644 index 0000000000..15600ff436 --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.diagnostics.txt @@ -0,0 +1 @@ +(1,2): Error RZ1024: End of file or an unexpected character was reached before the "" tag could be parsed. Elements inside markup blocks must be complete. They must either be self-closing ("
    ") or have matching end tags ("

    Hello

    "). If you intended to display a "<" character, use the "<" HTML entity. diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.syntaxtree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.syntaxtree.txt new file mode 100644 index 0000000000..632f92474a --- /dev/null +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/HtmlBlockTest/TagWithoutCloseAngleDoesNotTerminateBlock.syntaxtree.txt @@ -0,0 +1,7 @@ +Markup block - Gen - 28 - (0:0,0) + Tag block - Gen - 28 - (0:0,0) + Markup span - Gen - [< LF ] - SpanEditHandler;Accepts:Any - (0:0,0) - Symbols:4 + HtmlSymbolType.OpenAngle;[<]; + HtmlSymbolType.WhiteSpace;[ ]; + HtmlSymbolType.NewLine;[LF]; + HtmlSymbolType.WhiteSpace;[ ]; 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 9171090ce1..f3e36315ec 100644 --- a/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Test.Common/Language/Legacy/ParserTestBase.cs @@ -212,7 +212,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { directives = directives ?? Array.Empty(); - var source = TestRazorSourceDocument.Create(document, filePath: null); + var source = TestRazorSourceDocument.Create(document, filePath: null, normalizeNewLines: UseBaselineTests); var options = CreateParserOptions(version, directives, designTime); var context = new ParserContext(source, options);