aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/plugin-base/src
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2023-11-22 18:39:22 +0100
committerGitHub <noreply@github.com>2023-11-22 18:39:22 +0100
commite63dad0875c8da8c2c04ac8a4285ad2507e74257 (patch)
treee70a6dac67794f5133f99a0c2a7e1530f2001697 /dokka-subprojects/plugin-base/src
parent610b5520b02ce8275462793e176406d1fb37861c (diff)
downloaddokka-e63dad0875c8da8c2c04ac8a4285ad2507e74257.tar.gz
dokka-e63dad0875c8da8c2c04ac8a4285ad2507e74257.tar.bz2
dokka-e63dad0875c8da8c2c04ac8a4285ad2507e74257.zip
Stabilize ExternalDocumentableProvider (#3312)
Diffstat (limited to 'dokka-subprojects/plugin-base/src')
-rw-r--r--dokka-subprojects/plugin-base/src/test/kotlin/translators/ExternalDocumentablesTest.kt144
1 files changed, 0 insertions, 144 deletions
diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/translators/ExternalDocumentablesTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/translators/ExternalDocumentablesTest.kt
deleted file mode 100644
index 1879c538..00000000
--- a/dokka-subprojects/plugin-base/src/test/kotlin/translators/ExternalDocumentablesTest.kt
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package translators
-
-import org.jetbrains.dokka.analysis.kotlin.internal.ExternalDocumentablesProvider
-import org.jetbrains.dokka.analysis.kotlin.internal.InternalKotlinAnalysisPlugin
-import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
-import org.jetbrains.dokka.model.DClass
-import org.jetbrains.dokka.model.DInterface
-import org.jetbrains.dokka.plugability.plugin
-import org.jetbrains.dokka.plugability.querySingle
-import org.jetbrains.dokka.utilities.cast
-import kotlin.test.Test
-import kotlin.test.assertEquals
-
-class ExternalDocumentablesTest : BaseAbstractTest() {
- @Test
- fun `external documentable from java stdlib`() {
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src")
- analysisPlatform = "jvm"
- classpath += jvmStdlibPath!!
- }
- }
- }
-
- testInline(
- """
- /src/com/sample/MyList.kt
- package com.sample
- class MyList: ArrayList<Int>()
- """.trimIndent(),
- configuration
- ) {
- lateinit var provider: ExternalDocumentablesProvider
- pluginsSetupStage = {
- provider = it.plugin<InternalKotlinAnalysisPlugin>().querySingle { externalDocumentablesProvider }
- }
- documentablesTransformationStage = { mod ->
- val entry = mod.packages.single().classlikes.single().cast<DClass>().supertypes.entries.single()
- val res = provider.findClasslike(
- entry.value.single().typeConstructor.dri,
- entry.key)
- assertEquals("ArrayList", res?.name)
- assertEquals("java.util/ArrayList///PointingToDeclaration/", res?.dri?.toString())
-
- val supertypes = res?.cast<DClass>()?.supertypes?.values?.single()
- ?.map { it.typeConstructor.dri.classNames }
- assertEquals(
- listOf("AbstractList", "RandomAccess", "Cloneable", "Serializable", "MutableList"),
- supertypes
- )
- }
- }
- }
-
- @Test
- fun `external documentable from dependency`() {
- val coroutinesPath =
- ClassLoader.getSystemResource("kotlinx/coroutines/Job.class")
- ?.file
- ?.replace("file:", "")
- ?.replaceAfter(".jar", "")
-
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src")
- analysisPlatform = "jvm"
- classpath += listOf(jvmStdlibPath!!, coroutinesPath!!)
- }
- }
- }
-
- testInline(
- """
- /src/com/sample/MyJob.kt
- package com.sample
- import kotlinx.coroutines.Job
- abstract class MyJob: Job
- """.trimIndent(),
- configuration
- ) {
- lateinit var provider: ExternalDocumentablesProvider
- pluginsSetupStage = {
- provider = it.plugin<InternalKotlinAnalysisPlugin>().querySingle { externalDocumentablesProvider }
- }
- documentablesTransformationStage = { mod ->
- val entry = mod.packages.single().classlikes.single().cast<DClass>().supertypes.entries.single()
- val res = provider.findClasslike(
- entry.value.single().typeConstructor.dri,
- entry.key)
- assertEquals("Job", res?.name)
- assertEquals("kotlinx.coroutines/Job///PointingToDeclaration/", res?.dri?.toString())
-
- val supertypes = res?.cast<DInterface>()?.supertypes?.values?.single()
- ?.map { it.typeConstructor.dri.classNames }
- assertEquals(
- listOf("CoroutineContext.Element"),
- supertypes
- )
- }
- }
- }
-
- @Test
- fun `external documentable for nested class`() {
- val configuration = dokkaConfiguration {
- sourceSets {
- sourceSet {
- sourceRoots = listOf("src")
- analysisPlatform = "jvm"
- classpath += jvmStdlibPath!!
- }
- }
- }
-
- testInline(
- """
- /src/com/sample/MyList.kt
- package com.sample
- abstract class MyEntry: Map.Entry<Int, String>
- """.trimIndent(),
- configuration
- ) {
- lateinit var provider: ExternalDocumentablesProvider
- pluginsSetupStage = {
- provider = it.plugin<InternalKotlinAnalysisPlugin>().querySingle { externalDocumentablesProvider }
- }
- documentablesTransformationStage = { mod ->
- val entry = mod.packages.single().classlikes.single().cast<DClass>().supertypes.entries.single()
- val res = provider.findClasslike(
- entry.value.single().typeConstructor.dri,
- entry.key)
- assertEquals("Entry", res?.name)
- assertEquals("kotlin.collections/Map.Entry///PointingToDeclaration/", res?.dri?.toString())
- }
- }
- }
-}