• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.jetbrains.dokka.gradle
2 
3 import org.gradle.testkit.runner.TaskOutcome
4 import kotlin.test.assertEquals
5 
6 abstract class AbstractAndroidAppTest(val testDataRootPath: String) : AbstractDokkaAndroidGradleTest() {
7 
prepareTestDatanull8     fun prepareTestData() {
9         val testDataRoot = testDataFolder.resolve(testDataRootPath)
10         val tmpRoot = testProjectDir.root.toPath()
11 
12         testDataRoot.resolve("app").copy(tmpRoot.resolve("app"))
13         testDataRoot.resolve("build.gradle").copy(tmpRoot.resolve("build.gradle"))
14         testDataRoot.resolve("settings.gradle").copy(tmpRoot.resolve("settings.gradle"))
15 
16         androidLocalProperties?.copy(tmpRoot.resolve("local.properties"))
17     }
18 
19 
20     data class AndroidPluginParams(val pluginVersion: String, val buildToolsVersion: String, val compileSdk: Int) {
asArgumentsnull21         fun asArguments(): List<String> = listOf(
22                 "-Pabt_plugin_version=$pluginVersion",
23                 "-Pabt_version=$buildToolsVersion",
24                 "-Psdk_version=$compileSdk"
25         )
26     }
27 
28 
29     protected fun doTest(gradleVersion: String, kotlinVersion: String, androidPluginParams: AndroidPluginParams) {
30         prepareTestData()
31 
32         val result = configure(gradleVersion, kotlinVersion,
33                 arguments = arrayOf("dokka", "--stacktrace") + androidPluginParams.asArguments())
34                 .build()
35 
36         println(result.output)
37 
38         assertEquals(TaskOutcome.SUCCESS, result.task(":app:dokka")?.outcome)
39 
40         val docsOutput = "app/build/dokka"
41 
42         checkOutputStructure("$testDataRootPath/fileTree.txt", docsOutput)
43 
44         checkNoErrorClasses(docsOutput)
45         checkNoUnresolvedLinks(docsOutput)
46 
47         checkExternalLink(docsOutput, "<span class=\"identifier\">Activity</span>",
48                 """<a href="https://developer.android.com/reference/android/app/Activity.html"><span class="identifier">Activity</span></a>""")
49     }
50 
51 }