blob: 0ca4e24598f149393e4d0759d78e6080b9850bdb (
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
|
/*
* Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
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 renderers.testPage
import utils.*
import kotlin.test.Test
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"))
}
@Test
fun `should include var`() {
val page = testPage {
group(styles = setOf(TextStyle.Var)) {
text("variable")
}
}
HtmlRenderer(context).render(page)
println(renderedContent)
renderedContent.match(Var("variable"))
}
@Test
fun `should include underlined text`() {
val page = testPage {
group(styles = setOf(TextStyle.Underlined)) {
text("underlined text")
}
}
HtmlRenderer(context).render(page)
println(renderedContent)
renderedContent.match(U("underlined text"))
}
override val renderedContent: Element
get() = files.contents.getValue("test-page.html").let { Jsoup.parse(it) }.select("#content").single()
}
|