aboutsummaryrefslogtreecommitdiff
path: root/test/src/markdown/ParserTest.kt
blob: 5a7adf059c89a388aadc1e18a2c9af201983233e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package org.jetbrains.dokka.tests

import org.junit.Test
import org.jetbrains.dokka.toTestString
import org.jetbrains.dokka.parseMarkdown
import org.junit.Ignore

@Ignore public class ParserTest {
    fun runTestFor(text : String) {
        println("MD: ---")
        println(text)
        val markdownTree = parseMarkdown(text)
        println("AST: ---")
        println(markdownTree.toTestString())
        println()
    }

    @Test fun text() {
        runTestFor("text")
    }

    @Test fun textWithSpaces() {
        runTestFor("text and string")
    }

    @Test fun textWithColon() {
        runTestFor("text and string: cool!")
    }

    @Test fun link() {
        runTestFor("text [links]")
    }

    @Test fun linkWithHref() {
        runTestFor("text [links](http://google.com)")
    }

    @Test fun multiline() {
        runTestFor(
                """
text
and
string
""")
    }

    @Test fun para() {
        runTestFor(
                """
paragraph number
one

paragraph
number two
""")
    }

    @Test fun bulletList() {
        runTestFor(
                """* list item 1
* list item 2
""")
    }

    @Test fun bulletListWithLines() {
        runTestFor(
                """
* list item 1
  continue 1
* list item 2
  continue 2
 """)
    }

    @Test fun bulletListStrong() {
        runTestFor(
                """
* list *item* 1
  continue 1
* list *item* 2
  continue 2
 """)
    }

    @Test fun emph() {
        runTestFor("*text*")
    }

    @Test fun directive() {
        runTestFor("A text \${code with.another.value} with directive")
    }

    @Test fun emphAndEmptySection() {
        runTestFor("*text*\n\$sec:\n")
    }

    @Test fun emphAndSection() {
        runTestFor("*text*\n\$sec: some text\n")
    }

    @Test fun emphAndBracedSection() {
        runTestFor("Text *bold* text \n\${sec}: some text")
    }

    @Test fun section() {
        runTestFor(
                "Plain text \n\$one: Summary \n\${two}: Description with *emphasis* \n\${An example of a section}: Example")
    }

    @Test fun anonymousSection() {
        runTestFor("Summary\n\nDescription\n")
    }

    @Test fun specialSection() {
        runTestFor(
                "Plain text \n\$\$summary: Summary \n\${\$description}: Description \n\${\$An example of a section}: Example")
    }

    @Test fun emptySection() {
        runTestFor(
                "Plain text \n\$summary:")
    }

    val b = "$"
    @Test fun pair() {
        runTestFor(
                """Represents a generic pair of two values.

There is no meaning attached to values in this class, it can be used for any purpose.
Pair exhibits value semantics, i.e. two pairs are equal if both components are equal.

An example of decomposing it into values:
${b}{code test.tuples.PairTest.pairMultiAssignment}

${b}constructor: Creates new instance of [Pair]
${b}first: First value
${b}second: Second value""""
                  )
    }

}