diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 17:57:15 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 17:57:15 +0800 |
commit | 5c8a2030c048f96a7ded0c2f701e1612b53a2046 (patch) | |
tree | 6fb0e97781b31dd15874dbf8b1835780e4dcb7d0 /cask/test/src/test/cask | |
parent | c4ccbb44d760aa3eb8a260aafa8ccf557ba06d3f (diff) | |
download | cask-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.scala | 54 |
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() + } + } +} |