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
|
package dotty.tools
package dottydoc
package staticsite
import org.junit.Test
import org.junit.Assert._
class PageTests extends DottyDocTest with SourceFileOps {
import scala.collection.JavaConverters._
@Test def mdHas1Key = {
val page = markdownPage(
"""|---
|key:
|---
|
|great""".stripMargin
)
assert(
page.yaml == Map("key" -> List.empty.asJava),
s"""incorrect yaml, expected "key:" without key in: ${page.yaml}"""
)
assertEquals("<p>great</p>\n", page.html.get)
}
@Test def yamlPreservesLiquidTags = {
val page1 = markdownPage(
"""|---
|key:
|---
|
|{{ content }}""".stripMargin,
params = Map("content" -> "Hello, world!")
)
assert(
page1.yaml == Map("key" -> List.empty.asJava),
s"""incorrect yaml, expected "key:" without key in: ${page1.yaml}"""
)
assertEquals("<p>Hello, world!</p>\n", page1.html.get)
val page2 = markdownPage(
"""|{{ content }}""".stripMargin,
params = Map("content" -> "hello")
)
assert(
page2.yaml == Map(),
s"""incorrect yaml, expected "key:" without key in: ${page2.yaml}"""
)
assertEquals("<p>hello</p>\n", page2.html.get)
val page3 = markdownPage(
"""|{% if product.title == "Awesome Shoes" %}
|These shoes are awesome!
|{% endif %}""".stripMargin,
params = Map("product" -> Map("title" -> "Awesome Shoes").asJava)
)
assertEquals(
"<p>These shoes are awesome!</p>\n",
page3.html.get
)
}
@Test def simpleHtmlPage = {
val p1 = htmlPage("""<h1>{{ "hello, world!" }}</h1>""")
assert(p1.yaml == Map(), "non-empty yaml found")
assertEquals("<h1>hello, world!</h1>", p1.html.get)
}
@Test def htmlPageHasNoYaml = {
val page = htmlPage(
"""|---
|layout: main
|---
|
|Hello, world!""".stripMargin
)
assert(!page.html.get.contains("---\nlayout: main\n---"),
s"page still contains yaml:\n${page.html.get}")
}
@Test def illegalYamlFrontMatter = try {
val page = htmlPage(
"""|---
|layout: main
|
|
|Hello, world!""".stripMargin
)
page.html.get
fail("illegal front matter didn't throw exception")
} catch {
case IllegalFrontMatter(x) => // success!
case t: Throwable => throw t
}
}
|