aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/base-test-utils
diff options
context:
space:
mode:
authorsebastian.sellmair <sebastian.sellmair@jetbrains.com>2020-08-24 14:02:07 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-08-25 16:21:32 +0200
commit7196323582dce7ca3f9b07262a1f94ecd8514539 (patch)
tree0c326aee84d4727d5cd5bc5c8198b992d5b58de6 /plugins/base/base-test-utils
parent219e2c98f5d03fc8581fd6ce9dd870919523be44 (diff)
downloaddokka-7196323582dce7ca3f9b07262a1f94ecd8514539.tar.gz
dokka-7196323582dce7ca3f9b07262a1f94ecd8514539.tar.bz2
dokka-7196323582dce7ca3f9b07262a1f94ecd8514539.zip
- Move `test` projects into semantic parent projects
- Implement new `:test-utils` project - Resolve requirement for Android SDK installation
Diffstat (limited to 'plugins/base/base-test-utils')
-rw-r--r--plugins/base/base-test-utils/build.gradle.kts4
-rw-r--r--plugins/base/base-test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt8
-rw-r--r--plugins/base/base-test-utils/src/main/kotlin/renderers/TestPage.kt52
-rw-r--r--plugins/base/base-test-utils/src/main/kotlin/renderers/defaultSourceSet.kt30
-rw-r--r--plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt32
5 files changed, 126 insertions, 0 deletions
diff --git a/plugins/base/base-test-utils/build.gradle.kts b/plugins/base/base-test-utils/build.gradle.kts
new file mode 100644
index 00000000..a4a4df69
--- /dev/null
+++ b/plugins/base/base-test-utils/build.gradle.kts
@@ -0,0 +1,4 @@
+dependencies {
+ compileOnly(project(":plugins:base"))
+ implementation(project(":core:test-api"))
+}
diff --git a/plugins/base/base-test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt b/plugins/base/base-test-utils/src/main/kotlin/renderers/RenderingOnlyTestBase.kt
new file mode 100644
index 00000000..e5ff8fa8
--- /dev/null
+++ b/plugins/base/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/base-test-utils/src/main/kotlin/renderers/TestPage.kt b/plugins/base/base-test-utils/src/main/kotlin/renderers/TestPage.kt
new file mode 100644
index 00000000..0dae8ce6
--- /dev/null
+++ b/plugins/base/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/base-test-utils/src/main/kotlin/renderers/defaultSourceSet.kt b/plugins/base/base-test-utils/src/main/kotlin/renderers/defaultSourceSet.kt
new file mode 100644
index 00000000..a7a20f88
--- /dev/null
+++ b/plugins/base/base-test-utils/src/main/kotlin/renderers/defaultSourceSet.kt
@@ -0,0 +1,30 @@
+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 = emptySet(),
+ dependentSourceSets = emptySet(),
+ samples = emptySet(),
+ includes = emptySet(),
+ includeNonPublic = false,
+ reportUndocumented = false,
+ skipEmptyPackages = true,
+ skipDeprecated = false,
+ jdkVersion = 8,
+ sourceLinks = emptySet(),
+ perPackageOptions = emptyList(),
+ externalDocumentationLinks = emptySet(),
+ languageVersion = null,
+ apiVersion = null,
+ noStdlibLink = false,
+ noJdkLink = false,
+ suppressedFiles = emptySet(),
+ analysisPlatform = Platform.DEFAULT
+)
diff --git a/plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt b/plugins/base/base-test-utils/src/main/kotlin/utils/TestOutputWriter.kt
new file mode 100644
index 00000000..00b865b4
--- /dev/null
+++ b/plugins/base/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 ***", "")
+}