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
|
package dotty.tools
package dottydoc
package staticsite
import org.junit.Test
import org.junit.Assert._
class SiteTests extends DottyDocTest {
import scala.collection.JavaConverters._
val site = new Site(new java.io.File("../doc-tool/resources/"), "test-site", Map.empty)
private def html(
str: String,
params: Map[String, AnyRef] = Map("docs" -> List.empty.asJava),
includes: Map[String, String] = Map.empty
) = new HtmlPage(str, params, includes)
@Test def hasCorrectLayoutFiles = {
assert(site.root.exists && site.root.isDirectory,
s"'${site.root.getName}' is not a directory")
val expectedLayouts = Set("main", "index", "blog", "doc", "doc-page", "api-page")
assert(site.layouts.keys == expectedLayouts,
s"Incorrect layouts in: ${site.layouts.keys}, expected: $expectedLayouts")
}
@Test def renderHelloInMainLayout = {
val renderedPage = site.render(html(
"""|---
|layout: main
|---
|
|Hello, world!""".stripMargin
), Map.empty)
assert(
renderedPage.contains("Hello, world!") &&
!renderedPage.contains("---\nlayout: main\n---\n") &&
renderedPage.contains("<!DOCTYPE html>"),
"html page did not render properly"
)
}
@Test def renderMultipleTemplates = {
val renderedPage = site.render(html(
"""|---
|layout: index
|---
|Hello, world!""".stripMargin
), Map.empty)
assert(
renderedPage.contains("<h1>Hello, world!</h1>") &&
!renderedPage.contains("---\nlayout: main\n---\n") &&
!renderedPage.contains("---\nlayout: index\n---\n") &&
renderedPage.contains("<!DOCTYPE html>"),
"html page did not render properly"
)
}
@Test def preservesPageYaml = {
val renderedPage = site.render(html(
"""|---
|title: Hello, world
|layout: index
|---
|Hello, world!""".stripMargin
), Map.empty)
assert(
renderedPage.contains("<h1>Hello, world!</h1>") &&
!renderedPage.contains("---\nlayout: main\n---\n") &&
!renderedPage.contains("---\nlayout: index\n---\n") &&
renderedPage.contains("<title>Hello, world</title>") &&
renderedPage.contains("<!DOCTYPE html>"),
"html page did not render properly:\n" + renderedPage
)
}
@Test def include = {
val renderedInclude = site.render(
html("""{% include "header.html" %}""", includes = site.includes),
Map.empty
)
assertEquals("<h1>Some header</h1>\n", renderedInclude)
}
@Test def siteStructure = {
val assets = site.staticAssets.map(site.stripRoot).toSet
val compd = site.compilableFiles.map(site.stripRoot).toSet
val expectedAssets = Set(
"css/api-page.css",
"css/dottydoc.css",
"css/color-brewer.css",
"js/highlight.pack.js"
)
val expectedCompd = Set(
// Directories starting in `_` are not included in compilable files
"index.md"
)
assert(expectedAssets == assets,
s"assets incorrect, found: $assets - expected $expectedAssets")
assert(expectedCompd == compd,
s"compilable files incorrect, found: $compd - expected $expectedCompd")
}
}
|