summaryrefslogtreecommitdiff
path: root/examples/scala-js/test-suite/src/test/scala/scala/scalajs/testsuite/scalalib/SymbolTest.scala
diff options
context:
space:
mode:
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.scala63
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("'\"")
+ }
+
+ }
+
+}