aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/test
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-02-01 19:37:39 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-02-01 19:37:39 +0100
commite64c2e2d01cf30fe843fa3d4eff977c8b1ecccc4 (patch)
tree666cddc172ff213008e5841ace6dc62acf7e26b0 /doc-tool/test
parentdbbb7a3d9a668bbb8b62bec38f065f2444dacb91 (diff)
downloaddotty-e64c2e2d01cf30fe843fa3d4eff977c8b1ecccc4.tar.gz
dotty-e64c2e2d01cf30fe843fa3d4eff977c8b1ecccc4.tar.bz2
dotty-e64c2e2d01cf30fe843fa3d4eff977c8b1ecccc4.zip
Add position based error reporting to dottydoc
Diffstat (limited to 'doc-tool/test')
-rw-r--r--doc-tool/test/SourceFileOps.scala32
-rw-r--r--doc-tool/test/TemplateErrorTests.scala32
-rw-r--r--doc-tool/test/dotty/tools/dottydoc/staticsite/PageTests.scala45
-rw-r--r--doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala26
4 files changed, 80 insertions, 55 deletions
diff --git a/doc-tool/test/SourceFileOps.scala b/doc-tool/test/SourceFileOps.scala
index 7b0c2e807..37520921d 100644
--- a/doc-tool/test/SourceFileOps.scala
+++ b/doc-tool/test/SourceFileOps.scala
@@ -7,7 +7,12 @@ import java.io.{ BufferedWriter, OutputStreamWriter }
import io.VirtualFile
import scala.io.Codec
+import model.Package
+
trait SourceFileOps {
+ import scala.collection.JavaConverters._
+ val site = new Site(new java.io.File("../doc-tool/resources/"), "test-site", Map.empty)
+
def stringToSource(path: String, sourceCode: String): SourceFile = {
val virtualFile = new VirtualFile(path, path)
val writer = new BufferedWriter(new OutputStreamWriter(virtualFile.output, "UTF-8"))
@@ -16,4 +21,31 @@ trait SourceFileOps {
new SourceFile(virtualFile, Codec.UTF8)
}
+
+ def markdownPage(
+ sourceCode: String,
+ path: String = "test-page",
+ params: Map[String, AnyRef] = Map.empty,
+ includes: Map[String, Include] = Map.empty,
+ docs: Map[String, Package] = Map.empty
+ ) = new MarkdownPage(
+ path,
+ stringToSource(path, sourceCode),
+ params,
+ includes,
+ docs
+ )
+
+ def htmlPage(
+ sourceCode: String,
+ path: String = "test-page",
+ params: Map[String, AnyRef] = Map.empty,
+ includes: Map[String, Include] = Map.empty,
+ docs: Map[String, Package] = Map.empty
+ ) = new HtmlPage(
+ path,
+ stringToSource(path, sourceCode),
+ params,
+ includes
+ )
}
diff --git a/doc-tool/test/TemplateErrorTests.scala b/doc-tool/test/TemplateErrorTests.scala
new file mode 100644
index 000000000..3359c7791
--- /dev/null
+++ b/doc-tool/test/TemplateErrorTests.scala
@@ -0,0 +1,32 @@
+package dotty.tools
+package dottydoc
+package staticsite
+
+import org.junit.Test
+import org.junit.Assert._
+
+class TemplateErrorTests extends DottyDocTest with SourceFileOps {
+ @Test def unclosedTag: Unit = {
+ htmlPage(
+ """|Yo dawg:
+ |{% include "stuff"
+ |I heard you like to include stuff""".stripMargin
+ ).html
+ }
+
+ @Test def missingEndif: Unit = {
+ htmlPage(
+ """|{% if someStuff %}
+ |Dude
+ |""".stripMargin
+ ).html
+ }
+
+ @Test def nonExistingTag: Unit = {
+ htmlPage(
+ """|{% someStuff 'ofDude' %}
+ |Dude
+ |""".stripMargin
+ ).html
+ }
+}
diff --git a/doc-tool/test/dotty/tools/dottydoc/staticsite/PageTests.scala b/doc-tool/test/dotty/tools/dottydoc/staticsite/PageTests.scala
index 20a41e70b..7febe7fe5 100644
--- a/doc-tool/test/dotty/tools/dottydoc/staticsite/PageTests.scala
+++ b/doc-tool/test/dotty/tools/dottydoc/staticsite/PageTests.scala
@@ -5,38 +5,9 @@ package staticsite
import org.junit.Test
import org.junit.Assert._
-import model.Package
-
class PageTests extends DottyDocTest with SourceFileOps {
import scala.collection.JavaConverters._
- private def markdownPage(
- sourceCode: String,
- path: String = "test-page",
- params: Map[String, AnyRef] = Map.empty,
- includes: Map[String, Include] = Map.empty,
- docs: Map[String, Package] = Map.empty
- ) = new MarkdownPage(
- path,
- stringToSource(path, sourceCode),
- params,
- includes,
- docs
- )
-
- private def htmlPage(
- sourceCode: String,
- path: String = "test-page",
- params: Map[String, AnyRef] = Map.empty,
- includes: Map[String, Include] = Map.empty,
- docs: Map[String, Package] = Map.empty
- ) = new HtmlPage(
- path,
- stringToSource(path, sourceCode),
- params,
- includes
- )
-
@Test def mdHas1Key = {
val page = markdownPage(
"""|---
@@ -51,7 +22,7 @@ class PageTests extends DottyDocTest with SourceFileOps {
s"""incorrect yaml, expected "key:" without key in: ${page.yaml}"""
)
- assertEquals("<p>great</p>\n", page.html)
+ assertEquals("<p>great</p>\n", page.html.get)
}
@Test def yamlPreservesLiquidTags = {
@@ -69,7 +40,7 @@ class PageTests extends DottyDocTest with SourceFileOps {
s"""incorrect yaml, expected "key:" without key in: ${page1.yaml}"""
)
- assertEquals("<p>Hello, world!</p>\n", page1.html)
+ assertEquals("<p>Hello, world!</p>\n", page1.html.get)
val page2 = markdownPage(
"""|{{ content }}""".stripMargin,
@@ -79,7 +50,7 @@ class PageTests extends DottyDocTest with SourceFileOps {
page2.yaml == Map(),
s"""incorrect yaml, expected "key:" without key in: ${page2.yaml}"""
)
- assertEquals("<p>hello</p>\n", page2.html)
+ assertEquals("<p>hello</p>\n", page2.html.get)
val page3 = markdownPage(
"""|{% if product.title == "Awesome Shoes" %}
@@ -90,14 +61,14 @@ class PageTests extends DottyDocTest with SourceFileOps {
assertEquals(
"<p>These shoes are awesome!</p>\n",
- page3.html
+ page3.html.get
)
}
@Test def simpleHtmlPage = {
val p1 = htmlPage("""<h1>{{ "hello, world!" }}</h1>""")
assert(p1.yaml == Map(), "non-empty yaml found")
- assertEquals("<h1>hello, world!</h1>", p1.html)
+ assertEquals("<h1>hello, world!</h1>", p1.html.get)
}
@Test def htmlPageHasNoYaml = {
@@ -109,8 +80,8 @@ class PageTests extends DottyDocTest with SourceFileOps {
|Hello, world!""".stripMargin
)
- assert(!page.html.contains("---\nlayout: main\n---"),
- s"page still contains yaml:\n${page.html}")
+ assert(!page.html.get.contains("---\nlayout: main\n---"),
+ s"page still contains yaml:\n${page.html.get}")
}
@Test def illegalYamlFrontMatter = try {
@@ -122,7 +93,7 @@ class PageTests extends DottyDocTest with SourceFileOps {
|Hello, world!""".stripMargin
)
- page.html
+ page.html.get
fail("illegal front matter didn't throw exception")
} catch {
case IllegalFrontMatter(x) => // success!
diff --git a/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala b/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala
index 77b49700c..a4279e18c 100644
--- a/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala
+++ b/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala
@@ -6,16 +6,6 @@ import org.junit.Test
import org.junit.Assert._
class SiteTests extends DottyDocTest with SourceFileOps {
- import scala.collection.JavaConverters._
- val site = new Site(new java.io.File("../doc-tool/resources/"), "test-site", Map.empty)
-
- private def html(
- str: String,
- path: String = "test-page",
- params: Map[String, AnyRef] = Map("docs" -> List.empty.asJava),
- includes: Map[String, Include] = Map.empty
- ) = new HtmlPage(path, stringToSource(path, str), params, includes)
-
@Test def hasCorrectLayoutFiles = {
assert(site.root.exists && site.root.isDirectory,
s"'${site.root.getName}' is not a directory")
@@ -26,13 +16,13 @@ class SiteTests extends DottyDocTest with SourceFileOps {
}
@Test def renderHelloInMainLayout = {
- val renderedPage = site.render(html(
+ val renderedPage = site.render(htmlPage(
"""|---
|layout: main
|---
|
|Hello, world!""".stripMargin
- ), Map.empty)
+ ), Map.empty).get
assert(
renderedPage.contains("Hello, world!") &&
@@ -43,12 +33,12 @@ class SiteTests extends DottyDocTest with SourceFileOps {
}
@Test def renderMultipleTemplates = {
- val renderedPage = site.render(html(
+ val renderedPage = site.render(htmlPage(
"""|---
|layout: index
|---
|Hello, world!""".stripMargin
- ), Map.empty)
+ ), Map.empty).get
assert(
renderedPage.contains("<h1>Hello, world!</h1>") &&
@@ -60,13 +50,13 @@ class SiteTests extends DottyDocTest with SourceFileOps {
}
@Test def preservesPageYaml = {
- val renderedPage = site.render(html(
+ val renderedPage = site.render(htmlPage(
"""|---
|title: Hello, world
|layout: index
|---
|Hello, world!""".stripMargin
- ), Map.empty)
+ ), Map.empty).get
assert(
renderedPage.contains("<h1>Hello, world!</h1>") &&
@@ -80,9 +70,9 @@ class SiteTests extends DottyDocTest with SourceFileOps {
@Test def include = {
val renderedInclude = site.render(
- html("""{% include "header.html" %}""", includes = site.includes),
+ htmlPage("""{% include "header.html" %}""", includes = site.includes),
Map.empty
- )
+ ).get
assertEquals("<h1>Some header</h1>\n", renderedInclude)
}