diff options
author | Andrzej Ratajczak <andrzej.ratajczak98@gmail.com> | 2020-06-25 14:22:51 +0200 |
---|---|---|
committer | Andrzej Ratajczak <32793002+BarkingBad@users.noreply.github.com> | 2020-09-08 12:52:59 +0200 |
commit | a1f8efc30b4421ce371b02b747bbeac24fafd7ba (patch) | |
tree | 7dba1baab9ad4d8db7436e65c7e9c26618a07c89 /plugins/base/src/test/kotlin/pageMerger | |
parent | 270ff58ea44b7700be45062f75bbc7fd50d183eb (diff) | |
download | dokka-a1f8efc30b4421ce371b02b747bbeac24fafd7ba.tar.gz dokka-a1f8efc30b4421ce371b02b747bbeac24fafd7ba.tar.bz2 dokka-a1f8efc30b4421ce371b02b747bbeac24fafd7ba.zip |
Changed way of merging documentables to avoid exception on merging documentables of different types. Minor javadoc fixes. Changed constructor names. Add handling same name pages clash for different platforms
Diffstat (limited to 'plugins/base/src/test/kotlin/pageMerger')
-rw-r--r-- | plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt index 935b9377..1a57ae02 100644 --- a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt +++ b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt @@ -1,5 +1,6 @@ package pageMerger +import org.jetbrains.dokka.pages.ClasslikePageNode import org.jetbrains.dokka.pages.ContentPage import org.jetbrains.dokka.pages.PageNode import org.junit.jupiter.api.Assertions.assertTrue @@ -123,4 +124,69 @@ class PageNodeMergerTest : AbstractCoreTest() { fun PageNode.childrenRec(): List<PageNode> = listOf(this) + children.flatMap { it.childrenRec() } + + @Test + fun `should not be merged`() { + + val configuration = dokkaConfiguration { + sourceSets { + val common = sourceSet { + moduleName = "example" + name = "common" + displayName = "common" + analysisPlatform = "common" + sourceRoots = listOf("src/commonMain/kotlin/pageMerger/Test.kt") + } + val js = sourceSet { + moduleName = "example" + name = "js" + displayName = "js" + analysisPlatform = "js" + dependentSourceSets = setOf(common.sourceSetID) + sourceRoots = listOf("src/jsMain/kotlin/pageMerger/Test.kt") + } + val jvm = sourceSet { + moduleName = "example" + name = "jvm" + displayName = "jvm" + analysisPlatform = "jvm" + dependentSourceSets = setOf(common.sourceSetID) + sourceRoots = listOf("src/jvmMain/kotlin/pageMerger/Test.kt") + } + } + } + + testInline( + """ + |/src/commonMain/kotlin/pageMerger/Test.kt + |package pageMerger + | + |/src/jsMain/kotlin/pageMerger/Test.kt + |package pageMerger + | + |annotation class DoNotMerge + | + |/src/jvmMain/kotlin/pageMerger/Test.kt + |package pageMerger + | + |annotation class DoNotMerge + """.trimMargin(), + configuration + ) { + pagesTransformationStage = { + println(it) + val allChildren = it.childrenRec().filterIsInstance<ClasslikePageNode>() + val jvmClass = allChildren.filter { it.name == "DoNotMerge(jvm)" } + val jsClass = allChildren.filter { it.name == "DoNotMerge(js)" } + val noClass = allChildren.filter { it.name == "DoNotMerge" } + assertTrue(jvmClass.size == 1) { "There can be only one DoNotMerge(jvm) page" } + assertTrue(jvmClass.first().documentable?.sourceSets?.single()?.analysisPlatform?.key == "jvm") { "DoNotMerge(jvm) should have only jvm sources" } + + assertTrue(jsClass.size == 1) { "There can be only one DoNotMerge(js) page" } + assertTrue(jsClass.first().documentable?.sourceSets?.single()?.analysisPlatform?.key == "js") { "DoNotMerge(js) should have only js sources" } + + assertTrue(noClass.isEmpty()) { "There can't be any DoNotMerge page" } + } + } + } } |