コード例 #1
0
ファイル: MarkdigServiceTest.cs プロジェクト: z784916/docfx-1
        public void MarkdigServiceTest_ParseAndRender_Inclusion()
        {
            // -x
            //  |- root.md
            //  |- b
            //  |  |- linkAndRefRoot.md
            var root           = @"[!include[linkAndRefRoot](~/x/b/linkAndRefRoot.md)]";
            var linkAndRefRoot = @"Paragraph1";

            TestUtility.WriteToFile("x/root.md", root);
            TestUtility.WriteToFile("x/b/linkAndRefRoot.md", linkAndRefRoot);

            var service  = TestUtility.CreateMarkdownService();
            var document = service.Parse(root, "x/root.md");

            Assert.Single(document);
            Assert.IsType <InclusionBlock>(document[0]);

            var mr       = service.Render(document);
            var expected = @"<p>Paragraph1</p>" + "\n";

            Assert.Equal(expected, mr.Html);

            var expectedDependency = new List <string> {
                "~/x/b/linkAndRefRoot.md"
            };

            Assert.Equal(expectedDependency.ToImmutableList(), mr.Dependency);
        }
コード例 #2
0
        public void TripleColonWithInMonikerTestBlockUnClosed()
        {
            var source = new StringBuilder()
                         .AppendLine("::: moniker range=\"chromeless\"")
                         .AppendLine("::: zone target=\"docs\"")
                         .AppendLine("## Alt text")
                         .AppendLine("::: moniker-end")
                         .ToString();

            var listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(LoggerPhase);

            Logger.RegisterListener(listener);
            using (new LoggerPhaseScope(LoggerPhase))
            {
                var service  = TestUtility.CreateMarkdownService();
                var document = service.Parse(source, "fakepath.md");

                var monikerBlock = document.OfType <MonikerRangeBlock>().FirstOrDefault();
                Assert.NotNull(monikerBlock);
                var nestedZoneBlock = monikerBlock.OfType <TripleColonBlock>().FirstOrDefault();
                Assert.NotNull(nestedZoneBlock);
                Assert.False(nestedZoneBlock.Closed);
            }
            Logger.UnregisterListener(listener);
        }
コード例 #3
0
ファイル: MarkdigServiceTest.cs プロジェクト: z784916/docfx-1
        public void MarkdigServiceTest_ParseInline()
        {
            var content  = @"# I am a heading";
            var service  = TestUtility.CreateMarkdownService();
            var document = service.Parse(content, "topic.md", true);
            var result   = service.Render(document, true).Html;

            Assert.Single(document);
            Assert.IsType <ParagraphBlock>(document[0]);
            Assert.Equal(content, result);
        }
コード例 #4
0
ファイル: TripleColonTest.cs プロジェクト: zyj0021/docfx
        public void TripleColonTestBlockClosed()
        {
            var source = @"::: zone target=""chromeless""
::: form action=""create-resource"" submitText=""Create"" :::
::: zone-end
";

            var expected = @"<div class=""zone has-target"" data-target=""chromeless"">
<form class=""chromeless-form"" data-action=""create-resource"">
<div></div>
<button class=""button is-primary"" disabled=""disabled"" type=""submit"">Create</button>
</form>
</div>
".Replace("\r\n", "\n");

            var listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(LoggerPhase);

            Logger.RegisterListener(listener);
            using (new LoggerPhaseScope(LoggerPhase))
            {
                var service  = TestUtility.CreateMarkdownService();
                var document = service.Parse(source, "fakepath.md");
                var blocks   = new List <TripleColonBlock>();
                var stack    = new Stack <ContainerBlock>();
                stack.Push(document);

                // Get all triplecolon blocks in the document using a depth-first iterative tree traversal strategy.
                do
                {
                    var block    = stack.Pop();
                    var children = block.Where(x => x.GetType() == typeof(TripleColonBlock)).Select(x => x as TripleColonBlock);
                    blocks.AddRange(children);
                    foreach (var child in children)
                    {
                        stack.Push(child);
                    }
                } while (stack.Count > 0);

                foreach (var block in blocks)
                {
                    Assert.True(block.Closed);
                    Assert.False(block.IsOpen);
                }
            }
            Logger.UnregisterListener(listener);
        }
コード例 #5
0
ファイル: ImageTest.cs プロジェクト: carolinesena/docfx-1
        public void ImageBlockTestBlockClosed()
        {
            var source = @":::image source=""example.jpg"" type=""complex"" alt-text=""example"":::Lorem Ipsum
:::image-end:::";

            var listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(LoggerPhase);

            Logger.RegisterListener(listener);
            using (new LoggerPhaseScope(LoggerPhase))
            {
                var service  = TestUtility.CreateMarkdownService();
                var document = service.Parse(source, "fakepath.md");

                var imageBlock = document.OfType <TripleColonBlock>().FirstOrDefault();
                Assert.NotNull(imageBlock);
                Assert.True(imageBlock.Closed);
            }
            Logger.UnregisterListener(listener);
        }
コード例 #6
0
ファイル: MarkdigServiceTest.cs プロジェクト: z784916/docfx-1
        public void MarkdigServiceTest_ParseAndRender_Simple()
        {
            var markdown = @"# title

```yaml
key: value
```";
            var service  = TestUtility.CreateMarkdownService();
            var document = service.Parse(markdown, "topic.md");

            Assert.Equal(2, document.Count);
            Assert.IsType <HeadingBlock>(document[0]);
            Assert.IsType <FencedCodeBlock>(document[1]);

            var mr       = service.Render(document);
            var expected = @"<h1 id=""title"">title</h1>
<pre><code class=""lang-yaml"">key: value
</code></pre>
";

            Assert.Equal(expected.Replace("\r\n", "\n"), mr.Html);
        }
コード例 #7
0
ファイル: ImageTest.cs プロジェクト: carolinesena/docfx-1
        public void ImageTestNotImageBlock()
        {
            var source = @":::row:::
:::column:::
    This is where your content goes.
:::column-end:::
:::row-end:::
";

            var listener = TestLoggerListener.CreateLoggerListenerWithPhaseEqualFilter(LoggerPhase);

            Logger.RegisterListener(listener);
            using (new LoggerPhaseScope(LoggerPhase))
            {
                var service  = TestUtility.CreateMarkdownService();
                var document = service.Parse(source, "fakepath.md");

                var imageBlock = document.OfType <TripleColonBlock>().FirstOrDefault();
                Assert.Null(imageBlock);
            }
            Logger.UnregisterListener(listener);
        }