diff options
author | Błażej Kardyś <bkardys@virtuslab.com> | 2020-05-05 17:45:12 +0200 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-05-14 13:30:33 +0200 |
commit | 3f2a790190da4f40ea6d8a976aa1929b2a1b002b (patch) | |
tree | 752ee84451954e9ea5e6d4133e18e41aaee2f7b1 /plugins/base/src/test/kotlin | |
parent | a440f0cb8756019131a2c15389e747aea3c585e7 (diff) | |
download | dokka-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')
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 |