diff options
Diffstat (limited to 'plugins/base/src/test/kotlin/markdown/LinkTest.kt')
-rw-r--r-- | plugins/base/src/test/kotlin/markdown/LinkTest.kt | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/plugins/base/src/test/kotlin/markdown/LinkTest.kt b/plugins/base/src/test/kotlin/markdown/LinkTest.kt deleted file mode 100644 index f783892f..00000000 --- a/plugins/base/src/test/kotlin/markdown/LinkTest.kt +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package markdown - -import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest -import org.jetbrains.dokka.links.* -import org.jetbrains.dokka.model.WithGenerics -import org.jetbrains.dokka.model.dfs -import org.jetbrains.dokka.model.doc.* -import org.jetbrains.dokka.pages.ClasslikePageNode -import org.jetbrains.dokka.pages.ContentDRILink -import org.jetbrains.dokka.pages.MemberPageNode -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertNotNull - -class LinkTest : BaseAbstractTest() { - - @Test - fun linkToClassLoader() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/main/kotlin/parser") - } - } - } - testInline( - """ - |/src/main/kotlin/parser/Test.kt - |package parser - | - | /** - | * Some docs that link to [ClassLoader.clearAssertionStatus] - | */ - |fun test(x: ClassLoader) = x.clearAssertionStatus() - | - """.trimMargin(), - configuration - ) { - renderingStage = { rootPageNode, _ -> - assertNotNull((rootPageNode.children.single().children.single() as MemberPageNode) - .content - .dfs { node -> - node is ContentDRILink && - node.address.toString() == "parser//test/#java.lang.ClassLoader/PointingToDeclaration/" - } - ) - } - } - } - - @Test - fun returnTypeShouldHaveLinkToOuterClassFromInner() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/main/kotlin") - displayName = "JVM" - } - } - } - //This does not contain a package to check for situation when the package has to be artificially generated - testInline( - """ - |/src/main/kotlin/parser/Test.kt - | - |class Outer<OUTER> { - | inner class Inner<INNER> { - | fun foo(): OUTER = TODO() - | } - |} - """.trimMargin(), - configuration - ) { - renderingStage = { rootPageNode, _ -> - val root = rootPageNode.children.single().children.single() as ClasslikePageNode - val innerClass = root.children.first { it is ClasslikePageNode } - val foo = innerClass.children.first { it.name == "foo" } as MemberPageNode - val destinationDri = (root.documentables.firstOrNull() as WithGenerics).generics.first().dri.toString() - - assertEquals(destinationDri, "/Outer///PointingToGenericParameters(0)/") - assertNotNull(foo.content.dfs { it is ContentDRILink && it.address.toString() == destinationDri }) - } - } - } - - @Test - fun `link to parameter #238`() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/") - } - } - } - - testInline( - """ - |/src/main/kotlin/Test.kt - |package example - | - |/** - |* Link to [waitAMinute] - |*/ - |fun stop(hammerTime: String, waitAMinute: String) {} - | - """.trimMargin(), - configuration - ) { - documentablesMergingStage = { module -> - val parameter = module.dfs { it.name == "waitAMinute" } - val link = module.dfs { it.name == "stop" }!!.documentation.values.single() - .dfs { it is DocumentationLink } as DocumentationLink - - assertEquals(parameter!!.dri, link.dri) - } - } - } - - @Test - fun `link with exclamation mark`() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/") - } - } - } - - testInline( - """ - |/src/main/kotlin/Test.kt - |package example - | - |/** - |* Link to ![waitAMinute] - |*/ - |fun stop(hammerTime: String, waitAMinute: String) {} - | - """.trimMargin(), - configuration - ) { - documentablesMergingStage = { module -> - val functionDocs = module.packages.flatMap { it.functions }.first().documentation.values.first() - val expected = Description( - root = CustomDocTag( - children = listOf( - P( - children = listOf( - Text("Link to !"), - DocumentationLink( - dri = DRI( - packageName = "example", - callable = Callable( - "stop", - receiver = null, - params = listOf( - TypeConstructor("kotlin.String", emptyList()), - TypeConstructor("kotlin.String", emptyList()) - ) - ), - target = PointingToCallableParameters(1) - ), - children = listOf( - Text("waitAMinute") - ), - params = mapOf("href" to "[waitAMinute]") - ) - ) - ) - ), - name = "MARKDOWN_FILE" - ) - ) - - assertEquals(expected, functionDocs.children.first()) - } - } - } - - @Test - fun `link to property with exclamation mark`() { - val configuration = dokkaConfiguration { - sourceSets { - sourceSet { - sourceRoots = listOf("src/") - } - } - } - - testInline( - """ - |/src/main/kotlin/Testing.kt - |package example - | - |/** - |* Link to ![Testing.property] - |*/ - |class Testing { - | var property = "" - |} - | - """.trimMargin(), - configuration - ) { - documentablesMergingStage = { module -> - val functionDocs = module.packages.flatMap { it.classlikes }.first().documentation.values.first() - val expected = Description( - root = CustomDocTag( - children = listOf( - P( - children = listOf( - Text("Link to !"), - DocumentationLink( - dri = DRI( - packageName = "example", - classNames = "Testing", - callable = Callable("property", null, emptyList()), - target = PointingToDeclaration - ), - children = listOf( - Text("Testing.property") - ), - params = mapOf("href" to "[Testing.property]") - ) - ) - ) - ), - name = "MARKDOWN_FILE" - ) - ) - - assertEquals(expected, functionDocs.children.first()) - } - } - } -} |