1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
import org.scalacheck._
import org.scalacheck.Prop._
import scala.tools.nsc.doc
import scala.tools.nsc.doc.html.page.IndexScript
import java.net.URLClassLoader
object Test extends Properties("IndexScript") {
def getClasspath = {
val loader = Thread.currentThread.getContextClassLoader
val paths = loader.asInstanceOf[URLClassLoader].getURLs
val morepaths = loader.getParent.asInstanceOf[URLClassLoader].getURLs
(paths ++ morepaths).map(_.getPath).mkString(java.io.File.pathSeparator)
}
val docFactory = {
val settings = new doc.Settings({Console.err.println(_)})
settings.classpath.value = getClasspath
val reporter = new scala.tools.nsc.reporters.ConsoleReporter(settings)
new doc.DocFactory(reporter, settings)
}
val indexModelFactory = doc.model.IndexModelFactory
def createIndexScript(path: String) =
docFactory.makeUniverse(List(path)) match {
case Some(universe) => {
val index = new IndexScript(universe,
indexModelFactory.makeIndex(universe))
Some(index)
}
case _ =>
None
}
property("allPackages") = {
createIndexScript("src/compiler/scala/tools/nsc/doc/html/page/Index.scala") match {
case Some(index) =>
index.allPackages.map(_.toString) == List(
"scala",
"scala.tools",
"scala.tools.nsc",
"scala.tools.nsc.doc",
"scala.tools.nsc.doc.html",
"scala.tools.nsc.doc.html.page"
)
case None =>
false
}
}
}
|