blob: 2c862525f5d24d0100fe1b679b122cfb251e9481 (
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
|
package renderers.html
import org.jetbrains.dokka.base.renderers.html.HtmlRenderer
import org.jetbrains.dokka.pages.TextStyle
import org.jetbrains.dokka.pages.TokenStyle
import org.jsoup.Jsoup
import org.jsoup.nodes.Element
import org.junit.jupiter.api.Test
import renderers.testPage
import utils.*
import kotlin.test.assertEquals
class TextStylesTest : HtmlRenderingOnlyTestBase() {
@Test
fun `should include bold`(){
val page = testPage {
text("bold text", styles = setOf(TextStyle.Bold))
}
HtmlRenderer(context).render(page)
renderedContent.match(B("bold text"))
}
@Test
fun `should include italics`(){
val page = testPage {
text("italics text", styles = setOf(TextStyle.Italic))
}
HtmlRenderer(context).render(page)
renderedContent.match(I("italics text"))
}
@Test
fun `should include strikethrought`(){
val page = testPage {
text("strike text", styles = setOf(TextStyle.Strikethrough))
}
HtmlRenderer(context).render(page)
renderedContent.match(STRIKE("strike text"))
}
@Test
fun `should include token styles`(){
val page = testPage {
text("keyword", styles = setOf(TokenStyle.Keyword))
}
HtmlRenderer(context).render(page)
renderedContent.match(Span("keyword"))
val lastChild = renderedContent.children().last() ?: throw IllegalStateException("No element found")
assertEquals(lastChild.attr("class"), "token keyword")
}
@Test
fun `should include multiple styles at one`(){
val page = testPage {
text(
"styled text",
styles = setOf(
TextStyle.Strikethrough,
TextStyle.Bold,
TextStyle.Indented,
TextStyle.UnderCoverText,
TextStyle.BreakableAfter
)
)
}
HtmlRenderer(context).render(page)
renderedContent.match(STRIKE(B("styled text")))
//Our dsl swallows nbsp so i manually check for it
files.contents.getValue("test-page.html").contains(" <strike><b>styled text</b></strike>")
}
@Test
fun `should include blockquote`() {
val page = testPage {
group(styles = setOf(TextStyle.Quotation)) {
text("blockquote text")
}
}
HtmlRenderer(context).render(page)
renderedContent.match(BlockQuote("blockquote text"))
}
override val renderedContent: Element
get() = files.contents.getValue("test-page.html").let { Jsoup.parse(it) }.select("#content").single()
}
|