aboutsummaryrefslogtreecommitdiff
path: root/core/src/test/kotlin/format
diff options
context:
space:
mode:
authorAurimas Liutikas <aurimas@google.com>2020-01-30 16:28:04 -0800
committerAurimas Liutikas <aurimas@google.com>2020-01-31 14:56:19 -0800
commit131dc7a2716ab5de6e9211cf51d2e2530d9307d8 (patch)
treed91fe489749a38792957db344d64720c1e214741 /core/src/test/kotlin/format
parentec981fdf9c47b286fa146de9fc61c08a2def6ee4 (diff)
downloaddokka-131dc7a2716ab5de6e9211cf51d2e2530d9307d8.tar.gz
Rewrite how DAC tests are structured.
Update the test structure to allow to pass in multiple input files for a single test. Test: existing tests still pass Change-Id: I3944eae55bd8fc71528c91d9c3c6d37f90531729
Diffstat (limited to 'core/src/test/kotlin/format')
-rw-r--r--core/src/test/kotlin/format/DacAsJavaFormatTest.kt37
-rw-r--r--core/src/test/kotlin/format/DacFormatTest.kt17
-rw-r--r--core/src/test/kotlin/format/DacFormatTestCase.kt49
3 files changed, 43 insertions, 60 deletions
diff --git a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
index 7c625c9b2..b0d9b2dbd 100644
--- a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
+++ b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
@@ -1,38 +1,33 @@
package org.jetbrains.dokka.tests.format
-import com.google.inject.Guice.createInjector
-import com.google.inject.Injector
-import com.google.inject.Module
-import com.google.inject.name.Names
-import org.jetbrains.dokka.*
import org.jetbrains.dokka.Formats.DacAsJavaFormatDescriptor
-import org.jetbrains.dokka.Formats.DacFormatDescriptor
-import org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatGenerator
-import org.jetbrains.dokka.Utilities.bind
-import org.jetbrains.dokka.tests.verifyJavaOutput
-import org.junit.Rule
import org.junit.Test
-import org.junit.rules.TemporaryFolder
-import java.io.File
-import java.net.URI
class DacAsJavaFormatTest: DacFormatTestCase() {
override val formatDescriptor = DacAsJavaFormatDescriptor()
override val dokkaFormat = "dac-as-java"
- @Test fun javaSeeTag() {
- verifyJavaHtmlNode("javaSeeTag")
+ @Test
+ fun javaSeeTag() {
+ verifyDirectory("javaSeeTag")
}
- @Test fun javaConstructor() {
- verifyJavaHtmlNode("javaConstructor")
+ @Test
+ fun javaConstructor() {
+ verifyDirectory("javaConstructor")
}
- @Test fun javaDefaultConstructor() {
- verifyJavaHtmlNode("javaDefaultConstructor")
+ @Test
+ fun javaDefaultConstructor() {
+ verifyDirectory("javaDefaultConstructor")
+ }
+
+ @Test
+ fun javaInheritedMethods() {
+ verifyDirectory("inheritedMethods")
}
@Test fun javaMethodVisibilities() {
- verifyJavaHtmlNode("javaMethodVisibilities")
+ verifyDirectory("javaMethodVisibilities")
}
-} \ No newline at end of file
+}
diff --git a/core/src/test/kotlin/format/DacFormatTest.kt b/core/src/test/kotlin/format/DacFormatTest.kt
index 9a6e75ee4..e84f11f68 100644
--- a/core/src/test/kotlin/format/DacFormatTest.kt
+++ b/core/src/test/kotlin/format/DacFormatTest.kt
@@ -1,30 +1,17 @@
package org.jetbrains.dokka.tests.format
-import com.google.inject.Guice.createInjector
-import com.google.inject.Injector
-import com.google.inject.Module
-import com.google.inject.name.Names
-import org.jetbrains.dokka.*
-import org.jetbrains.dokka.Formats.DacAsJavaFormatDescriptor
import org.jetbrains.dokka.Formats.DacFormatDescriptor
-import org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatGenerator
-import org.jetbrains.dokka.Utilities.bind
-import org.jetbrains.dokka.tests.verifyJavaOutput
-import org.junit.Rule
import org.junit.Test
-import org.junit.rules.TemporaryFolder
-import java.io.File
-import java.net.URI
class DacFormatTest: DacFormatTestCase() {
override val formatDescriptor = DacFormatDescriptor()
override val dokkaFormat = "dac"
@Test fun javaSeeTag() {
- verifyJavaHtmlNode("javaSeeTag")
+ verifyDirectory("javaSeeTag")
}
@Test fun javaConstructor() {
- verifyJavaHtmlNode("javaConstructor")
+ verifyDirectory("javaConstructor")
}
} \ No newline at end of file
diff --git a/core/src/test/kotlin/format/DacFormatTestCase.kt b/core/src/test/kotlin/format/DacFormatTestCase.kt
index 23c01c75d..221bee2ff 100644
--- a/core/src/test/kotlin/format/DacFormatTestCase.kt
+++ b/core/src/test/kotlin/format/DacFormatTestCase.kt
@@ -4,11 +4,15 @@ import com.google.inject.Guice
import com.google.inject.Injector
import com.google.inject.Module
import com.google.inject.name.Names
-import org.jetbrains.dokka.*
+import org.jetbrains.dokka.DocumentationOptions
+import org.jetbrains.dokka.DokkaLogger
import org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatDescriptorBase
import org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatGenerator
+import org.jetbrains.dokka.Generator
import org.jetbrains.dokka.Utilities.bind
-import org.jetbrains.dokka.tests.verifyJavaOutput
+import org.jetbrains.dokka.tests.assertEqualsIgnoringSeparators
+import org.jetbrains.dokka.tests.verifyModel
+import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot
import org.junit.Rule
import org.junit.rules.TemporaryFolder
import java.io.File
@@ -62,28 +66,25 @@ abstract class DacFormatTestCase {
})
}
- protected fun verifyJavaHtmlNode(fileName: String, withKotlinRuntime: Boolean = false) {
- verifyJavaHtmlNodes(fileName, withKotlinRuntime) { model -> model.members.single().members }
- }
-
- private fun verifyJavaHtmlNodes(fileName: String,
- withKotlinRuntime: Boolean = false,
- format: String = dokkaFormat,
- nodeFilter: (DocumentationModule) -> List<DocumentationNode>
- ) {
- verifyJavaOutput("testdata/format/$dokkaFormat/$fileName.java",".html", format = format, withKotlinRuntime = withKotlinRuntime) { model, output ->
- buildPagesAndReadInto(model, nodeFilter(model), output)
- }
- }
-
- protected fun buildPagesAndReadInto(model: DocumentationNode, nodes: List<DocumentationNode>, sb: StringBuilder) =
- with(injector.getInstance(Generator::class.java)) {
- this as JavaLayoutHtmlFormatGenerator
- buildPages(listOf(model))
- val byLocations = nodes.groupBy { mainUri(it) }
- val tmpFolder = folder.root.toURI().resolve(model.name+"/")
- byLocations.forEach { (loc, _) ->
- sb.append(tmpFolder.resolve(URI("/").relativize(loc)).toURL().readText())
+ protected fun verifyDirectory(directory: String) {
+ val directoryFile = File("testdata/format/$dokkaFormat/$directory")
+ verifyModel(
+ JavaSourceRoot(directoryFile, null),
+ format = dokkaFormat
+ ) { documentationModule ->
+ val nodes = documentationModule.members.single().members
+ with(injector.getInstance(Generator::class.java)) {
+ this as JavaLayoutHtmlFormatGenerator
+ buildPages(listOf(documentationModule))
+ val byLocations = nodes.groupBy { mainUri(it) }
+ val tmpFolder = folder.root.toURI().resolve("${documentationModule.name}/")
+ byLocations.forEach { (loc, node) ->
+ val output = StringBuilder()
+ output.append(tmpFolder.resolve(URI("/").relativize(loc)).toURL().readText())
+ val expectedFile = File(directoryFile, "${node.first().name}.html")
+ assertEqualsIgnoringSeparators(expectedFile, output.toString())
+ }
}
}
+ }
} \ No newline at end of file