aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/test/kotlin
diff options
context:
space:
mode:
authorBłażej Kardyś <bkardys@virtuslab.com>2020-05-05 17:45:12 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-05-14 13:30:33 +0200
commit3f2a790190da4f40ea6d8a976aa1929b2a1b002b (patch)
tree752ee84451954e9ea5e6d4133e18e41aaee2f7b1 /plugins/base/src/test/kotlin
parenta440f0cb8756019131a2c15389e747aea3c585e7 (diff)
downloaddokka-3f2a790190da4f40ea6d8a976aa1929b2a1b002b.tar.gz
dokka-3f2a790190da4f40ea6d8a976aa1929b2a1b002b.tar.bz2
dokka-3f2a790190da4f40ea6d8a976aa1929b2a1b002b.zip
Changing approach from platform-driven to source-set-driven
Diffstat (limited to 'plugins/base/src/test/kotlin')
-rw-r--r--plugins/base/src/test/kotlin/expect/AbstractExpectTest.kt2
-rw-r--r--plugins/base/src/test/kotlin/linkableContent/LinkableContentTest.kt6
-rw-r--r--plugins/base/src/test/kotlin/model/ClassesTest.kt20
-rw-r--r--plugins/base/src/test/kotlin/model/InheritorsTest.kt10
-rw-r--r--plugins/base/src/test/kotlin/model/JavaTest.kt4
-rw-r--r--plugins/base/src/test/kotlin/model/PackagesTest.kt4
-rw-r--r--plugins/base/src/test/kotlin/renderers/RenderingOnlyTestBase.kt7
-rw-r--r--plugins/base/src/test/kotlin/renderers/html/PlatformDependentHintTest.kt120
-rw-r--r--plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt121
9 files changed, 151 insertions, 143 deletions
diff --git a/plugins/base/src/test/kotlin/expect/AbstractExpectTest.kt b/plugins/base/src/test/kotlin/expect/AbstractExpectTest.kt
index ef97b04c..3b69a54e 100644
--- a/plugins/base/src/test/kotlin/expect/AbstractExpectTest.kt
+++ b/plugins/base/src/test/kotlin/expect/AbstractExpectTest.kt
@@ -17,7 +17,7 @@ abstract class AbstractExpectTest(
format = outFormat
passes {
pass {
- sourceRoots = listOf(path.asString())
+ sourceRoots = listOf(path.toAbsolutePath().asString())
}
}
}
diff --git a/plugins/base/src/test/kotlin/linkableContent/LinkableContentTest.kt b/plugins/base/src/test/kotlin/linkableContent/LinkableContentTest.kt
index bf1d52d8..1299bf80 100644
--- a/plugins/base/src/test/kotlin/linkableContent/LinkableContentTest.kt
+++ b/plugins/base/src/test/kotlin/linkableContent/LinkableContentTest.kt
@@ -29,6 +29,7 @@ class LinkableContentTest : AbstractCoreTest() {
sourceRoots = listOf("jsMain", "commonMain", "jvmAndJsSecondCommonMain").map {
"$testDataDir/$it/kotlin"
}
+ sourceSetName = "js"
includes = listOf("$includesDir/include2.md")
}
pass {
@@ -38,6 +39,7 @@ class LinkableContentTest : AbstractCoreTest() {
sourceRoots = listOf("jvmMain", "commonMain", "jvmAndJsSecondCommonMain").map {
"$testDataDir/$it/kotlin"
}
+ sourceSetName = "jvm"
includes = listOf("$includesDir/include1.md")
}
}
@@ -73,6 +75,7 @@ class LinkableContentTest : AbstractCoreTest() {
lineSuffix = "#L"
)
)
+ sourceSetName = "js"
}
pass {
moduleName = "example"
@@ -86,6 +89,7 @@ class LinkableContentTest : AbstractCoreTest() {
lineSuffix = "#L"
)
)
+ sourceSetName = "jvm"
}
}
}
@@ -129,6 +133,7 @@ class LinkableContentTest : AbstractCoreTest() {
analysisPlatform = "js"
targets = listOf("js")
sourceRoots = listOf("$testDataDir/jsMain/kotlin")
+ sourceSetName = "js"
samples = listOf("$testDataDir/jsMain/resources/Samples.kt")
}
pass {
@@ -136,6 +141,7 @@ class LinkableContentTest : AbstractCoreTest() {
analysisPlatform = "jvm"
targets = listOf("jvm")
sourceRoots = listOf("$testDataDir/jvmMain/kotlin")
+ sourceSetName = "jvm"
samples = listOf("$testDataDir/jvmMain/resources/Samples.kt")
}
}
diff --git a/plugins/base/src/test/kotlin/model/ClassesTest.kt b/plugins/base/src/test/kotlin/model/ClassesTest.kt
index ee109ba1..a349e54a 100644
--- a/plugins/base/src/test/kotlin/model/ClassesTest.kt
+++ b/plugins/base/src/test/kotlin/model/ClassesTest.kt
@@ -1,9 +1,7 @@
package model
-import org.jetbrains.dokka.Platform
import org.jetbrains.dokka.model.*
import org.jetbrains.dokka.model.KotlinModifier.*
-import org.jetbrains.dokka.pages.PlatformData
import org.junit.jupiter.api.Assertions.assertNull
import org.junit.jupiter.api.Test
import utils.AbstractModelTest
@@ -169,7 +167,7 @@ class ClassesTest : AbstractModelTest("/src/main/kotlin/classes/Test.kt", "class
) {
with((this / "classes" / "Klass").cast<DClass>()) {
name equals "Klass"
- modifier.allValues.forEach { it equals Sealed }
+ modifier.values.forEach { it equals Sealed }
}
}
}
@@ -211,15 +209,15 @@ class ClassesTest : AbstractModelTest("/src/main/kotlin/classes/Test.kt", "class
val D = (this / "classes" / "D").cast<DClass>()
with(C) {
- modifier.allValues.forEach { it equals Open }
+ modifier.values.forEach { it equals Open }
with((this / "f").cast<DFunction>()) {
- modifier.allValues.forEach { it equals Open }
+ modifier.values.forEach { it equals Open }
}
}
with(D) {
- modifier.allValues.forEach { it equals Final }
+ modifier.values.forEach { it equals Final }
with((this / "f").cast<DFunction>()) {
- modifier.allValues.forEach { it equals Open }
+ modifier.values.forEach { it equals Open }
}
D.supertypes.flatMap { it.component2() }.firstOrNull() equals C.dri
}
@@ -246,16 +244,16 @@ class ClassesTest : AbstractModelTest("/src/main/kotlin/classes/Test.kt", "class
val E = (this / "classes" / "E").cast<DClass>()
with(C) {
- modifier.allValues.forEach { it equals Abstract }
- ((this / "foo").cast<DFunction>()).modifier.allValues.forEach { it equals Abstract }
+ modifier.values.forEach { it equals Abstract }
+ ((this / "foo").cast<DFunction>()).modifier.values.forEach { it equals Abstract }
}
with(D) {
- modifier.allValues.forEach { it equals Abstract }
+ modifier.values.forEach { it equals Abstract }
}
with(E) {
- modifier.allValues.forEach { it equals Final }
+ modifier.values.forEach { it equals Final }
}
D.supers.firstOrNull() equals C.dri
diff --git a/plugins/base/src/test/kotlin/model/InheritorsTest.kt b/plugins/base/src/test/kotlin/model/InheritorsTest.kt
index ee445b5d..ce8a87ca 100644
--- a/plugins/base/src/test/kotlin/model/InheritorsTest.kt
+++ b/plugins/base/src/test/kotlin/model/InheritorsTest.kt
@@ -30,8 +30,8 @@ class InheritorsTest : AbstractModelTest("/src/main/kotlin/inheritors/Test.kt",
pluginsOverrides = listOf(InheritorsPlugin)
) {
with((this / "inheritors" / "A").cast<DInterface>()) {
- val map = extra[InheritorsInfo].assertNotNull("InheritorsInfo").value.map
- with(map.keys.also { it counts 1 }.find { it.platformType == Platform.jvm }.assertNotNull("jvm key").let { map[it]!! }
+ val map = extra[InheritorsInfo].assertNotNull("InheritorsInfo").value
+ with(map.keys.also { it counts 1 }.find { it.platform == Platform.jvm }.assertNotNull("jvm key").let { map[it]!! }
) {
this counts 1
first().classNames equals "B"
@@ -77,13 +77,13 @@ class InheritorsTest : AbstractModelTest("/src/main/kotlin/inheritors/Test.kt",
) {
documentablesTransformationStage = { m ->
with((m / "inheritors" / "A").cast<DInterface>()) {
- val map = extra[InheritorsInfo].assertNotNull("InheritorsInfo").value.map
+ val map = extra[InheritorsInfo].assertNotNull("InheritorsInfo").value
with(map.keys.also { it counts 2 }) {
- with(find { it.platformType == Platform.jvm }.assertNotNull("jvm key").let { map[it]!! }) {
+ with(find { it.platform == Platform.jvm }.assertNotNull("jvm key").let { map[it]!! }) {
this counts 1
first().classNames equals "B"
}
- with(find { it.platformType == Platform.js }.assertNotNull("js key").let { map[it]!! }) {
+ with(find { it.platform == Platform.js }.assertNotNull("js key").let { map[it]!! }) {
this counts 2
val classes = listOf("B", "C")
assertTrue(all { classes.contains(it.classNames) }, "One of subclasses missing in js" )
diff --git a/plugins/base/src/test/kotlin/model/JavaTest.kt b/plugins/base/src/test/kotlin/model/JavaTest.kt
index 20543c8f..a58b380c 100644
--- a/plugins/base/src/test/kotlin/model/JavaTest.kt
+++ b/plugins/base/src/test/kotlin/model/JavaTest.kt
@@ -112,7 +112,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") {
with((this / "java" / "Foo").cast<DClass>()) {
val sups = listOf("Exception", "Cloneable")
assertTrue(
- sups.all { s -> supertypes.map.values.flatten().any { it.classNames == s } })
+ sups.all { s -> supertypes.values.flatten().any { it.classNames == s } })
"Foo must extend ${sups.joinToString(", ")}"
}
}
@@ -410,7 +410,7 @@ class JavaTest : AbstractModelTest("/src/main/kotlin/java/Test.java", "java") {
val dri = (this / "Bar").assertNotNull("Foo dri").dri
with((this / "Foo").cast<DClass>()) {
with(extra[InheritorsInfo].assertNotNull("InheritorsInfo")) {
- with(value.map.values.flatten().distinct()) {
+ with(value.values.flatten().distinct()) {
this counts 1
first() equals dri
}
diff --git a/plugins/base/src/test/kotlin/model/PackagesTest.kt b/plugins/base/src/test/kotlin/model/PackagesTest.kt
index 11d456ce..676f034a 100644
--- a/plugins/base/src/test/kotlin/model/PackagesTest.kt
+++ b/plugins/base/src/test/kotlin/model/PackagesTest.kt
@@ -14,8 +14,8 @@ class PackagesTest : AbstractModelTest("/src/main/kotlin/packages/Test.kt", "pac
""".trimIndent(),
prependPackage = false
) {
- with((this / "[jvm root]").cast<DPackage>()) {
- name equals "[jvm root]"
+ with((this / "[main root]").cast<DPackage>()) {
+ name equals "[main root]"
children counts 0
}
}
diff --git a/plugins/base/src/test/kotlin/renderers/RenderingOnlyTestBase.kt b/plugins/base/src/test/kotlin/renderers/RenderingOnlyTestBase.kt
index 237f4fd9..dd4d1ee0 100644
--- a/plugins/base/src/test/kotlin/renderers/RenderingOnlyTestBase.kt
+++ b/plugins/base/src/test/kotlin/renderers/RenderingOnlyTestBase.kt
@@ -14,6 +14,8 @@ import org.jetbrains.dokka.base.transformers.pages.samples.DefaultSamplesTransfo
import org.jetbrains.dokka.base.translators.documentables.PageContentBuilder
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.Documentable
+import org.jetbrains.dokka.model.SourceSetCache
+import org.jetbrains.dokka.model.SourceSetData
import org.jetbrains.dokka.model.doc.DocTag
import org.jetbrains.dokka.model.properties.PropertyContainer
import org.jetbrains.dokka.pages.*
@@ -34,6 +36,7 @@ abstract class RenderingOnlyTestBase {
DokkaBase().htmlPreprocessors to { _ -> RootCreator },
DokkaBase().externalLocationProviderFactory to { _ -> ::JavadocExternalLocationProviderFactory },
DokkaBase().externalLocationProviderFactory to { _ -> ::DokkaExternalLocationProviderFactory },
+ sourceSetCache = SourceSetCache(),
testConfiguration = DokkaConfigurationImpl("", "", false, null, emptyList(), emptyList(), emptyList(), emptyMap())
)
@@ -105,7 +108,7 @@ internal object EmptyCommentConverter : CommentsToContentConverter {
override fun buildContent(
docTag: DocTag,
dci: DCI,
- platforms: Set<PlatformData>,
+ sourceSets: Set<SourceSetData>,
styles: Set<Style>,
extras: PropertyContainer<ContentNode>
): List<ContentNode> = emptyList()
@@ -113,7 +116,7 @@ internal object EmptyCommentConverter : CommentsToContentConverter {
internal object EmptyLocationProviderFactory: LocationProviderFactory {
override fun getLocationProvider(pageNode: RootPageNode) = object : LocationProvider {
- override fun resolve(dri: DRI, platforms: List<PlatformData>, context: PageNode?): String = ""
+ override fun resolve(dri: DRI, sourceSets: List<SourceSetData>, context: PageNode?): String = ""
override fun resolve(node: PageNode, context: PageNode?, skipExtension: Boolean): String = node.name
diff --git a/plugins/base/src/test/kotlin/renderers/html/PlatformDependentHintTest.kt b/plugins/base/src/test/kotlin/renderers/html/PlatformDependentHintTest.kt
deleted file mode 100644
index cf1ac0a9..00000000
--- a/plugins/base/src/test/kotlin/renderers/html/PlatformDependentHintTest.kt
+++ /dev/null
@@ -1,120 +0,0 @@
-package renderers.html
-
-import org.jetbrains.dokka.Platform
-import org.jetbrains.dokka.base.renderers.html.HtmlRenderer
-import org.jetbrains.dokka.pages.PlatformData
-import org.jetbrains.dokka.pages.TextStyle
-import org.junit.jupiter.api.Test
-import renderers.Div
-import renderers.RenderingOnlyTestBase
-import renderers.TestPage
-import renderers.match
-
-class PlatformDependentHintTest : RenderingOnlyTestBase() {
- private val pl1 = PlatformData("pl1", Platform.js, listOf("pl1"))
- private val pl2 = PlatformData("pl2", Platform.jvm, listOf("pl2"))
- private val pl3 = PlatformData("pl3", Platform.native, listOf("pl3"))
-
- @Test
- fun platformIndependentCase() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
- text("a")
- text("b")
- text("c")
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div("abc"))))
- }
-
- @Test
- fun completelyDivergentCase() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
- text("a", platformData = setOf(pl1))
- text("b", platformData = setOf(pl2))
- text("c", platformData = setOf(pl3))
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div("a")), Div(Div("b")), Div(Div("c"))))
- }
-
- @Test
- fun overlappingCase() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
- text("a", platformData = setOf(pl1))
- text("b", platformData = setOf(pl1, pl2))
- text("c", platformData = setOf(pl2))
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div("ab")), Div(Div("bc"))))
- }
-
- @Test
- fun caseThatCanBeSimplified() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
- text("a", platformData = setOf(pl1, pl2))
- text("b", platformData = setOf(pl1))
- text("b", platformData = setOf(pl2))
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div("ab"))))
- }
-
- @Test
- fun caseWithGroupBreakingSimplification() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
- group(styles = setOf(TextStyle.Block)) {
- text("a", platformData = setOf(pl1, pl2))
- text("b", platformData = setOf(pl1))
- }
- text("b", platformData = setOf(pl2))
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div(Div("ab"))), Div(Div(Div("a"), "b"))))
- }
-
- @Test
- fun caseWithGroupNotBreakingSimplification() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2)) {
- group {
- text("a", platformData = setOf(pl1, pl2))
- text("b", platformData = setOf(pl1))
- }
- text("b", platformData = setOf(pl2))
- }
- }
-
- HtmlRenderer(context).render(page)
- println(renderedContent)
- renderedContent.match(Div(Div("ab")))
- }
-
- @Test
- fun partiallyUnifiedCase() {
- val page = TestPage {
- platformDependentHint(platformData = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
- text("a", platformData = setOf(pl1))
- text("a", platformData = setOf(pl2))
- text("b", platformData = setOf(pl3))
- }
- }
-
- HtmlRenderer(context).render(page)
- renderedContent.match(Div(Div(Div("a")), Div(Div("b"))))
- }
-} \ No newline at end of file
diff --git a/plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt b/plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt
new file mode 100644
index 00000000..f774a09b
--- /dev/null
+++ b/plugins/base/src/test/kotlin/renderers/html/SourceSetDependentHintTest.kt
@@ -0,0 +1,121 @@
+package renderers.html
+
+import org.jetbrains.dokka.Platform
+import org.jetbrains.dokka.SourceRootImpl
+import org.jetbrains.dokka.base.renderers.html.HtmlRenderer
+import org.jetbrains.dokka.model.SourceSetData
+import org.jetbrains.dokka.pages.TextStyle
+import org.junit.jupiter.api.Test
+import renderers.Div
+import renderers.RenderingOnlyTestBase
+import renderers.TestPage
+import renderers.match
+
+class SourceSetDependentHintTest : RenderingOnlyTestBase() {
+ private val pl1 = SourceSetData("root", "pl1", Platform.js, listOf(SourceRootImpl("pl1")))
+ private val pl2 = SourceSetData("root","pl2", Platform.jvm, listOf(SourceRootImpl("pl1")))
+ private val pl3 = SourceSetData("root","pl3", Platform.native, listOf(SourceRootImpl("pl1")))
+
+ @Test
+ fun platformIndependentCase() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
+ text("a")
+ text("b")
+ text("c")
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div("abc"))))
+ }
+
+ @Test
+ fun completelyDivergentCase() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
+ text("a", sourceSets = setOf(pl1))
+ text("b", sourceSets = setOf(pl2))
+ text("c", sourceSets = setOf(pl3))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div("a")), Div(Div("b")), Div(Div("c"))))
+ }
+
+ @Test
+ fun overlappingCase() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
+ text("a", sourceSets = setOf(pl1))
+ text("b", sourceSets = setOf(pl1, pl2))
+ text("c", sourceSets = setOf(pl2))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div("ab")), Div(Div("bc"))))
+ }
+
+ @Test
+ fun caseThatCanBeSimplified() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
+ text("a", sourceSets = setOf(pl1, pl2))
+ text("b", sourceSets = setOf(pl1))
+ text("b", sourceSets = setOf(pl2))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div("ab"))))
+ }
+
+ @Test
+ fun caseWithGroupBreakingSimplification() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2), styles = setOf(TextStyle.Block)) {
+ group(styles = setOf(TextStyle.Block)) {
+ text("a", sourceSets = setOf(pl1, pl2))
+ text("b", sourceSets = setOf(pl1))
+ }
+ text("b", sourceSets = setOf(pl2))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div(Div("ab"))), Div(Div(Div("a"), "b"))))
+ }
+
+ @Test
+ fun caseWithGroupNotBreakingSimplification() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2)) {
+ group {
+ text("a", sourceSets = setOf(pl1, pl2))
+ text("b", sourceSets = setOf(pl1))
+ }
+ text("b", sourceSets = setOf(pl2))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ println(renderedContent)
+ renderedContent.match(Div(Div("ab")))
+ }
+
+ @Test
+ fun partiallyUnifiedCase() {
+ val page = TestPage {
+ sourceSetDependentHint(sourceSets = setOf(pl1, pl2, pl3), styles = setOf(TextStyle.Block)) {
+ text("a", sourceSets = setOf(pl1))
+ text("a", sourceSets = setOf(pl2))
+ text("b", sourceSets = setOf(pl3))
+ }
+ }
+
+ HtmlRenderer(context).render(page)
+ renderedContent.match(Div(Div(Div("a")), Div(Div("b"))))
+ }
+} \ No newline at end of file