blob: c3fe2ea95c2d582f11a2500c6336259edf3e6e03 [file] [log] [blame]
package org.jetbrains.dokka.gradle
import org.gradle.testkit.runner.TaskOutcome
import kotlin.test.assertEquals
abstract class AbstractAndroidAppTest(val testDataRootPath: String) : AbstractDokkaAndroidGradleTest() {
fun prepareTestData() {
val testDataRoot = testDataFolder.resolve(testDataRootPath)
val tmpRoot = testProjectDir.root.toPath()
testDataRoot.resolve("app").copy(tmpRoot.resolve("app"))
testDataRoot.resolve("build.gradle").copy(tmpRoot.resolve("build.gradle"))
testDataRoot.resolve("settings.gradle").copy(tmpRoot.resolve("settings.gradle"))
androidLocalProperties?.copy(tmpRoot.resolve("local.properties"))
}
data class AndroidPluginParams(val pluginVersion: String, val buildToolsVersion: String, val compileSdk: Int) {
fun asArguments(): List<String> = listOf(
"-Pabt_plugin_version=$pluginVersion",
"-Pabt_version=$buildToolsVersion",
"-Psdk_version=$compileSdk"
)
}
protected fun doTest(gradleVersion: String, kotlinVersion: String, androidPluginParams: AndroidPluginParams) {
prepareTestData()
val result = configure(gradleVersion, kotlinVersion,
arguments = arrayOf("dokka", "--stacktrace") + androidPluginParams.asArguments())
.build()
println(result.output)
assertEquals(TaskOutcome.SUCCESS, result.task(":app:dokka")?.outcome)
val docsOutput = "app/build/dokka"
checkOutputStructure("$testDataRootPath/fileTree.txt", docsOutput)
checkNoErrorClasses(docsOutput)
checkNoUnresolvedLinks(docsOutput)
checkExternalLink(docsOutput, "<span class=\"identifier\">Activity</span>",
"""<a href="https://developer.android.com/reference/android/app/Activity.html"><span class="identifier">Activity</span></a>""")
}
}