From a6b4a71d59da928ddb326671b1058501bb1a45c5 Mon Sep 17 00:00:00 2001 From: adamw Date: Fri, 21 Jul 2017 14:43:20 +0200 Subject: AcceptEncoding + response decompression --- .../scala/com/softwaremill/sttp/BasicTests.scala | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'tests/src/test/scala/com/softwaremill') diff --git a/tests/src/test/scala/com/softwaremill/sttp/BasicTests.scala b/tests/src/test/scala/com/softwaremill/sttp/BasicTests.scala index 0f66cc8..96fbbae 100644 --- a/tests/src/test/scala/com/softwaremill/sttp/BasicTests.scala +++ b/tests/src/test/scala/com/softwaremill/sttp/BasicTests.scala @@ -4,6 +4,7 @@ import java.io.ByteArrayInputStream import java.nio.ByteBuffer import java.time.{ZoneId, ZonedDateTime} +import akka.http.scaladsl.coding.{Deflate, Gzip, NoCoding} import akka.http.scaladsl.model.{DateTime, FormData} import akka.http.scaladsl.model.headers._ import akka.http.scaladsl.model.headers.CacheDirectives._ @@ -104,6 +105,10 @@ class BasicTests }) { userName => complete(s"Hello, $userName!") } + } ~ path("compress") { + encodeResponseWith(Gzip, Deflate, NoCoding) { + complete("I'm compressed!") + } } override def port = 51823 @@ -133,6 +138,7 @@ class BasicTests errorsTests() cookiesTests() authTests() + compressionTests() def parseResponseTests(): Unit = { name should "parse response as string" in { @@ -338,5 +344,37 @@ class BasicTests resp.body should be("Hello, adam!") } } + + def compressionTests(): Unit = { + val compress = sttp.get(uri"$endpoint/compress") + val decompressedBody = "I'm compressed!" + + name should "decompress using the default accept encoding header" in { + val req = compress + val resp = req.send().force() + resp.body should be(decompressedBody) + } + + name should "decompress using gzip" in { + val req = + compress.header("Accept-Encoding", "gzip", replaceExisting = true) + val resp = req.send().force() + resp.body should be(decompressedBody) + } + + name should "decompress using deflate" in { + val req = + compress.header("Accept-Encoding", "deflate", replaceExisting = true) + val resp = req.send().force() + resp.body should be(decompressedBody) + } + + name should "work despite providing an unsupported encoding" in { + val req = + compress.header("Accept-Encoding", "br", replaceExisting = true) + val resp = req.send().force() + resp.body should be(decompressedBody) + } + } } } -- cgit v1.2.3