Skip to content

Commit 20f65d8

Browse files
author
starzu
committed
A few tests of jQuery wrapper.
1 parent da1a795 commit 20f65d8

File tree

4 files changed

+119
-3
lines changed

4 files changed

+119
-3
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ scala:
44
- 2.11.7
55

66
script:
7-
- sbt ++$TRAVIS_SCALA_VERSION compile
7+
- sbt ++$TRAVIS_SCALA_VERSION test

build.sbt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@ scalacOptions in ThisBuild ++= Seq(
1515
"-Xlint:_,-missing-interpolator,-adapted-args"
1616
)
1717

18-
libraryDependencies +=
19-
"org.scala-js" %%% "scalajs-dom" % "0.8.2"
18+
libraryDependencies ++= Seq(
19+
"org.scala-js" %%% "scalajs-dom" % "0.8.2",
20+
"org.scalatest" %%% "scalatest" % "3.0.0-M15" % Test,
21+
"com.lihaoyi" %%% "scalatags" % "0.5.4" % Test
22+
)
2023

2124
jsDependencies +=
2225
"org.webjars" % "jquery" % "2.2.0" / "2.2.0/jquery.js" minified "2.2.0/jquery.min.js"
2326

27+
requiresDOM in Test := true
28+
persistLauncher in Test := false
29+
scalaJSUseRhino in Test := false
30+
2431
lazy val root = project.in(file("."))
2532
.enablePlugins(ScalaJSPlugin)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package io.udash.wrappers.jquery_test
2+
3+
import org.scalatest.{Matchers, WordSpec}
4+
5+
class DomManipulationTest extends WordSpec with Matchers {
6+
import io.udash.wrappers.jquery._
7+
import scalatags.JsDom.all._
8+
9+
"jQuery" should {
10+
"set text content of DOM element" in {
11+
val text = "test 123"
12+
val dom = div().render
13+
14+
jQ(dom).text() should be("")
15+
dom.textContent should be("")
16+
17+
jQ(dom).text(text)
18+
19+
jQ(dom).text() should be(text)
20+
dom.textContent should be(text)
21+
}
22+
23+
"set content of DOM element" in {
24+
val text = "test 123"
25+
val dom = div().render
26+
val content = span(ul(li(text))).render
27+
28+
jQ(dom).html() should be("")
29+
dom.textContent should be("")
30+
31+
jQ(dom).html(content)
32+
33+
jQ(dom).html() should be(s"<span><ul><li>$text</li></ul></span>")
34+
jQ(dom).text() should be(text)
35+
dom.textContent should be(text)
36+
}
37+
38+
"set DOM element attribute" in {
39+
val attrName = "attr"
40+
val attrValue = "val"
41+
val dom = div().render
42+
43+
jQ(dom).attr(attrName) should be(None)
44+
45+
jQ(dom).attr(attrName, attrValue)
46+
47+
jQ(dom).attr(attrName) should be(Some(attrValue))
48+
dom.getAttribute(attrName) should be(attrValue)
49+
}
50+
}
51+
52+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package io.udash.wrappers.jquery_test
2+
3+
import org.scalatest.{Matchers, WordSpec}
4+
5+
class SelectorsTest extends WordSpec with Matchers {
6+
import io.udash.wrappers.jquery._
7+
import scalatags.JsDom.all._
8+
9+
"jQuery" should {
10+
"select elements by class" in {
11+
val el1 = span(cls := "c1").render
12+
val el2 = span(cls := "c1 c2").render
13+
val el3 = h1(cls := "c3").render
14+
val dom = div(el1, el2, el3).render
15+
16+
jQ(dom).children(".c1").each((el, _, _) => jQ(el).attr("a1", 1))
17+
jQ(dom).children(".c2").each((el, _, _) => jQ(el).attr("a2", 1))
18+
jQ(dom).children(".c3").each((el, _, _) => jQ(el).attr("a3", 1))
19+
20+
jQ(el1).attr("a1") should be(Some("1"))
21+
jQ(el1).attr("a2") should be(None)
22+
jQ(el1).attr("a3") should be(None)
23+
24+
jQ(el2).attr("a1") should be(Some("1"))
25+
jQ(el2).attr("a2") should be(Some("1"))
26+
jQ(el2).attr("a3") should be(None)
27+
28+
jQ(el3).attr("a1") should be(None)
29+
jQ(el3).attr("a2") should be(None)
30+
jQ(el3).attr("a3") should be(Some("1"))
31+
}
32+
33+
"select elements by id" in {
34+
val el1 = span(id := "el1").render
35+
val el2 = span(id := "el2").render
36+
val el3 = h1(id := "el3").render
37+
val dom = div(el1, el2, el3).render
38+
39+
jQ(dom).children("#el1").each((el, _, _) => jQ(el).attr("a1", 1))
40+
jQ(dom).children("#el2").each((el, _, _) => jQ(el).attr("a2", 1))
41+
jQ(dom).children("#el3").each((el, _, _) => jQ(el).attr("a3", 1))
42+
43+
jQ(el1).attr("a1") should be(Some("1"))
44+
jQ(el1).attr("a2") should be(None)
45+
jQ(el1).attr("a3") should be(None)
46+
47+
jQ(el2).attr("a1") should be(None)
48+
jQ(el2).attr("a2") should be(Some("1"))
49+
jQ(el2).attr("a3") should be(None)
50+
51+
jQ(el3).attr("a1") should be(None)
52+
jQ(el3).attr("a2") should be(None)
53+
jQ(el3).attr("a3") should be(Some("1"))
54+
}
55+
}
56+
57+
}

0 commit comments

Comments
 (0)