Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 77 lines (66 sloc) 2.894 kb
import scala.tools.nsc.doc.model._
import scala.tools.nsc.doc.model.comment._
import scala.tools.partest.ScaladocModelTest
import java.net.{URI, URL}
import java.io.File
object Test extends ScaladocModelTest {
override def code =
"""
/** See:
* - [[scala.collection.Map]] Simple linking
* - [[scala.collection.immutable.::]] Linking with symbolic name
* - [[scala.Int]].toLong Linking to a class
* - [[scala.Predef]] Linking to an object
* - [[scala.Int.toLong]] Linking to a method
* - [[scala]] Linking to a package
* - [[scala.AbstractMethodError]] Linking to a member in the package object
* - [[scala.Predef.String]] Linking to a member in an object
*
* Don't look at:
* - [[scala.NoLink]] Not linking :)
*/
object Test {
def foo(param: Any) {}
def barr(l: scala.collection.immutable.List[Any]) {}
def bar(l: List[String]) {} // TODO: Should be able to link to type aliases
def baz(d: java.util.Date) {} // Should not be resolved
}
"""
def scalaURL = "http://bog.us"
override def scaladocSettings = {
val scalaLibUri = getClass.getClassLoader.getResource("scala/Function1.class").toURI.getSchemeSpecificPart.split("!")(0)
val scalaLib = new File(new URL(scalaLibUri).getPath).getPath
val extArg = new URI("file", scalaLib, scalaURL).toString
"-no-link-warnings -doc-external-uris " + extArg
}
def testModel(rootPackage: Package) {
import access._
val test = rootPackage._object("Test")
def check(memberDef: Def, expected: Int) {
val externals = memberDef.valueParams(0)(0).resultType.refEntity collect {
case (_, (LinkToExternal(name, url), _)) => assert(url.contains(scalaURL)); name
}
assert(externals.size == expected)
}
check(test._method("foo"), 1)
check(test._method("bar"), 0)
check(test._method("barr"), 2)
check(test._method("baz"), 0)
val expectedUrls = collection.mutable.Set[String](
"scala.collection.Map",
"scala.collection.immutable.::",
"scala.Int",
"scala.Predef$",
"scala.Int@toLong:Long",
"scala.package",
"scala.package@AbstractMethodError=AbstractMethodError",
"scala.Predef$@String=String"
).map(scalaURL + "/index.html#" + _)
def isExpectedExternalLink(l: EntityLink) = l.link match {
case LinkToExternal(name, url) => assert(expectedUrls contains url, url); true
case _ => false
}
assert(countLinks(test.comment.get, isExpectedExternalLink) == 8,
countLinks(test.comment.get, isExpectedExternalLink) + " == 8")
}
}
Jump to Line
Something went wrong with that request. Please try again.