public void ParseBlockTerminatesAtEOF() { ParseBlockTest("<foo>", new MarkupBlock( new MarkupTagBlock( Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None))), new RazorError( LegacyResources.FormatParseError_MissingEndTag("foo"), new SourceLocation(1, 0, 1), length: 3)); }
public void ParseBlockWithUnclosedTagAtEOFThrowsMissingEndTagException() { ParseBlockTest("<foo>blah blah blah blah blah", new MarkupBlock( new MarkupTagBlock( Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("blah blah blah blah blah")), new RazorError( LegacyResources.FormatParseError_MissingEndTag("foo"), new SourceLocation(1, 0, 1), length: 3)); }
public void EmptyTagNestsLikeNormalTag() { ParseBlockTest("<p></> Bar", new MarkupBlock( BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None), BlockFactory.MarkupTagBlock("</>", AcceptedCharactersInternal.None), Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)), new RazorError( LegacyResources.FormatParseError_MissingEndTag("p"), new SourceLocation(1, 0, 1), length: 1)); }
public void ParseBlockTreatsMalformedTagsAsContent() { ParseBlockTest("<foo></!-- bar --></foo>", new MarkupBlock( new MarkupTagBlock( Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("</!-- bar -->").Accepts(AcceptedCharactersInternal.None))), new RazorError( LegacyResources.FormatParseError_MissingEndTag("foo"), new SourceLocation(1, 0, 1), length: 3)); }
public void ParseBlockWithUnclosedTopLevelTagThrowsMissingEndTagParserExceptionOnOutermostUnclosedTag() { ParseBlockTest("<p><foo></bar>", new MarkupBlock( new MarkupTagBlock( Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("</bar>").Accepts(AcceptedCharactersInternal.None))), new RazorError( LegacyResources.FormatParseError_MissingEndTag("p"), new SourceLocation(1, 0, 1), length: 1)); }
public void RazorCommentInVerbatimBlock() { ParseDocumentTest("@{" + Environment.NewLine + " <text" + 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.MarkupTransition("<text").Accepts(AcceptedCharactersInternal.Any)), Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None), Factory.Markup(" ").With(SpanChunkGenerator.Null), new CommentBlock( Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition) .Accepts(AcceptedCharactersInternal.None), Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar) .Accepts(AcceptedCharactersInternal.None), Factory.Span(SpanKindInternal.Comment, new HtmlSymbol( string.Empty, HtmlSymbolType.Unknown)) .Accepts(AcceptedCharactersInternal.Any), Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar) .Accepts(AcceptedCharactersInternal.None), Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition) .Accepts(AcceptedCharactersInternal.None)), Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null), Factory.Markup("}")))), new RazorError( LegacyResources.ParseError_TextTagCannotContainAttributes, new SourceLocation(7 + Environment.NewLine.Length, 1, 5), length: 4), new RazorError( LegacyResources.FormatParseError_MissingEndTag("text"), new SourceLocation(7 + Environment.NewLine.Length, 1, 5), length: 4), new RazorError( LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF(LegacyResources.BlockName_Code, "}", "{"), new SourceLocation(1, 0, 1), length: 1)); }