aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/base/src/test/kotlin/markdown/LinkTest.kt1
-rw-r--r--plugins/base/src/test/kotlin/model/PackagesTest.kt10
-rw-r--r--plugins/base/src/test/kotlin/signatures/DivergentSignatureTest.kt96
-rw-r--r--plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jsMain/kotlin/Clock.kt7
-rw-r--r--plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jvmMain/kotlin/example/Clock.kt4
5 files changed, 91 insertions, 27 deletions
diff --git a/plugins/base/src/test/kotlin/markdown/LinkTest.kt b/plugins/base/src/test/kotlin/markdown/LinkTest.kt
index 8e4e588e..a6333c5a 100644
--- a/plugins/base/src/test/kotlin/markdown/LinkTest.kt
+++ b/plugins/base/src/test/kotlin/markdown/LinkTest.kt
@@ -49,6 +49,7 @@ class LinkTest : AbstractCoreTest() {
sourceSets {
sourceSet {
sourceRoots = listOf("src/main/kotlin")
+ displayName = "JVM"
}
}
}
diff --git a/plugins/base/src/test/kotlin/model/PackagesTest.kt b/plugins/base/src/test/kotlin/model/PackagesTest.kt
index c777ad05..4fc4d785 100644
--- a/plugins/base/src/test/kotlin/model/PackagesTest.kt
+++ b/plugins/base/src/test/kotlin/model/PackagesTest.kt
@@ -12,7 +12,15 @@ class PackagesTest : AbstractModelTest("/src/main/kotlin/packages/Test.kt", "pac
"""
|
""".trimIndent(),
- prependPackage = false
+ prependPackage = false,
+ configuration = dokkaConfiguration {
+ passes {
+ pass {
+ sourceRoots = listOf("src/main/kotlin")
+ displayName = "JVM"
+ }
+ }
+ }
) {
with((this / "[JVM root]").cast<DPackage>()) {
name equals "[JVM root]"
diff --git a/plugins/base/src/test/kotlin/signatures/DivergentSignatureTest.kt b/plugins/base/src/test/kotlin/signatures/DivergentSignatureTest.kt
index 6ed17110..67a43725 100644
--- a/plugins/base/src/test/kotlin/signatures/DivergentSignatureTest.kt
+++ b/plugins/base/src/test/kotlin/signatures/DivergentSignatureTest.kt
@@ -2,6 +2,8 @@ package signatures
import org.jetbrains.dokka.testApi.testRunner.AbstractCoreTest
import org.jsoup.Jsoup
+import org.jsoup.nodes.Element
+import org.jsoup.select.Elements
import org.junit.jupiter.api.Test
import utils.*
import java.nio.file.Paths
@@ -9,11 +11,10 @@ import java.nio.file.Paths
class DivergentSignatureTest : AbstractCoreTest() {
@Test
- fun `three divergent signatures for class`() {
+ fun `group { common + jvm + js }`() {
val testDataDir = getTestDataDir("multiplatform/basicMultiplatformTest").toAbsolutePath()
-
val configuration = dokkaConfiguration {
passes {
pass {
@@ -35,10 +36,10 @@ class DivergentSignatureTest : AbstractCoreTest() {
pass {
moduleName = "example"
analysisPlatform = "common"
- sourceRoots = listOf("jvmMain", "commonMain", "jvmAndJsSecondCommonMain").map {
+ sourceRoots = listOf("commonMain").map {
Paths.get("$testDataDir/$it/kotlin").toString()
}
- sourceSetID = "jvm"
+ sourceSetID = "common"
}
}
}
@@ -50,26 +51,19 @@ class DivergentSignatureTest : AbstractCoreTest() {
pluginOverrides = listOf(writerPlugin)
) {
renderingStage = { _, _ ->
- assert(writerPlugin.writer.contents.getValue("example/example/-clock/index.html")
- .let { Jsoup.parse(it) }.select("#content").single()
- .select("div.sourceset-depenent-content")
- .fold(0) { acc, elem ->
- acc + if (elem.child(0).html().contains(
- Regex("Documentation for (expected|actual) class Clock .*")
- )
- ) 1 else 0
- } == 3
- )
+ val content = writerPlugin.renderedContent("example/example/-clock/get-time.html")
+
+ assert(content.count() == 1)
+ assert(content.select("[data-filterable-current=js jvm common]").single().brief == "")
}
}
}
@Test
- fun `three divergent signatures for class`() {
+ fun `group { common + jvm }, group { js }`() {
val testDataDir = getTestDataDir("multiplatform/basicMultiplatformTest").toAbsolutePath()
-
val configuration = dokkaConfiguration {
passes {
pass {
@@ -91,11 +85,60 @@ class DivergentSignatureTest : AbstractCoreTest() {
pass {
moduleName = "example"
analysisPlatform = "common"
+ sourceRoots = listOf("commonMain").map {
+ Paths.get("$testDataDir/$it/kotlin").toString()
+ }
+ sourceSetID = "common"
+ }
+ }
+ }
+
+ val writerPlugin = TestOutputWriterPlugin()
+
+ testFromData(
+ configuration,
+ pluginOverrides = listOf(writerPlugin)
+ ) {
+ renderingStage = { _, _ ->
+ val content = writerPlugin.renderedContent("example/example/-clock/get-times-in-millis.html")
+ assert(content.count() == 2)
+ assert(content.select("[data-filterable-current=jvm common]").single().brief == "Time in minis")
+ assert(content.select("[data-filterable-current=js]").single().brief == "JS implementation of getTimeInMillis example/js" )
+ }
+ }
+ }
+
+ @Test
+ fun `group { js }, group { jvm }, group { js }`() {
+
+ val testDataDir = getTestDataDir("multiplatform/basicMultiplatformTest").toAbsolutePath()
+
+ val configuration = dokkaConfiguration {
+ passes {
+ pass {
+ moduleName = "example"
+ analysisPlatform = "js"
+ sourceRoots = listOf("jsMain", "commonMain", "jvmAndJsSecondCommonMain").map {
+ Paths.get("$testDataDir/$it/kotlin").toString()
+ }
+ sourceSetID = "js"
+ }
+ pass {
+ moduleName = "example"
+ analysisPlatform = "jvm"
sourceRoots = listOf("jvmMain", "commonMain", "jvmAndJsSecondCommonMain").map {
Paths.get("$testDataDir/$it/kotlin").toString()
}
sourceSetID = "jvm"
}
+ pass {
+ moduleName = "example"
+ analysisPlatform = "common"
+ sourceRoots = listOf("commonMain").map {
+ Paths.get("$testDataDir/$it/kotlin").toString()
+ }
+ sourceSetID = "common"
+ }
}
}
@@ -106,17 +149,18 @@ class DivergentSignatureTest : AbstractCoreTest() {
pluginOverrides = listOf(writerPlugin)
) {
renderingStage = { _, _ ->
- assert(writerPlugin.writer.contents.getValue("example/example/-clock/index.html")
- .let { Jsoup.parse(it) }.select("#content").single()
- .select("div.sourceset-depenent-content")
- .fold(0) { acc, elem ->
- acc + if (elem.child(0).html().contains(
- Regex("Documentation for (expected|actual) class Clock .*")
- )
- ) 1 else 0
- } == 3
- )
+ val content = writerPlugin.renderedContent("example/example/-clock/get-year.html")
+ assert(content.count() == 3)
+ assert(content.select("[data-filterable-current=jvm]").single().brief == "JVM custom kdoc example/jvm")
+ assert(content.select("[data-filterable-current=js]").single().brief == "JS custom kdoc example/js")
+ assert(content.select("[data-filterable-current=common]").single().brief == "example/common")
}
}
}
+
+ private fun TestOutputWriterPlugin.renderedContent(path: String) = writer.contents.getValue(path)
+ .let { Jsoup.parse(it) }.select("#content").single().select("div.divergent-group")
+
+ private val Element.brief: String
+ get() = children().select(".brief-with-platform-tags").text()
} \ No newline at end of file
diff --git a/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jsMain/kotlin/Clock.kt b/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jsMain/kotlin/Clock.kt
index 967cffcd..51b8fdc6 100644
--- a/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jsMain/kotlin/Clock.kt
+++ b/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jsMain/kotlin/Clock.kt
@@ -9,8 +9,15 @@ import kotlin.js.Date
actual open class Clock {
actual fun getTime() = Date.now().toString()
fun onlyJsFunction(): Int = 42
+
+ /**
+ * JS implementation of getTimeInMillis
+ */
actual fun getTimesInMillis(): String = Date.now().toString()
+ /**
+ * JS custom kdoc
+ */
actual fun getYear(): String {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
diff --git a/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jvmMain/kotlin/example/Clock.kt b/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jvmMain/kotlin/example/Clock.kt
index 4d27d0a3..fec06207 100644
--- a/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jvmMain/kotlin/example/Clock.kt
+++ b/plugins/base/src/test/resources/multiplatform/basicMultiplatformTest/jvmMain/kotlin/example/Clock.kt
@@ -25,6 +25,10 @@ actual open class Clock {
open fun getDayOfTheWeek(): String {
TODO("not implemented")
}
+
+ /**
+ * JVM custom kdoc
+ */
actual fun getYear(): String {
TODO("not implemented")
}