From 8e5c63d035ef44a269b8c43430f43f5c8eebfb63 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Fri, 10 Nov 2023 11:46:54 +0100 Subject: 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 --- .../testApi/renderers/RenderingOnlyTestBase.kt | 12 ++ .../dokka/base/testApi/renderers/TestPage.kt | 59 ++++++++++ .../base/testApi/signatures/SignatureUtils.kt | 23 ++++ .../dokka/base/testApi/testRunner/baseTestApi.kt | 124 +++++++++++++++++++++ .../dokka/base/testApi/utils/JsoupUtils.kt | 79 +++++++++++++ .../dokka/base/testApi/utils/TestOutputWriter.kt | 47 ++++++++ .../utils/assertHtmlEqualsIgnoringWhitespace.kt | 24 ++++ 7 files changed, 368 insertions(+) create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/RenderingOnlyTestBase.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/TestPage.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/signatures/SignatureUtils.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/testRunner/baseTestApi.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/utils/JsoupUtils.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/utils/TestOutputWriter.kt create mode 100644 dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/utils/assertHtmlEqualsIgnoringWhitespace.kt (limited to 'dokka-subprojects/plugin-base-test-utils/src') diff --git a/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/RenderingOnlyTestBase.kt b/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/RenderingOnlyTestBase.kt new file mode 100644 index 00000000..d2ff3ad4 --- /dev/null +++ b/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/RenderingOnlyTestBase.kt @@ -0,0 +1,12 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package renderers + +import org.jetbrains.dokka.testApi.context.MockContext + +public abstract class RenderingOnlyTestBase { + public abstract val context: MockContext + public abstract val renderedContent: T +} diff --git a/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/TestPage.kt b/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/TestPage.kt new file mode 100644 index 00000000..6fb484bf --- /dev/null +++ b/dokka-subprojects/plugin-base-test-utils/src/main/kotlin/org/jetbrains/dokka/base/testApi/renderers/TestPage.kt @@ -0,0 +1,59 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package renderers + +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.base.signatures.KotlinSignatureProvider +import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter +import org.jetbrains.dokka.base.translators.documentables.PageContentBuilder +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.doc.DocTag +import org.jetbrains.dokka.model.properties.PropertyContainer +import org.jetbrains.dokka.pages.* +import org.jetbrains.dokka.utilities.DokkaConsoleLogger +import org.jetbrains.dokka.utilities.LoggingLevel + +public fun testPage(callback: PageContentBuilder.DocumentableContentBuilder.() -> Unit): RawTestPage { + val content = PageContentBuilder( + EmptyCommentConverter, + KotlinSignatureProvider(EmptyCommentConverter, DokkaConsoleLogger(LoggingLevel.DEBUG)), + DokkaConsoleLogger(LoggingLevel.DEBUG) + ).contentFor( + DRI.topLevel, + emptySet(), + block = callback + ) + + return RawTestPage(content) +} + +public class RawTestPage( + override val content: ContentNode, + override val name: String = "testPage", + override val dri: Set = setOf(DRI.topLevel), + override val embeddedResources: List = emptyList(), + override val children: List = emptyList(), +): RootPageNode(), ContentPage { + override fun modified( + name: String, + content: ContentNode, + dri: Set, + embeddedResources: List, + children: List + ): ContentPage = this + + override fun modified(name: String, children: List): RootPageNode = this + +} + +internal object EmptyCommentConverter : CommentsToContentConverter { + override fun buildContent( + docTag: DocTag, + dci: DCI, + sourceSets: Set, + styles: Set