summaryrefslogtreecommitdiff
path: root/cask/test/src/test/cask
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-07-25 17:57:15 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-25 17:57:15 +0800
commit5c8a2030c048f96a7ded0c2f701e1612b53a2046 (patch)
tree6fb0e97781b31dd15874dbf8b1835780e4dcb7d0 /cask/test/src/test/cask
parentc4ccbb44d760aa3eb8a260aafa8ccf557ba06d3f (diff)
downloadcask-5c8a2030c048f96a7ded0c2f701e1612b53a2046.tar.gz
cask-5c8a2030c048f96a7ded0c2f701e1612b53a2046.tar.bz2
cask-5c8a2030c048f96a7ded0c2f701e1612b53a2046.zip
Basic example tests
Diffstat (limited to 'cask/test/src/test/cask')
-rw-r--r--cask/test/src/test/cask/ExampleTests.scala54
1 files changed, 54 insertions, 0 deletions
diff --git a/cask/test/src/test/cask/ExampleTests.scala b/cask/test/src/test/cask/ExampleTests.scala
new file mode 100644
index 0000000..ffc4ef2
--- /dev/null
+++ b/cask/test/src/test/cask/ExampleTests.scala
@@ -0,0 +1,54 @@
+package test.cask
+import io.undertow.Undertow
+import io.undertow.server.handlers.BlockingHandler
+import utest._
+
+object ExampleTests extends TestSuite{
+ def test[T](example: cask.main.MainRoutes)(f: String => T): T = {
+ val server = Undertow.builder
+ .addHttpListener(8080, "localhost")
+ .setHandler(new BlockingHandler(example.defaultHandler))
+ .build
+ server.start()
+ val res = f("http://localhost:8080")
+ server.stop()
+ res
+ }
+ val tests = Tests{
+ 'MinimalApplication - test(MinimalApplication){ host =>
+ val success = requests.get(host)
+
+ success.text() ==> "Hello World!"
+ success.statusCode ==> 200
+
+ val failure = requests.get(host + "/doesnt-exist")
+ failure.text() ==> "Error 404: Not Found"
+ failure.statusCode ==> 404
+
+ val successInfo = requests.get(host + "/request-info?my-query-param=my-query-value")
+ assert(
+ successInfo.text().contains("my-query-param"),
+ successInfo.text().contains("my-query-value")
+ )
+ successInfo.statusCode ==> 200
+ }
+ 'VariableRoutes - test(VariableRoutes){ host =>
+ val noIndexPage = requests.get(host)
+ noIndexPage.statusCode ==> 404
+
+ val userPage = requests.get(host + "/user/lihaoyi")
+ userPage.text() ==> "User lihaoyi"
+ userPage.statusCode ==> 200
+
+ val badUserPage = requests.get(host + "/user")
+ badUserPage.statusCode ==> 404
+
+ val postPage = requests.get(host + "/post/123?query=xyz&query=abc")
+ postPage.text() ==> "Post 123 ArrayBuffer(xyz, abc)"
+ userPage.statusCode ==> 200
+
+ val badPostPage = requests.get(host + "/post/123")
+ badPostPage.text()
+ }
+ }
+}