aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2023-11-10 11:46:54 +0100
committerGitHub <noreply@github.com>2023-11-10 11:46:54 +0100
commit8e5c63d035ef44a269b8c43430f43f5c8eebfb63 (patch)
tree1b915207b2b9f61951ddbf0ff2e687efd053d555 /dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt
parenta44efd4ba0c2e4ab921ff75e0f53fc9335aa79db (diff)
downloaddokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.gz
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.bz2
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.zip
Restructure the project to utilize included builds (#3174)
* Refactor and simplify artifact publishing * Update Gradle to 8.4 * Refactor and simplify convention plugins and build scripts Fixes #3132 --------- Co-authored-by: Adam <897017+aSemy@users.noreply.github.com> Co-authored-by: Oleg Yukhnevich <whyoleg@gmail.com>
Diffstat (limited to 'dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt')
-rw-r--r--dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt83
1 files changed, 83 insertions, 0 deletions
diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt
new file mode 100644
index 00000000..a7fb2bde
--- /dev/null
+++ b/dokka-subprojects/plugin-base/src/test/kotlin/content/HighlightingTest.kt
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package content
+
+import org.jetbrains.dokka.base.testApi.testRunner.BaseAbstractTest
+import org.jetbrains.dokka.model.dfs
+import org.jetbrains.dokka.pages.*
+import kotlin.test.Test
+import kotlin.test.assertTrue
+
+class HighlightingTest : BaseAbstractTest() {
+ private val configuration = dokkaConfiguration {
+ sourceSets {
+ sourceSet {
+ sourceRoots = listOf("src/")
+ classpath = listOf(commonStdlibPath!!, jvmStdlibPath!!)
+ externalDocumentationLinks = listOf(stdlibExternalDocumentationLink)
+ }
+ }
+ }
+
+ @Test
+ fun `open suspend fun`() {
+ testInline(
+ """
+ |/src/main/kotlin/test/Test.kt
+ |package example
+ |
+ | open suspend fun simpleFun(): String = "Celebrimbor"
+ """,
+ configuration
+ ) {
+ pagesTransformationStage = { module ->
+ val symbol = (module.dfs { it.name == "simpleFun" } as MemberPageNode).content
+ .dfs { it is ContentGroup && it.dci.kind == ContentKind.Symbol }
+ val children = symbol?.children
+
+ for (it in listOf(
+ Pair(0, TokenStyle.Keyword), Pair(1, TokenStyle.Keyword), Pair(2, TokenStyle.Keyword),
+ Pair(4, TokenStyle.Punctuation), Pair(5, TokenStyle.Punctuation), Pair(6, TokenStyle.Operator)
+ ))
+ assertTrue(children?.get(it.first)?.style?.contains(it.second) == true)
+ assertTrue(children?.get(3)?.children?.first()?.style?.contains(TokenStyle.Function) == true)
+ }
+ }
+ }
+
+ @Test
+ fun `plain typealias of plain class with annotation`() {
+ testInline(
+ """
+ |/src/main/kotlin/common/Test.kt
+ |package example
+ |
+ |@MustBeDocumented
+ |@Target(AnnotationTarget.TYPEALIAS)
+ |annotation class SomeAnnotation
+ |
+ |@SomeAnnotation
+ |typealias PlainTypealias = Int
+ |
+ """.trimMargin(),
+ configuration
+ ) {
+ pagesTransformationStage = { module ->
+ val symbol = (module.dfs { it.name == "example" } as PackagePageNode).content
+ .dfs { it is ContentGroup && it.dci.kind == ContentKind.Symbol }
+ val children = symbol?.children
+
+ for (it in listOf(
+ Pair(1, TokenStyle.Keyword), Pair(3, TokenStyle.Operator)
+ ))
+ assertTrue(children?.get(it.first)?.style?.contains(it.second) == true)
+ val annotation = children?.first()?.children?.first()
+
+ assertTrue(annotation?.children?.get(0)?.style?.contains(TokenStyle.Annotation) == true)
+ assertTrue(annotation?.children?.get(1)?.children?.first()?.style?.contains(TokenStyle.Annotation) == true)
+ }
+ }
+ }
+}