blob: 3612629a2cc316ada9b7f203ff6760b2ea8e74ee (
plain) (
tree)
|
|
/* __ *\
** ________ ___ / / ___ __ ____ Scala.js Test Suite **
** / __/ __// _ | / / / _ | __ / // __/ (c) 2013, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
** /____/\___/_/ |_/____/_/ | |__/ /____/ **
** |/____/ **
\* */
package scala.scalajs.testsuite.scalalib
import scala.scalajs.js
import org.scalajs.jasminetest.JasmineTest
object SymbolTest extends JasmineTest {
describe("scala.Symbol") {
it("should ensure unique identity") {
def expectEqual(sym1: Symbol, sym2: Symbol): Unit = {
expect(sym1 eq sym2).toBeTruthy
expect(sym1 == sym2).toBeTruthy
expect(sym1.equals(sym2)).toBeTruthy
expect(sym1.## == sym2.##).toBeTruthy
}
expectEqual('ScalaJS, Symbol("ScalaJS"))
expectEqual('$, Symbol("$"))
expectEqual('-, Symbol("-"))
val `42` = Symbol("42")
val map = Map[Symbol, js.Any](Symbol("ScalaJS") -> "Scala.js", '$ -> 1.2, `42` -> 42)
expect(map('ScalaJS)).toEqual("Scala.js")
expect(map(Symbol("$"))).toEqual(1.2)
expect(map(Symbol("42"))).toEqual(42)
expect(map(`42`)).toEqual(42)
}
it("should support `name`") {
val scalajs = 'ScalaJS
expect(scalajs.name).toEqual("ScalaJS")
expect(Symbol("$").name).toEqual("$")
expect('$$.name).toEqual("$$")
expect('-.name).toEqual("-")
expect('*.name).toEqual("*")
expect(Symbol("'").name).toEqual("'")
expect(Symbol("\"").name).toEqual("\"")
}
it("should support `toString`") {
val scalajs = 'ScalaJS
expect(scalajs.toString).toEqual("'ScalaJS")
expect(Symbol("$").toString).toEqual("'$")
expect('$$.toString).toEqual("'$$")
expect('-.toString).toEqual("'-")
expect('*.toString).toEqual("'*")
expect(Symbol("'").toString).toEqual("''")
expect(Symbol("\"").toString).toEqual("'\"")
}
}
}
|