Пример #1
0
        public void OneLine()
        {
            string source = @"I am amazing.";

            var expected = new TokenListBuilder()
                .String(0, 0, "I am amazing.");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #2
0
        public void AccidentalOrderedList()
        {
            string source = @"1987\. What a great year to be born.";

            var expected = new TokenListBuilder()
                .String(0, 0, "1987. What a great year to be born.");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #3
0
        public void Plus_OneItem()
        {
            string source = @"+ Item";

            var expected = new TokenListBuilder()
                .UnorderedList(0, 0)
                    .String(0, 2, "Item");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #4
0
        public void OneLine_Header3()
        {
            var tokens = new TokenListBuilder()
                .Header3(0, 0)
                    .String(0, 4, "Header 3");

            string expected = "<h3>Header 3</h3>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #5
0
        public void OneItemLargeIndexNumber()
        {
            string source = @"123. Item";

            var expected = new TokenListBuilder()
                .OrderedList(0, 0)
                    .String(0, 5, "Item");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #6
0
        public void Header1_OneLine_Valid()
        {
            string source = @"# Header1";

            var expected = new TokenListBuilder()
                .Header1(0, 0)
                    .String(0, 2, "Header1");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #7
0
        public void StartText_OneLink_Http()
        {
            string source = @"[A link](http://domain.tld/folder/file.ext) in a text";

            var expected = new TokenListBuilder()
                    .LinkLabel(0, 0, "A link")
                    .LinkUrl(0, 8, "http://domain.tld/folder/file.ext")
                    .String(0, 43, " in a text");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #8
0
        public void EndText_OneLink_Http()
        {
            string source = @"This is a text with [a link](http://domain.tld/folder/file.ext)";

            var expected = new TokenListBuilder()
                .String(0, 0, "This is a text with ")
                    .LinkLabel(0, 20, "a link")
                    .LinkUrl(0, 28, "http://domain.tld/folder/file.ext");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #9
0
        public void PlainText_SingleParagraph()
        {
            var tokens = new TokenListBuilder()
                .String(0, 0, "First part of ")
                    .Newline(0, 13)
                    .String(1, 0, "a long string");

            string expected = "<p>First part of a long string</p>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #10
0
        public void NestedOneLine()
        {
            string source = @">> something quoted";

            var expected = new TokenListBuilder()
                .Blockquote(0, 0)
                    .Blockquote(0, 1)
                    .String(0, 3, "something quoted");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #11
0
        public void Header1_NewlineBefore_Valid()
        {
            string source = "\n# Header1";

            var expected = new TokenListBuilder()
                .Newline(0, 0)
                    .Header1(1, 0)
                    .String(1, 2, "Header1");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #12
0
        public void Emphasis_EndText()
        {
            string source = @"He looks _strong_";

            var expected = new TokenListBuilder()
                .String(0, 0, "He looks ")
                    .Emphasis(0, 9)
                    .String(0, 10, "strong")
                    .Emphasis(0, 16);

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #13
0
        public void Header2_NewlineAfter_Valid()
        {
            string source = @"## Header2
            ";

            var expected = new TokenListBuilder()
                .Header2(0, 0)
                    .String(0, 3, "Header2")
                    .Newline(0, 10);

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #14
0
        public void MultipleLines()
        {
            string source = @"I am amazing.
            And everyone knows it :)";

            var expected = new TokenListBuilder()
                .String(0, 0, "I am amazing.")
                    .Newline(0, 13)
                    .String(1, 0, "And everyone knows it :)");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #15
0
        public void Emphasis_StartText()
        {
            string source = @"_Strong_ words, sir.";

            var expected = new TokenListBuilder()
                .Emphasis(0, 0)
                    .String(0, 1, "Strong")
                    .Emphasis(0, 7)
                    .String(0, 8, " words, sir.");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #16
0
        public void Empty_WithLang()
        {
            string source = @"```javascript
            ```";

            var expected = new TokenListBuilder()
                .CodeOpen(0, 0, "javascript")
                    .Newline(0, 13)
                    .CodeClose(1, 0);

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #17
0
        public void WithFormatting_Emphasis()
        {
            var tokens = new TokenListBuilder()
                .String(0, 0, "String with ")
                    .Emphasis(0, 12)
                    .String(0, 13, "emphasis")
                    .Emphasis(0, 21)
                    .String(0, 22, " formatting");

            string expected = "<p>String with <em>emphasis</em> formatting</p>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #18
0
        public void OneLevel()
        {
            var tokens = new TokenListBuilder()
                .Blockquote(0, 0)
                    .String(0, 2, "Something quoted")
                    .Newline(0, 18)
                    .Blockquote(1, 0)
                    .String(1, 2, "Second line of quote");

            string expected = "<blockquote><p>Something quoted</p><p>Second line of quote</p></blockquote>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #19
0
        public void MultipleLines()
        {
            string source = @"> something quoted
            > second line";

            var expected = new TokenListBuilder()
                .Blockquote(0, 0)
                    .String(0, 2, "something quoted")
                    .Newline(0, 18)
                    .Blockquote(1, 0)
                    .String(1, 2, "second line");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #20
0
        public void Nested()
        {
            var tokens = new TokenListBuilder()
                .Blockquote(0, 0)
                    .Blockquote(0, 1)
                    .String(0, 2, "Oldest quote")
                    .Newline(0, 19)
                    .Blockquote(1, 0)
                    .String(1, 2, "Newer quote");

            string expected = "<blockquote><blockqoute><p>Oldest quote</p></blockquote><p>Newer quote</p></blockquote>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #21
0
        public void Mixed_MidText()
        {
            string source = @"He looks *_strong_* tonight.";

            var expected = new TokenListBuilder()
                .String(0, 0, "He looks ")
                    .Strong(0, 9)
                    .Emphasis(0, 10)
                    .String(0, 11, "strong")
                    .Emphasis(0, 17)
                    .Strong(0, 18)
                    .String(0, 19, " tonight.");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #22
0
        public void WithFormatting_Mixed()
        {
            var tokens = new TokenListBuilder()
                .String(0, 0, "He looks ")
                    .Strong(0, 9)
                    .Emphasis(0, 10)
                    .String(0, 11, "strong")
                    .Emphasis(0, 17)
                    .Strong(0, 18)
                    .String(0, 19, " tonight.");

            string expected = "<p>He looks <strong><em>strong</em></strong> tonight.</p>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #23
0
        public void Unordered()
        {
            var tokens = new TokenListBuilder()
                .UnorderedList(0, 0)
                    .String(0, 2, "Item 1")
                    .Newline(0, 8)
                    .UnorderedList(1, 0)
                    .String(1, 2, "Item 2")
                    .Newline(1, 8)
                    .UnorderedList(2, 0)
                    .String(2, 2, "Item 3");

            string expected = "<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #24
0
        public void MixedNesting()
        {
            string source = @">> something quoted
            > more recent quote
            And this is now";

            var expected = new TokenListBuilder()
                .Blockquote(0, 0)
                    .Blockquote(0, 1)
                    .String(0, 3, "something quoted")
                    .Newline(0, 19)
                    .Blockquote(1, 0)
                    .String(1, 2, "more recent quote")
                    .Newline(1, 19)
                    .String(2, 0, "And this is now");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #25
0
        public void Mixed_ThreeItems()
        {
            string source = @"- Item 1
            * Item 2
            + Item 3";

            var expected = new TokenListBuilder()
                .UnorderedList(0, 0)
                    .String(0, 2, "Item 1")
                    .Newline(0, 8)
                    .UnorderedList(1, 0)
                    .String(1, 2, "Item 2")
                    .Newline(1, 8)
                    .UnorderedList(2, 0)
                    .String(2, 2, "Item 3");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #26
0
        public void Underline_Header1()
        {
            var tokens = new TokenListBuilder()
                .String(0, 0, "Header 1")
                    .Newline(0, 8)
                    .StrongLine(1, 0)
                    .StrongLine(1, 1)
                    .StrongLine(1, 2)
                    .StrongLine(1, 3)
                    .StrongLine(1, 4)
                    .StrongLine(1, 5)
                    .StrongLine(1, 6)
                    .StrongLine(1, 7);

            string expected = "<h1>Header 1</h1>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
Пример #27
0
        public void ThreeItems()
        {
            string source = @"1. Item 1
            2. Item 2
            3. Item 3";

            var expected = new TokenListBuilder()
                .OrderedList(0, 0)
                    .String(0, 3, "Item 1")
                    .Newline(0, 9)
                    .OrderedList(1, 0)
                    .String(1, 3, "Item 2")
                    .Newline(1, 9)
                    .OrderedList(2, 0)
                    .String(2, 3, "Item 3");

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
        public void ThreeLines_NewlineAfter_Valid()
        {
            string source = @"Header1
            =======
            ";
            var expected = new TokenListBuilder()
                .String(0, 0, "Header1")
                    .Newline(0, 7)
                    .StrongLine(1, 0)
                    .StrongLine(1, 1)
                    .StrongLine(1, 2)
                    .StrongLine(1, 3)
                    .StrongLine(1, 4)
                    .StrongLine(1, 5)
                    .StrongLine(1, 6)
                    .Newline(1, 7);

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }
Пример #29
0
        public void Plain_WithCode()
        {
            var tokens = new TokenListBuilder()
                .CodeOpen(0, 0, "plain")
                    .Newline(0, 3)
                    .Verbatim(1, 0, "for (var i=0; i<10; i++) {")
                    .Newline(1, 26)
                    .Verbatim(2, 0, "\t// do something")
                    .Newline(2, 16)
                    .Verbatim(3, 0, "}")
                    .Newline(3, 1)
                    .CodeClose(4, 0);

            string expected = @"<pre>for (var i=0; i<10; i++) {
            // do something
            }</pre>";

            HtmlEmitter emitter = new HtmlEmitter();
            string actual = emitter.Emit(tokens.List);

            Assert.AreEqual(expected, actual);
        }
        public void ThreeLines_NewlineBefore_Valid()
        {
            string source = @"
            Header2
            -------";
            var expected = new TokenListBuilder()
                .Newline(0, 0)
                    .String(1, 0, "Header2")
                    .Newline(1, 7)
                    .Line(2, 0)
                    .Line(2, 1)
                    .Line(2, 2)
                    .Line(2, 3)
                    .Line(2, 4)
                    .Line(2, 5)
                    .Line(2, 6);

            Tokenizer nizer = new Tokenizer();
            List<Token> actual = nizer.Tokenize(source);

            CollectionAssert.AreEqual(expected.List, actual);
        }