aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Falcone <asfalcone@google.com>2019-11-22 15:38:08 -0500
committerAndrea Falcone <asfalcone@google.com>2019-11-25 15:40:27 -0500
commit12acf2f675a5d1daabef3dda39f3a119b2d07b62 (patch)
tree512d034d3e13da810b333b22affd4b0fff6087b5
parentc7793b2b40619ed67f30303f4206a6264bb50536 (diff)
downloaddokka-12acf2f675a5d1daabef3dda39f3a119b2d07b62.tar.gz
Updated test for dac-as-java format to use the full dac format
Test: tested in IDE Change-Id: If0cea9248810090433231f976a83b6bdf6a6d777
-rw-r--r--.gitignore2
-rw-r--r--core/src/test/kotlin/format/DacAsJavaFormatTest.kt75
-rw-r--r--core/testdata/format/dac-as-java/javaSeeTag.html68
3 files changed, 114 insertions, 31 deletions
diff --git a/.gitignore b/.gitignore
index 7aae4ae5c..8227df3c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+# mac
+.DS_Store
doc
### Maven template
diff --git a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
index 8fc94786e..a369e653f 100644
--- a/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
+++ b/core/src/test/kotlin/format/DacAsJavaFormatTest.kt
@@ -1,13 +1,67 @@
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.tests.FileGeneratorTestCase
+import org.jetbrains.dokka.Formats.DacAsJavaFormatDescriptor
+import org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatGenerator
+import org.jetbrains.dokka.Utilities.bind
import org.jetbrains.dokka.tests.verifyJavaOutput
-import org.jetbrains.dokka.tests.verifyOutput
+import org.junit.Rule
import org.junit.Test
+import org.junit.rules.TemporaryFolder
+import java.io.File
+import java.net.URI
-class DacAsJavaFormatTest: FileGeneratorTestCase() {
- override val formatService = HtmlFormatService(fileGenerator, KotlinLanguageService(), HtmlTemplateService.default(), listOf())
+class DacAsJavaFormatTest {
+ val formatDescriptor = DacAsJavaFormatDescriptor()
+
+ @get:Rule
+ var folder = TemporaryFolder()
+
+ var options =
+ DocumentationOptions(
+ folder.toString(),
+ "dac-as-java",
+ apiVersion = null,
+ languageVersion = null,
+ generateClassIndexPage = false,
+ generatePackageIndexPage = false,
+ noStdlibLink = false,
+ noJdkLink = false,
+ collectInheritedExtensionsFromLibraries = true
+ )
+
+ val injector: Injector by lazy {
+ createInjector(Module { binder ->
+
+ binder.bind<Boolean>().annotatedWith(Names.named("generateClassIndex")).toInstance(false)
+ binder.bind<Boolean>().annotatedWith(Names.named("generatePackageIndex")).toInstance(false)
+
+ binder.bind<String>().annotatedWith(Names.named("dacRoot")).toInstance("")
+ binder.bind<String>().annotatedWith(Names.named("outlineRoot")).toInstance("")
+ binder.bind<File>().annotatedWith(Names.named("outputDir")).toInstance(folder.root)
+
+ binder.bind<DocumentationOptions>().toProvider { options }
+ binder.bind<DokkaLogger>().toInstance(object : DokkaLogger {
+ override fun info(message: String) {
+ println(message)
+ }
+
+ override fun warn(message: String) {
+ println("WARN: $message")
+ }
+
+ override fun error(message: String) {
+ println("ERROR: $message")
+ }
+ })
+
+ formatDescriptor.configureOutput(binder)
+ })
+ }
@Test fun javaSeeTag() {
verifyJavaHtmlNode("javaSeeTag")
@@ -23,7 +77,18 @@ class DacAsJavaFormatTest: FileGeneratorTestCase() {
nodeFilter: (DocumentationModule) -> List<DocumentationNode>
) {
verifyJavaOutput("testdata/format/dac-as-java/$fileName.java",".html", format = format, withKotlinRuntime = withKotlinRuntime) { model, output ->
- buildPagesAndReadInto(nodeFilter(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())
+ }
+ }
} \ No newline at end of file
diff --git a/core/testdata/format/dac-as-java/javaSeeTag.html b/core/testdata/format/dac-as-java/javaSeeTag.html
index 90670a318..f7378820f 100644
--- a/core/testdata/format/dac-as-java/javaSeeTag.html
+++ b/core/testdata/format/dac-as-java/javaSeeTag.html
@@ -1,26 +1,42 @@
-<HTML>
-<HEAD>
-<meta charset="UTF-8">
-<title>Foo - test</title>
-</HEAD>
-<BODY>
-<a href="../index.html">test</a>&nbsp;/&nbsp;<a href="./index.html">Foo</a><br/>
-<br/>
-<h1>Foo</h1>
-<code><span class="keyword">class </span><span class="identifier">Foo</span>&nbsp;<span class="symbol">:</span>&nbsp;<span class="identifier">java.lang.Object</span></code>
-<p><strong>See Also</strong><br/>
-<a href="bar.html">#bar</a></p>
-<h3>Functions</h3>
-<table>
-<tbody>
-<tr>
-<td>
-<p><a href="bar.html">bar</a></p>
-</td>
-<td>
-<code><span class="keyword">fun </span><span class="identifier">bar</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">void</span></code></td>
-</tr>
-</tbody>
-</table>
-</BODY>
-</HTML>
+<html devsite="true">
+ <head>
+ <title>Foo</title>
+{% setvar book_path %}/_book.yaml{% endsetvar %}
+{% include "_shared/_reference-head-tags.html" %}
+ </head>
+ <body>
+ <div id="api-info-block"></div>
+ <h1>Foo</h1>
+ <pre><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Foo</span> <span class="keyword">implements</span> <span class="identifier">java.lang.Object</span></pre>
+ <table class="jd-inheritance-table">
+ <tr>
+ <td class="jd-inheritance-class-cell" colSpan="1"><a href="#">Foo</a></td>
+ </tr>
+ </table>
+ <h2>Summary</h2>
+ <table class="responsive" id="pubmethods">
+ <tbody>
+ <tr>
+ <th colSpan="2">
+ <devsite-heading ds-is="heading" text="Public methods" id="pubmethods" level="h3" toc="" class="">
+ <h3 is-upgraded="">Public methods</h3>
+ </devsite-heading>
+ </th>
+ </tr>
+ <tr>
+ <td><span class="keyword">public</span> <span class="identifier">void</span></td>
+ <td>
+ <div><code><a href="#bar()">bar</a>()</code></div>
+ <p></p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <h2>Public methods</h2>
+<a name="bar()"></a>
+ <div class="api apilevel-" data-version-added="">
+ <h3 class="api-name">bar</h3>
+ <pre class="api-signature no-pretty-print"><span class="identifier">void</span> <span class="identifier">bar</span><span class="symbol">(</span><span class="symbol">)</span></pre>
+ </div>
+ </body>
+</html>