aboutsummaryrefslogtreecommitdiff
path: root/core/src/test/kotlin/format
diff options
context:
space:
mode:
authorDmitry Jemerov <yole@jetbrains.com>2015-12-03 16:22:11 +0100
committerDmitry Jemerov <yole@jetbrains.com>2015-12-03 16:22:49 +0100
commit39631054c58df5841ea268b7002b820ec55f6e0a (patch)
treecefedd8411c859243bd181568e16fcdd372a38c8 /core/src/test/kotlin/format
parent797cb4732c53bf1e3b2091add8cf731fc436607f (diff)
downloaddokka-39631054c58df5841ea268b7002b820ec55f6e0a.tar.gz
dokka-39631054c58df5841ea268b7002b820ec55f6e0a.tar.bz2
dokka-39631054c58df5841ea268b7002b820ec55f6e0a.zip
restructure Dokka build to use Gradle for everything except for the Maven plugin
Diffstat (limited to 'core/src/test/kotlin/format')
-rw-r--r--core/src/test/kotlin/format/HtmlFormatTest.kt157
-rw-r--r--core/src/test/kotlin/format/MarkdownFormatTest.kt218
-rw-r--r--core/src/test/kotlin/format/PackageDocsTest.kt18
3 files changed, 393 insertions, 0 deletions
diff --git a/core/src/test/kotlin/format/HtmlFormatTest.kt b/core/src/test/kotlin/format/HtmlFormatTest.kt
new file mode 100644
index 00000000..593dbfe6
--- /dev/null
+++ b/core/src/test/kotlin/format/HtmlFormatTest.kt
@@ -0,0 +1,157 @@
+package org.jetbrains.dokka.tests
+
+import org.jetbrains.dokka.HtmlFormatService
+import org.jetbrains.dokka.HtmlTemplateService
+import org.jetbrains.dokka.KotlinLanguageService
+import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot
+import org.jetbrains.kotlin.config.KotlinSourceRoot
+import org.junit.Test
+import java.io.File
+
+public class HtmlFormatTest {
+ private val htmlService = HtmlFormatService(InMemoryLocationService, KotlinLanguageService(), HtmlTemplateService.default())
+
+ @Test fun classWithCompanionObject() {
+ verifyOutput("testdata/format/classWithCompanionObject.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun htmlEscaping() {
+ verifyOutput("testdata/format/htmlEscaping.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun overloads() {
+ verifyOutput("testdata/format/overloads.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members)
+ }
+ }
+
+ @Test fun overloadsWithDescription() {
+ verifyOutput("testdata/format/overloadsWithDescription.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun overloadsWithDifferentDescriptions() {
+ verifyOutput("testdata/format/overloadsWithDifferentDescriptions.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun deprecated() {
+ verifyOutput("testdata/format/deprecated.kt", ".package.html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members)
+ }
+ verifyOutput("testdata/format/deprecated.kt", ".class.html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun brokenLink() {
+ verifyOutput("testdata/format/brokenLink.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun codeSpan() {
+ verifyOutput("testdata/format/codeSpan.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun parenthesis() {
+ verifyOutput("testdata/format/parenthesis.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun bracket() {
+ verifyOutput("testdata/format/bracket.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun see() {
+ verifyOutput("testdata/format/see.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun tripleBackticks() {
+ verifyOutput("testdata/format/tripleBackticks.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun typeLink() {
+ verifyOutput("testdata/format/typeLink.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar"} )
+ }
+ }
+
+ @Test fun parameterAnchor() {
+ verifyOutput("testdata/format/parameterAnchor.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaSupertypeLink() {
+ verifyJavaOutput("testdata/format/javaSupertype.java", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.single { it.name == "C"}.members.filter { it.name == "Bar"} )
+ }
+ }
+
+ @Test fun javaLinkTag() {
+ verifyJavaOutput("testdata/format/javaLinkTag.java", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaLinkTagWithLabel() {
+ verifyJavaOutput("testdata/format/javaLinkTagWithLabel.java", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaSeeTag() {
+ verifyJavaOutput("testdata/format/javaSeeTag.java", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaDeprecated() {
+ verifyJavaOutput("testdata/format/javaDeprecated.java", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.single { it.name == "Foo" }.members.filter { it.name == "foo" })
+ }
+ }
+
+ @Test fun crossLanguageKotlinExtendsJava() {
+ verifyOutput(arrayOf(KotlinSourceRoot("testdata/format/crossLanguage/kotlinExtendsJava/Bar.kt"),
+ JavaSourceRoot(File("testdata/format/crossLanguage/kotlinExtendsJava"), null)),
+ ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+
+ @Test fun orderedList() {
+ verifyOutput("testdata/format/orderedList.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+
+ @Test fun linkWithLabel() {
+ verifyOutput("testdata/format/linkWithLabel.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+
+ @Test fun entity() {
+ verifyOutput("testdata/format/entity.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+}
+
diff --git a/core/src/test/kotlin/format/MarkdownFormatTest.kt b/core/src/test/kotlin/format/MarkdownFormatTest.kt
new file mode 100644
index 00000000..e2339707
--- /dev/null
+++ b/core/src/test/kotlin/format/MarkdownFormatTest.kt
@@ -0,0 +1,218 @@
+package org.jetbrains.dokka.tests
+
+import org.jetbrains.dokka.KotlinLanguageService
+import org.jetbrains.dokka.MarkdownFormatService
+import org.junit.Test
+
+public class MarkdownFormatTest {
+ private val markdownService = MarkdownFormatService(InMemoryLocationService, KotlinLanguageService())
+
+ @Test fun emptyDescription() {
+ verifyOutput("testdata/format/emptyDescription.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun classWithCompanionObject() {
+ verifyOutput("testdata/format/classWithCompanionObject.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun annotations() {
+ verifyOutput("testdata/format/annotations.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun annotationClass() {
+ verifyOutput("testdata/format/annotationClass.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun annotationParams() {
+ verifyOutput("testdata/format/annotationParams.kt", ".md", withKotlinRuntime = true) { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun extensions() {
+ verifyOutput("testdata/format/extensions.kt", ".package.md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members)
+ }
+ verifyOutput("testdata/format/extensions.kt", ".class.md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun enumClass() {
+ verifyOutput("testdata/format/enumClass.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ verifyOutput("testdata/format/enumClass.kt", ".value.md") { model, output ->
+ val enumClassNode = model.members.single().members[0]
+ markdownService.appendNodes(tempLocation, output,
+ enumClassNode.members.filter { it.name == "LOCAL_CONTINUE_AND_BREAK" })
+ }
+ }
+
+ @Test fun varargsFunction() {
+ verifyOutput("testdata/format/varargsFunction.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun overridingFunction() {
+ verifyOutput("testdata/format/overridingFunction.kt", ".md") { model, output ->
+ val classMembers = model.members.single().members.first { it.name == "D" }.members
+ markdownService.appendNodes(tempLocation, output, classMembers.filter { it.name == "f" })
+ }
+
+ }
+
+ @Test fun propertyVar() {
+ verifyOutput("testdata/format/propertyVar.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun functionWithDefaultParameter() {
+ verifyOutput("testdata/format/functionWithDefaultParameter.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun accessor() {
+ verifyOutput("testdata/format/accessor.kt", ".md") { model, output ->
+ val propertyNode = model.members.single().members.first { it.name == "C" }.members.filter { it.name == "x" }
+ markdownService.appendNodes(tempLocation, output, propertyNode)
+ }
+ }
+
+ @Test fun paramTag() {
+ verifyOutput("testdata/format/paramTag.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun throwsTag() {
+ verifyOutput("testdata/format/throwsTag.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun typeParameterBounds() {
+ verifyOutput("testdata/format/typeParameterBounds.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun typeParameterVariance() {
+ verifyOutput("testdata/format/typeParameterVariance.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun typeProjectionVariance() {
+ verifyOutput("testdata/format/typeProjectionVariance.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javadocHtml() {
+ verifyJavaOutput("testdata/format/javadocHtml.java", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaCodeLiteralTags() {
+ verifyJavaOutput("testdata/format/javaCodeLiteralTags.java", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaCodeInParam() {
+ verifyJavaOutput("testdata/format/javaCodeInParam.java", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun javaSpaceInAuthor() {
+ verifyJavaOutput("testdata/format/javaSpaceInAuthor.java", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun nullability() {
+ verifyOutput("testdata/format/nullability.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun operatorOverloading() {
+ verifyOutput("testdata/format/operatorOverloading.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members.single { it.name == "C" }.members.filter { it.name == "plus" })
+ }
+ }
+
+ @Test fun javadocOrderedList() {
+ verifyJavaOutput("testdata/format/javadocOrderedList.java", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+
+ @Test fun companionObjectExtension() {
+ verifyOutput("testdata/format/companionObjectExtension.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Foo" })
+ }
+ }
+
+ @Test fun starProjection() {
+ verifyOutput("testdata/format/starProjection.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun extensionFunctionParameter() {
+ verifyOutput("testdata/format/extensionFunctionParameter.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun summarizeSignatures() {
+ verifyOutput("testdata/format/summarizeSignatures.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members)
+ }
+ }
+
+ @Test fun summarizeSignaturesProperty() {
+ verifyOutput("testdata/format/summarizeSignaturesProperty.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members)
+ }
+ }
+
+ @Test fun reifiedTypeParameter() {
+ verifyOutput("testdata/format/reifiedTypeParameter.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun annotatedTypeParameter() {
+ verifyOutput("testdata/format/annotatedTypeParameter.kt", ".md", withKotlinRuntime = true) { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+
+ @Test fun inheritedMembers() {
+ verifyOutput("testdata/format/inheritedMembers.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+
+ @Test fun inheritedExtensions() {
+ verifyOutput("testdata/format/inheritedExtensions.kt", ".md") { model, output ->
+ markdownService.appendNodes(tempLocation, output, model.members.single().members.filter { it.name == "Bar" })
+ }
+ }
+}
diff --git a/core/src/test/kotlin/format/PackageDocsTest.kt b/core/src/test/kotlin/format/PackageDocsTest.kt
new file mode 100644
index 00000000..4d7852da
--- /dev/null
+++ b/core/src/test/kotlin/format/PackageDocsTest.kt
@@ -0,0 +1,18 @@
+package org.jetbrains.dokka.tests.format
+
+import org.jetbrains.dokka.ContentBlock
+import org.jetbrains.dokka.ContentText
+import org.jetbrains.dokka.DokkaConsoleLogger
+import org.jetbrains.dokka.PackageDocs
+import org.junit.Test
+import kotlin.test.assertEquals
+
+public class PackageDocsTest {
+ @Test fun verifyParse() {
+ val docs = PackageDocs(null, DokkaConsoleLogger)
+ docs.parse("testdata/packagedocs/stdlib.md", null)
+ val packageContent = docs.packageContent["kotlin"]!!
+ val block = (packageContent.children.single() as ContentBlock).children.first() as ContentText
+ assertEquals("Core functions and types", block.text)
+ }
+}