summaryrefslogtreecommitdiff
path: root/test/scaladoc/model/CommentFactoryTest.scala
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2010-09-21 12:42:12 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2010-09-21 12:42:12 +0000
commit6b957d04557b6c72dd77676e246f4541442f182d (patch)
tree0dfde148e710d6b5aeb358e5b1d60c0c5e0aa32b /test/scaladoc/model/CommentFactoryTest.scala
parentfeb435cc0ac77d158ccd9a119ee248fe49c12529 (diff)
downloadscala-6b957d04557b6c72dd77676e246f4541442f182d.tar.gz
scala-6b957d04557b6c72dd77676e246f4541442f182d.tar.bz2
scala-6b957d04557b6c72dd77676e246f4541442f182d.zip
[scaladoc] Adds some simple tests for Scaladoc ...
[scaladoc] Adds some simple tests for Scaladoc (using Scalacheck). Contributed by Kato Kazuyosh. No review.
Diffstat (limited to 'test/scaladoc/model/CommentFactoryTest.scala')
-rw-r--r--test/scaladoc/model/CommentFactoryTest.scala68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/scaladoc/model/CommentFactoryTest.scala b/test/scaladoc/model/CommentFactoryTest.scala
new file mode 100644
index 0000000000..20b52b91f7
--- /dev/null
+++ b/test/scaladoc/model/CommentFactoryTest.scala
@@ -0,0 +1,68 @@
+import org.scalacheck._
+
+import scala.tools.nsc.Global
+import scala.tools.nsc.doc
+import scala.tools.nsc.doc.model.comment._
+
+class Factory(val g: Global, val s: doc.Settings)
+ extends doc.model.ModelFactory(g, s) {
+ thisFactory: Factory with CommentFactory with doc.model.TreeFactory =>
+
+ def strip(c: Comment): Option[Inline] = {
+ c.body match {
+ case Body(List(Paragraph(Chain(List(Summary(inner)))))) => Some(inner)
+ case _ => None
+ }
+ }
+
+ def parseComment(s: String): Option[Inline] =
+ strip(parse(s, "", scala.tools.nsc.util.NoPosition))
+}
+
+object Test extends Properties("CommentFactory") {
+ val factory = {
+ val settings = new doc.Settings((str: String) => {})
+ val reporter = new scala.tools.nsc.reporters.ConsoleReporter(settings)
+ val g = new Global(settings, reporter)
+ (new Factory(g, settings) with CommentFactory with doc.model.TreeFactory)
+ }
+
+ def parse(src: String, dst: Inline) = {
+ factory.parseComment(src) match {
+ case Some(inline) =>
+ inline == dst
+ case _ =>
+ false
+ }
+ }
+
+ property("parse") = parse(
+ "/** One two three */",
+ Text("One two three")
+ )
+ property("parse") = parse(
+ "/** One `two` three */",
+ Chain(List(Text("One "), Monospace("two"), Text(" three")))
+ )
+
+ property("parse") = parse(
+ """
+/** One two
+ * three */""",
+ Text("One two\nthree")
+ )
+ property("parse") = parse(
+ """
+/** One `two`
+ * three */""",
+ Chain(List(Text("One "), Monospace("two"), Text("\nthree")))
+ )
+
+ property("parse") = parse(
+ """
+/** One `two`
+ * three */""",
+ Chain(List(Text("One "), Monospace("two"), Text("\n three")))
+ )
+
+}