From 50e711d24b517bc93c37d89f258c9dafaa038ad1 Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Mon, 20 Jan 2020 14:55:42 +0100 Subject: kotlin-as-java plugin --- .../src/test/kotlin/KotlinAsJavaPluginTest.kt | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt (limited to 'plugins/kotlin-as-java/src/test/kotlin') diff --git a/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt b/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt new file mode 100644 index 00000000..c0833293 --- /dev/null +++ b/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt @@ -0,0 +1,98 @@ +package kotlinAsJavaPlugin + +import junit.framework.Assert.fail +import org.jetbrains.dokka.pages.ContentGroup +import org.jetbrains.dokka.pages.ContentPage +import org.jetbrains.dokka.pages.ContentTable +import org.jetbrains.dokka.pages.children +import org.junit.Test +import testApi.testRunner.AbstractCoreTest + +class KotlinAsJavaPluginTest : AbstractCoreTest() { + + @Test + fun topLevelTest() { + val configuration = dokkaConfiguration { + passes { + pass { + sourceRoots = listOf("src/") + } + } + } + testInline( + """ + |/src/main/kotlin/kotlinAsJavaPlugin/Test.kt + |package kotlinAsJavaPlugin + | + |object TestObj {} + | + |fun testFL(l: List) = l + |fun testF() {} + |fun testF2(i: Int) = i + |fun testF3(to: TestObj) = to + |fun testF4(t: T) = listOf(t) + |val testV = 1 + """, + configuration, + cleanupOutput = true + ) { + pagesGenerationStage = { root -> + val content = (root.children.firstOrNull()?.children?.firstOrNull() as? ContentPage )?.content ?: run { + fail("Either children or content is null") + } + + val children = + if (content is ContentGroup) + content.children.filterIsInstance().filter { it.children.isNotEmpty() } + else emptyList() + + children.assertCount(2) + } + } + } + + @Test + fun topLevelWithClassTest() { + val configuration = dokkaConfiguration { + passes { + pass { + sourceRoots = listOf("src/") + } + } + } + testInline( + """ + |/src/main/kotlin/kotlinAsJavaPlugin/Test.kt + |package kotlinAsJavaPlugin + | + |class Test { + | fun testFC() {} + | val testVC = 1 + |} + | + |fun testF(i: Int) = i + |val testV = 1 + """, + configuration, + cleanupOutput = true + ) { + pagesGenerationStage = { root -> + val contentList = root.children + .flatMap { it.children() } + .map { it.content } + + val children = contentList.flatMap { content -> + if (content is ContentGroup) + content.children.filterIsInstance().filter { it.children.isNotEmpty() } + else emptyList() + }.filterNot { it.toString().contains("") } + + children.assertCount(4) + } + } + } + + private fun Collection.assertCount(n: Int) = + assert(count() == n) { "Expected $n, got ${count()}" } + +} \ No newline at end of file -- cgit From af9697cbd2eb1a26c8a07d191ca6360d416a1666 Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Tue, 11 Feb 2020 15:57:29 +0100 Subject: kotlin-as-java fixed --- core/src/main/kotlin/pages/PageBuilder.kt | 4 +- core/src/main/kotlin/pages/PageContentBuilder.kt | 2 +- .../psi/DefaultPsiToDocumentationTranslator.kt | 24 ++++++---- .../src/main/kotlin/KotlinAsJavaPageBuilder.kt | 20 ++++++-- .../main/kotlin/KotlinAsJavaPageContentBuilder.kt | 12 +++-- .../src/test/kotlin/KotlinAsJavaPluginTest.kt | 53 ++++++++++++++++++++-- 6 files changed, 90 insertions(+), 25 deletions(-) (limited to 'plugins/kotlin-as-java/src/test/kotlin') diff --git a/core/src/main/kotlin/pages/PageBuilder.kt b/core/src/main/kotlin/pages/PageBuilder.kt index df0c12c2..e3105918 100644 --- a/core/src/main/kotlin/pages/PageBuilder.kt +++ b/core/src/main/kotlin/pages/PageBuilder.kt @@ -62,7 +62,7 @@ open class DefaultPageBuilder( } } - fun contentForClasslike(c: Classlike): ContentGroup = when (c) { + open fun contentForClasslike(c: Classlike): ContentGroup = when (c) { is Class -> contentForClass(c) is Enum -> contentForEnum(c) else -> throw IllegalStateException("$c should not be present here") @@ -91,7 +91,7 @@ open class DefaultPageBuilder( text(it.briefDocTagString) } - block("Functions", 2, ContentKind.Functions, c.functions, c.platformData) { + this.block("Functions", 2, ContentKind.Functions, c.functions, c.platformData) { link(it.name, it.dri) signature(it) text(it.briefDocTagString) diff --git a/core/src/main/kotlin/pages/PageContentBuilder.kt b/core/src/main/kotlin/pages/PageContentBuilder.kt index bc01b03e..ed0a0fea 100644 --- a/core/src/main/kotlin/pages/PageContentBuilder.kt +++ b/core/src/main/kotlin/pages/PageContentBuilder.kt @@ -17,7 +17,7 @@ open class DefaultPageContentBuilder( private val styles: Set