using System; using Markdig; using MarkdownPreviewHandler; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace PreviewPaneUnitTests { [TestClass] public class HTMLParsingExtensionTest { private MarkdownPipeline BuidPipeline(IMarkdownExtension extension) { MarkdownPipelineBuilder pipelineBuilder = new MarkdownPipelineBuilder().UseAdvancedExtensions(); pipelineBuilder.Extensions.Add(extension); return pipelineBuilder.Build(); } [TestMethod] public void Extension_UpdatesTablesClass_WhenUsed() { // Arrange String mdString = "| A | B |\n| -- | -- | "; HTMLParsingExtension htmlParsingExtension = new HTMLParsingExtension(() => { }); MarkdownPipeline markdownPipeline = BuidPipeline(htmlParsingExtension); // Act String html = Markdown.ToHtml(mdString, markdownPipeline); // Assert Assert.AreEqual(html, "\n\n\n\n\n\n\n
AB
\n"); } [TestMethod] public void Extension_UpdatesBlockQuotesClass_WhenUsed() { // Arrange String mdString = "> Blockquotes."; HTMLParsingExtension htmlParsingExtension = new HTMLParsingExtension(() => { }); MarkdownPipeline markdownPipeline = BuidPipeline(htmlParsingExtension); // Act String html = Markdown.ToHtml(mdString, markdownPipeline); // Assert Assert.AreEqual(html, "
\n

Blockquotes.

\n
\n"); } [TestMethod] public void Extension_UpdatesFigureClassAndBlocksRelativeUrl_WhenUsed() { // arrange String mdString = "![text](a.jpg \"Figure\")"; HTMLParsingExtension htmlParsingExtension = new HTMLParsingExtension(() => { }, "C:\\Users\\"); MarkdownPipeline markdownPipeline = BuidPipeline(htmlParsingExtension); // Act String html = Markdown.ToHtml(mdString, markdownPipeline); // Assert Assert.AreEqual(html, "

\"text\"

\n"); } [TestMethod] public void Extension_AddsClassToFigureCaption_WhenUsed() { // arrange String mdString = "^^^ This is a caption"; HTMLParsingExtension htmlParsingExtension = new HTMLParsingExtension(() => { }, "C:/Users/"); MarkdownPipeline markdownPipeline = BuidPipeline(htmlParsingExtension); // Act String html = Markdown.ToHtml(mdString, markdownPipeline); // Assert Assert.AreEqual(html, "
\n
This is a caption
\n
\n"); } [TestMethod] public void Extension_RemovesExternalImageUrlAndMakeCallback_WhenUsed() { // arrange int count = 0; String mdString = "![text](http://dev.nodeca.com \"Figure\")"; HTMLParsingExtension htmlParsingExtension = new HTMLParsingExtension(() => { count++; }); MarkdownPipeline markdownPipeline = BuidPipeline(htmlParsingExtension); // Act String html = Markdown.ToHtml(mdString, markdownPipeline); // Assert Assert.AreEqual(count, 1); Assert.AreEqual(html, "

\"text\"

\n"); } } }