diff options
author | Haoyi Li <haoyi@haoyi-mbp.corp.dropbox.com> | 2014-11-26 00:45:31 -0800 |
---|---|---|
committer | Haoyi Li <haoyi@haoyi-mbp.corp.dropbox.com> | 2014-11-26 00:45:31 -0800 |
commit | 24f31e120f9537faede7a174bb09ee35f64e1ce4 (patch) | |
tree | 06ffc3ecc7847789008352b7e2b7c040dad48907 /examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala | |
parent | b89ce9cbf79363f8cab09186a5d7ba94bc0af02a (diff) | |
parent | 2c4b142503bd2d871e6818b5cab8c38627d9e4a0 (diff) | |
download | hands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.tar.gz hands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.tar.bz2 hands-on-scala-js-24f31e120f9537faede7a174bb09ee35f64e1ce4.zip |
Merge commit '2c4b142503bd2d871e6818b5cab8c38627d9e4a0' as 'examples/scala-js'
Diffstat (limited to 'examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala')
-rw-r--r-- | examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala new file mode 100644 index 0000000..2a44c80 --- /dev/null +++ b/examples/scala-js/sbt-plugin/src/test/scala/scala/scalajs/sbtplugin/test/env/JSEnvTest.scala @@ -0,0 +1,44 @@ +package scala.scalajs.sbtplugin.test.env + +import scala.scalajs.tools.env.JSEnv +import scala.scalajs.tools.io.MemVirtualJSFile +import scala.scalajs.tools.classpath.PartialClasspath +import scala.scalajs.tools.logging.NullLogger +import scala.scalajs.tools.env.NullJSConsole + +import org.junit.Assert._ + +abstract class JSEnvTest { + + protected def newJSEnv: JSEnv + + implicit class RunMatcher(codeStr: String) { + + val emptyCP = PartialClasspath.empty.resolve() + val code = new MemVirtualJSFile("testScript.js").withContent(codeStr) + + def hasOutput(expectedOut: String): Unit = { + + val console = new StoreJSConsole() + val logger = new StoreLogger() + + newJSEnv.jsRunner(emptyCP, code, logger, console).run() + + val log = logger.getLog + + assertTrue("VM shouldn't produce log. Log:\n" + + log.mkString("\n"), log.isEmpty) + assertEquals("Output should match", expectedOut, console.getLog) + } + + def fails(): Unit = { + try { + newJSEnv.jsRunner(emptyCP, code, NullLogger, NullJSConsole).run() + assertTrue("Code snipped should fail", false) + } catch { + case e: Exception => + } + } + } + +} |