summaryrefslogtreecommitdiff
path: root/examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala')
-rw-r--r--examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala130
1 files changed, 0 insertions, 130 deletions
diff --git a/examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala b/examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala
deleted file mode 100644
index 79a7c75..0000000
--- a/examples/scala-js/jasmine-test-framework/src/main/scala/org/scalajs/jasminetest/JasmineTestReporter.scala
+++ /dev/null
@@ -1,130 +0,0 @@
-/* __ *\
-** ________ ___ / / ___ __ ____ Scala.js Test Framework **
-** / __/ __// _ | / / / _ | __ / // __/ (c) 2013, LAMP/EPFL **
-** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
-** /____/\___/_/ |_/____/_/ | |__/ /____/ **
-** |/____/ **
-\* */
-
-
-package org.scalajs.jasminetest
-
-import scala.scalajs.js
-import scala.scalajs.js.annotation.JSExport
-
-import scala.scalajs.runtime.StackTrace
-
-import scala.scalajs.testbridge._
-
-import org.scalajs.jasmine.ExpectationResult
-import org.scalajs.jasmine.Result
-import org.scalajs.jasmine.Spec
-import org.scalajs.jasmine.Suite
-
-/** This class is passed to the actual jasmine framework as a reporter */
-class JasmineTestReporter(testOutput: TestOutput) {
- private var currentSuite: Suite = _
-
- @JSExport
- def reportRunnerStarting(): Unit = {
- testOutput.log.info("")
- }
-
- @JSExport
- def reportSpecStarting(spec: Spec): Unit = {
- if (currentSuite != spec.suite) {
- currentSuite = spec.suite
- info(currentSuite.description)
- }
- }
-
- @JSExport
- def reportSpecResults(spec: Spec): Unit = {
- val results = spec.results()
- val description = spec.description
-
- if (results.passed) {
- testOutput.succeeded(s" $success $description")
- } else {
- error(s" $failure $description")
-
- results.getItems foreach displayResult
- }
- }
-
- @JSExport
- def reportSuiteResults(suite: Suite): Unit = {
- var results = suite.results()
-
- info("")
- val title = "Total for suite " + suite.description
- val message =
- s"${results.totalCount} specs, ${results.failedCount} failure"
-
- if (results.passedCount != results.totalCount) {
- error(title)
- errorWithInfoColor(message)
- } else {
- info(title)
- infoWithInfoColor(message)
- }
- info("")
- }
-
- @JSExport
- def reportRunnerResults(): Unit = {
- // no need to report
- }
-
- private def info(str: String) =
- testOutput.log.info(str)
-
- private def infoWithInfoColor(str: String) =
- info(withColor(testOutput.infoColor, str))
-
- private def errorWithInfoColor(str: String) =
- error(withColor(testOutput.infoColor, str))
-
- private def error(msg: js.Any) =
- testOutput.log.error(msg.toString)
-
- private def withColor(color: testOutput.Color, message: String) =
- testOutput.color(message, color)
-
- private def sanitizeMessage(message: String) = {
- val FilePattern = """^(.+?) [^ ]+\.js \(line \d+\)\.*?$""".r
- val EvalPattern = """^(.+?) in eval.+\(eval\).+?\(line \d+\).*?$""".r
-
- message match {
- case FilePattern(originalMessage) => originalMessage
- case EvalPattern(originalMessage) => originalMessage
- case message => message
- }
- }
-
- private def failure = withColor(testOutput.errorColor, "x")
- private def success = withColor(testOutput.successColor, "+")
-
- private def displayResult(result: Result) = {
- (result.`type`: String) match {
- case "log" =>
- info(s" ${result.toString}")
- case "expect" =>
- val r = result.asInstanceOf[ExpectationResult]
-
- if (!r.passed()) {
- val message = sanitizeMessage(r.message)
- val stack = StackTrace.extract(r.trace).takeWhile { stackElem =>
- (stackElem.getFileName == null ||
- !stackElem.getFileName.endsWith("jasmine.js"))
- }
-
- if (stack.isEmpty)
- testOutput.failure(s" $message")
- else
- testOutput.error(s" $message", stack)
- }
- }
- }
-
-}