aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/test
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-03 16:23:56 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:29:15 +0100
commit302126067d6b05b26c7f2fffe7fda5d058b32b33 (patch)
treecd086eefe7d53186179f5cacb75511b01418fc85 /doc-tool/test
parentd2bf0b1443c094dba2e86d839bb8a1b8b9336eae (diff)
downloaddotty-302126067d6b05b26c7f2fffe7fda5d058b32b33.tar.gz
dotty-302126067d6b05b26c7f2fffe7fda5d058b32b33.tar.bz2
dotty-302126067d6b05b26c7f2fffe7fda5d058b32b33.zip
Add markdown parsing to dottydoc
Diffstat (limited to 'doc-tool/test')
-rw-r--r--doc-tool/test/DottyDocTest.scala1
-rw-r--r--doc-tool/test/MarkdownTests.scala247
-rw-r--r--doc-tool/test/SimpleComments.scala1
3 files changed, 248 insertions, 1 deletions
diff --git a/doc-tool/test/DottyDocTest.scala b/doc-tool/test/DottyDocTest.scala
index 67e468f9a..3f22ec8ec 100644
--- a/doc-tool/test/DottyDocTest.scala
+++ b/doc-tool/test/DottyDocTest.scala
@@ -20,6 +20,7 @@ trait DottyDocTest {
ctx.setSetting(ctx.settings.language, List("Scala2"))
ctx.setSetting(ctx.settings.YkeepComments, true)
ctx.setSetting(ctx.settings.YnoInline, true)
+ ctx.setSetting(ctx.settings.wikiSyntax, true)
ctx.setProperty(ContextDoc, new ContextDottydoc)
ctx.setSetting(
ctx.settings.classpath,
diff --git a/doc-tool/test/MarkdownTests.scala b/doc-tool/test/MarkdownTests.scala
new file mode 100644
index 000000000..e8596b634
--- /dev/null
+++ b/doc-tool/test/MarkdownTests.scala
@@ -0,0 +1,247 @@
+package dotty.tools
+package dottydoc
+
+import org.junit.Test
+import org.junit.Assert._
+
+import dotc.core.Contexts.{ Context, ContextBase, FreshContext }
+import dotc.core.Comments.{ ContextDoc, ContextDocstrings }
+import dottydoc.core.ContextDottydoc
+
+class MarkdownTests extends DottyDocTest {
+ override implicit val ctx: FreshContext = {
+ // TODO: check if can reuse parent instead of copy-paste
+ val base = new ContextBase
+ import base.settings._
+ val ctx = base.initialCtx.fresh
+ ctx.setSetting(ctx.settings.language, List("Scala2"))
+ ctx.setSetting(ctx.settings.YkeepComments, true)
+ ctx.setSetting(ctx.settings.YnoInline, true)
+ // No wiki syntax!
+ ctx.setSetting(ctx.settings.wikiSyntax, false)
+ ctx.setProperty(ContextDoc, new ContextDottydoc)
+ ctx.setSetting(
+ ctx.settings.classpath,
+ "../library/target/scala-2.11/dotty-library_2.11-0.1-SNAPSHOT.jar"
+ )
+ base.initialize()(ctx)
+ ctx
+ }
+
+ @Test def simpleMarkdown = {
+ val source =
+ """
+ |package scala
+ |
+ |/** *Hello*, world! */
+ |trait HelloWorld
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals("<p><em>Hello</em>, world!</p>", traitCmt)
+ }
+ }
+
+ @Test def outerLink = {
+ val source =
+ """
+ |package scala
+ |
+ |/** [out](http://www.google.com) */
+ |trait HelloWorld
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals("""<p><a href="http://www.google.com">out</a></p>""", traitCmt)
+ }
+ }
+
+ @Test def relativeLink = {
+ val source =
+ """
+ |package scala
+ |
+ |/** [None](./None.html) */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals("""<p><a href="./None.html">None</a></p>""", traitCmt)
+ }
+ }
+
+ @Test def absoluteLink = {
+ val source =
+ """
+ |package scala
+ |
+ |/** [None](scala.None) */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals("""<p><a href="../scala/None.html">None</a></p>""", traitCmt)
+ }
+ }
+
+ @Test def handleLists = {
+ val source =
+ """
+ |package scala
+ |
+ |/** - Item1
+ | * - Item2
+ | * - Item3
+ | */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals(
+ """|<ul>
+ |<li>Item1</li>
+ |<li>Item2</li>
+ |<li>Item3</li>
+ |</ul>""".stripMargin, traitCmt)
+ }
+ }
+
+ @Test def handleNestedLists = {
+ val source =
+ """
+ |package scala
+ |
+ |/** - Item1
+ | * - Item1a
+ | * - Item1b
+ | * - Item2
+ | * - Item3
+ | */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals(
+ """|<ul>
+ |<li>Item1
+ |<ul>
+ |<li>Item1a</li>
+ |<li>Item1b</li>
+ |</ul>
+ |</li>
+ |<li>Item2</li>
+ |<li>Item3</li>
+ |</ul>""".stripMargin, traitCmt)
+ }
+ }
+
+ @Test def handleCodeBlock = {
+ val source =
+ """
+ |package scala
+ |
+ |/** ```scala
+ | * val x = 1 + 5
+ | * ```
+ | */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+
+ assertEquals(
+ """|<pre><code class="language-scala">val x = 1 + 5
+ |</code></pre>""".stripMargin, traitCmt)
+ }
+ }
+
+ @Test def handleCodeBlockJavaDocstring = {
+ // the following works, but not when the start of the codeblock is on the
+ // first line
+ val source =
+ """
+ |package scala
+ |
+ |/**
+ | * ```scala
+ | * val x = 1 + 5
+ | * ```
+ | */
+ |trait HelloWorld
+ |
+ |trait None
+ """.stripMargin
+
+ checkSource(source) { packages =>
+ val traitCmt =
+ packages("scala")
+ .children.find(_.path.mkString(".") == "scala.HelloWorld")
+ .flatMap(_.comment.map(_.body))
+ .get
+ .trim
+ println(traitCmt)
+
+ assertEquals(
+ """|<pre><code class="language-scala">val x = 1 + 5
+ |</code></pre>""".stripMargin, traitCmt)
+ }
+ }
+}
diff --git a/doc-tool/test/SimpleComments.scala b/doc-tool/test/SimpleComments.scala
index eb9abca22..bc420feeb 100644
--- a/doc-tool/test/SimpleComments.scala
+++ b/doc-tool/test/SimpleComments.scala
@@ -25,5 +25,4 @@ class TestSimpleComments extends DottyDocTest {
assertEquals(traitCmt, "<p>Hello, world!</p>")
}
}
-
}