blob: 20b52b91f7cb28ce7d02e0e40a4b8e354e7f5c1d (
plain) (
tree)
|
|
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")))
)
}
|