File: IndexScriptTest.scala

package info (click to toggle)
scala 2.9.2%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 67,208 kB
  • sloc: java: 27,488; xml: 4,412; python: 2,297; sh: 734; makefile: 16; ansic: 6
file content (52 lines) | stat: -rw-r--r-- 1,555 bytes parent folder | download | duplicates (2)
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
    }
  }
}