diff options
Diffstat (limited to 'example/cookies/app')
-rw-r--r-- | example/cookies/app/src/Cookies.scala | 25 | ||||
-rw-r--r-- | example/cookies/app/test/src/ExampleTests.scala | 31 |
2 files changed, 56 insertions, 0 deletions
diff --git a/example/cookies/app/src/Cookies.scala b/example/cookies/app/src/Cookies.scala new file mode 100644 index 0000000..c07e373 --- /dev/null +++ b/example/cookies/app/src/Cookies.scala @@ -0,0 +1,25 @@ +package app +object Cookies extends cask.MainRoutes{ + @cask.get("/read-cookie") + def readCookies(username: cask.Cookie) = { + username.value + } + + @cask.get("/store-cookie") + def storeCookies() = { + cask.Response( + "Cookies Set!", + cookies = Seq(cask.Cookie("username", "the username")) + ) + } + + @cask.get("/delete-cookie") + def deleteCookie() = { + cask.Response( + "Cookies Deleted!", + cookies = Seq(cask.Cookie("username", "", expires = java.time.Instant.EPOCH)) + ) + } + + initialize() +} diff --git a/example/cookies/app/test/src/ExampleTests.scala b/example/cookies/app/test/src/ExampleTests.scala new file mode 100644 index 0000000..951728b --- /dev/null +++ b/example/cookies/app/test/src/ExampleTests.scala @@ -0,0 +1,31 @@ +package app +import io.undertow.Undertow + +import utest._ + +object ExampleTests extends TestSuite{ + def test[T](example: cask.main.BaseMain)(f: String => T): T = { + val server = Undertow.builder + .addHttpListener(8080, "localhost") + .setHandler(example.defaultHandler) + .build + server.start() + val res = + try f("http://localhost:8080") + finally server.stop() + res + } + + val tests = Tests{ + 'Cookies - test(Cookies){ host => + val sess = requests.Session() + sess.get(s"$host/read-cookie").statusCode ==> 400 + sess.get(s"$host/store-cookie") + sess.get(s"$host/read-cookie").text() ==> "the username" + sess.get(s"$host/read-cookie").statusCode ==> 200 + sess.get(s"$host/delete-cookie") + sess.get(s"$host/read-cookie").statusCode ==> 400 + + } + } +} |