diff options
Diffstat (limited to 'examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala')
-rw-r--r-- | examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala b/examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala new file mode 100644 index 0000000..3612629 --- /dev/null +++ b/examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala @@ -0,0 +1,63 @@ +/* __ *\ +** ________ ___ / / ___ __ ____ 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("'\"") + } + + } + +} |