-
Notifications
You must be signed in to change notification settings - Fork 391
/
MultiModule0IntegrationTest.kt
89 lines (75 loc) · 3.7 KB
/
MultiModule0IntegrationTest.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package org.jetbrains.dokka.it.gradle
import org.gradle.testkit.runner.TaskOutcome
import org.junit.runners.Parameterized
import java.io.File
import kotlin.test.*
class MultiModule0IntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest() {
companion object {
@get:JvmStatic
@get:Parameterized.Parameters(name = "{0}")
val versions = BuildVersions.permutations(
gradleVersions = listOf("7.3", "7.2", "7.0", "6.6", "6.1.1"),
kotlinVersions = listOf("1.6.10", "1.6.0", "1.5.31", "1.5.0", "1.4.0")
)
}
@BeforeTest
fun prepareProjectFiles() {
val templateProjectDir = File("projects", "it-multimodule-0")
templateProjectDir.listFiles().orEmpty()
.filter { it.isFile }
.forEach { topLevelFile -> topLevelFile.copyTo(File(projectDir, topLevelFile.name)) }
File(templateProjectDir, "moduleA").copyRecursively(File(projectDir, "moduleA"))
}
@Test
fun execute() {
val result = createGradleRunner(
":moduleA:dokkaHtmlMultiModule",
":moduleA:dokkaGfmMultiModule",
":moduleA:dokkaJekyllMultiModule",
"-i", "-s"
).buildRelaxed()
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:dokkaHtmlMultiModule")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:dokkaGfmMultiModule")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:dokkaJekyllMultiModule")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleB:dokkaHtmlPartial")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleC:dokkaHtmlPartial")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleB:dokkaGfmPartial")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleC:dokkaGfmPartial")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleB:dokkaJekyllPartial")).outcome)
assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":moduleA:moduleC:dokkaJekyllPartial")).outcome)
val outputDir = File(projectDir, "moduleA/build/dokka/htmlMultiModule")
assertTrue(outputDir.isDirectory, "Missing dokka output directory")
assertTrue(
outputDir.allHtmlFiles().any(),
"Expected at least one html file being generated"
)
outputDir.allHtmlFiles().forEach { file ->
assertContainsNoErrorClass(file)
assertNoUnresolvedLinks(file)
assertNoHrefToMissingLocalFileOrDirectory(file)
assertNoEmptyLinks(file)
assertNoEmptySpans(file)
assertNoUnsubstitutedTemplatesInHtml(file)
}
val modulesFile = File(outputDir, "index.html")
assertTrue(modulesFile.isFile, "Missing index.html file")
val modulesFileText = modulesFile.readText()
assertTrue(
"moduleB" in modulesFileText,
"Expected moduleB being mentioned in -modules.html"
)
assertTrue(
"moduleC" in modulesFileText,
"Expected moduleC being mentioned in -modules.html"
)
val gfmOutputDir = File(projectDir, "moduleA/build/dokka/gfmMultiModule")
assertTrue(gfmOutputDir.isDirectory, "Missing dokka GFM output directory")
assertTrue(
gfmOutputDir.allGfmFiles().any(),
"Expected at least one md file being generated"
)
gfmOutputDir.allGfmFiles().forEach { file ->
assertFalse("GfmCommand" in file.readText())
}
}
}