diff options
author | Paweł Marks <pmarks@virtuslab.com> | 2020-07-17 16:36:09 +0200 |
---|---|---|
committer | Paweł Marks <pmarks@virtuslab.com> | 2020-07-17 16:36:09 +0200 |
commit | 6996b1135f61c7d2cb60b0652c6a2691dda31990 (patch) | |
tree | d568096c25e31c28d14d518a63458b5a7526b896 /plugins/base/test-utils | |
parent | de56cab76f556e5b4af0b8c8cb08d8b482b86d0a (diff) | |
parent | 1c3530dcbb50c347f80bef694829dbefe89eca77 (diff) | |
download | dokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.tar.gz dokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.tar.bz2 dokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.zip |
Merge branch 'dev-0.11.0'
Diffstat (limited to 'plugins/base/test-utils')
5 files changed, 127 insertions, 0 deletions
diff --git a/plugins/base/test-utils/build.gradle.kts b/plugins/base/test-utils/build.gradle.kts new file mode 100644 index 00000000..4c39ed60 --- /dev/null +++ b/plugins/base/test-utils/build.gradle.kts @@ -0,0 +1,4 @@ +dependencies { + compileOnly(project(":plugins:base")) + implementation(project(":testApi")) +}
\ No newline at end of file diff --git a/plugins/base/test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt b/plugins/base/test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt new file mode 100644 index 00000000..e5ff8fa8 --- /dev/null +++ b/plugins/base/test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt @@ -0,0 +1,8 @@ +package renderers + +import org.jetbrains.dokka.testApi.context.MockContext + +abstract class RenderingOnlyTestBase<T> { + abstract val context: MockContext + abstract val renderedContent: T +} diff --git a/plugins/base/test-utils/src/main/kotlin/renderers/TestPage.kt b/plugins/base/test-utils/src/main/kotlin/renderers/TestPage.kt new file mode 100644 index 00000000..0dae8ce6 --- /dev/null +++ b/plugins/base/test-utils/src/main/kotlin/renderers/TestPage.kt @@ -0,0 +1,52 @@ +package renderers + +import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.links.DRI +import org.jetbrains.dokka.model.Documentable +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.base.translators.documentables.PageContentBuilder +import org.jetbrains.dokka.base.signatures.KotlinSignatureProvider +import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter + +class TestPage(callback: PageContentBuilder.DocumentableContentBuilder.() -> Unit) : RootPageNode(), ContentPage { + override val dri: Set<DRI> = setOf(DRI.topLevel) + override val documentable: Documentable? = null + override val embeddedResources: List<String> = emptyList() + override val name: String + get() = "testPage" + override val children: List<PageNode> + get() = emptyList() + + override val content: ContentNode = PageContentBuilder( + EmptyCommentConverter, + KotlinSignatureProvider(EmptyCommentConverter, DokkaConsoleLogger), + DokkaConsoleLogger + ).contentFor( + DRI.topLevel, + emptySet(), + block = callback + ) + + override fun modified( + name: String, + content: ContentNode, + dri: Set<DRI>, + embeddedResources: List<String>, + children: List<PageNode> + ) = this + + override fun modified(name: String, children: List<PageNode>) = this +} + +internal object EmptyCommentConverter : CommentsToContentConverter { + override fun buildContent( + docTag: DocTag, + dci: DCI, + sourceSets: Set<DokkaConfiguration.DokkaSourceSet>, + styles: Set<Style>, + extras: PropertyContainer<ContentNode> + ): List<ContentNode> = emptyList() +}
\ No newline at end of file diff --git a/plugins/base/test-utils/src/main/kotlin/renderers/defaultSourceSet.kt b/plugins/base/test-utils/src/main/kotlin/renderers/defaultSourceSet.kt new file mode 100644 index 00000000..7358d2c2 --- /dev/null +++ b/plugins/base/test-utils/src/main/kotlin/renderers/defaultSourceSet.kt @@ -0,0 +1,31 @@ +package renderers + +import org.jetbrains.dokka.DokkaSourceSetID +import org.jetbrains.dokka.DokkaSourceSetImpl +import org.jetbrains.dokka.Platform + +val defaultSourceSet = DokkaSourceSetImpl( + moduleDisplayName = "DEFAULT", + displayName = "DEFAULT", + sourceSetID = DokkaSourceSetID("DEFAULT", "DEFAULT"), + classpath = emptyList(), + sourceRoots = emptyList(), + dependentSourceSets = emptySet(), + samples = emptyList(), + includes = emptyList(), + includeNonPublic = false, + includeRootPackage = false, + reportUndocumented = false, + skipEmptyPackages = true, + skipDeprecated = false, + jdkVersion = 8, + sourceLinks = emptyList(), + perPackageOptions = emptyList(), + externalDocumentationLinks = emptyList(), + languageVersion = null, + apiVersion = null, + noStdlibLink = false, + noJdkLink = false, + suppressedFiles = emptyList(), + analysisPlatform = Platform.DEFAULT +) diff --git a/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt b/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt new file mode 100644 index 00000000..00b865b4 --- /dev/null +++ b/plugins/base/test-utils/src/main/kotlin/utils/TestOutputWriter.kt @@ -0,0 +1,32 @@ +package utils + +import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.base.renderers.OutputWriter +import org.jetbrains.dokka.plugability.DokkaPlugin + +class TestOutputWriterPlugin(failOnOverwrite: Boolean = true) : DokkaPlugin() { + val writer = TestOutputWriter(failOnOverwrite) + + private val dokkaBase by lazy { plugin<DokkaBase>() } + + val testWriter by extending { + (dokkaBase.outputWriter + with writer + override dokkaBase.fileWriter) + } +} + +class TestOutputWriter(private val failOnOverwrite: Boolean = true) : OutputWriter { + val contents: Map<String, String> get() = _contents + + private val _contents = mutableMapOf<String, String>() + override suspend fun write(path: String, text: String, ext: String) { + val fullPath = "$path$ext" + _contents.putIfAbsent(fullPath, text)?.also { + if (failOnOverwrite) throw AssertionError("File $fullPath is being overwritten.") + } + } + + override suspend fun writeResources(pathFrom: String, pathTo: String) = + write(pathTo, "*** content of $pathFrom ***", "") +} |