forked from Kotlin/dokka
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SerializationGradleIntegrationTest.kt
49 lines (40 loc) · 1.77 KB
/
SerializationGradleIntegrationTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package org.jetbrains.dokka.it.gradle.kotlin
import org.gradle.testkit.runner.TaskOutcome
import org.jetbrains.dokka.it.TestOutputCopier
import org.jetbrains.dokka.it.copyAndApplyGitDiff
import org.jetbrains.dokka.it.gradle.*
import org.junit.runners.Parameterized
import java.io.File
import kotlin.test.*
class SerializationGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest(),
TestOutputCopier {
companion object {
@get:JvmStatic
@get:Parameterized.Parameters(name = "{0}")
val versions = BuildVersions.permutations(
gradleVersions = listOf("6.9.1"),
kotlinVersions = listOf("1.6.10")
)
}
override val projectOutputLocation: File by lazy { File(projectDir, "build/dokka/htmlMultiModule") }
@BeforeTest
fun prepareProjectFiles() {
val templateProjectDir = File("projects", "serialization/kotlinx-serialization")
templateProjectDir.listFiles().orEmpty()
.forEach { topLevelFile -> topLevelFile.copyRecursively(File(projectDir, topLevelFile.name)) }
copyAndApplyGitDiff(File("projects", "serialization/serialization.diff"))
}
@Test
fun execute() {
val result = createGradleRunner(":dokkaHtmlMultiModule", "-i", "-s").buildRelaxed()
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":dokkaHtmlMultiModule")).outcome)
assertTrue(projectOutputLocation.isDirectory, "Missing dokka output directory")
projectOutputLocation.allHtmlFiles().forEach { file ->
assertContainsNoErrorClass(file)
assertNoUnresolvedLinks(file)
// assertNoHrefToMissingLocalFileOrDirectory(file)
assertNoEmptyLinks(file)
assertNoEmptySpans(file)
}
}
}