@@ -29,6 +29,7 @@ import qualified Data.HashMap.Strict as HM
29import qualified Data.Text as T
29import qualified Data.Text as T
30import qualified Data.Text.Encoding as T
30import qualified Data.Text.Encoding as T
31import qualified Data.Text.IO as TIO
31import qualified Data.Text.IO as TIO
32+import qualified Data.Text.Lazy.IO as TLIO
32import qualified Network.HTTP.Client as L
33import qualified Network.HTTP.Client as L
33import qualified Network.HTTP.Client.MultipartFormData as LM
34import qualified Network.HTTP.Client.MultipartFormData as LM
34import qualified Network.HTTP.Types as Y
35import qualified Network.HTTP.Types as Y
@@ -197,14 +198,31 @@ spec = do
198 -- TODO /delete
199 -- TODO /delete
200− describe "receiving UTF-8 encoded Unicode data" $
201+ describe "receiving UTF-8 encoded Unicode data" $ do
202+ context "as strict byte string" $
201− it "works" $ do
203+ it "works" $ do
202− r <- req GET (httpbin /: "encoding" /: "utf8")
204+ r <- req GET (httpbin /: "encoding" /: "utf8")
203− NoReqBody bsResponse mempty
205+ NoReqBody bsResponse mempty
204− utf8data <- B.readFile "httpbin-data/utf8.html"
206+ utf8data <- B.readFile "httpbin-data/utf8.html"
207+ responseBody r `shouldBe` utf8data
208+ responseStatusCode r `shouldBe` 200
209+ responseStatusMessage r `shouldBe` "OK"
210+ context "as strict text" $ do
212+ r <- req GET (httpbin /: "encoding" /: "utf8")
213+ NoReqBody textResponse mempty
214+ utf8data <- TIO.readFile "httpbin-data/utf8.html"
205− responseBody r `shouldBe` utf8data
215+ responseBody r `shouldBe` utf8data
216+ responseStatusCode r `shouldBe` 200
217+ responseStatusMessage r `shouldBe` "OK"
218+ context "as lazy text" $
220+ r <- req GET (httpbin /: "encoding" /: "utf8")
221+ NoReqBody ltextResponse mempty
222+ utf8data <- TLIO.readFile "httpbin-data/utf8.html"
223+ responseBody r `shouldBe` utf8data
206− responseStatusCode r `shouldBe` 200
224+ responseStatusCode r `shouldBe` 200
207− responseStatusMessage r `shouldBe` "OK"
225+ responseStatusMessage r `shouldBe` "OK"
209 -- TODO /gzip
227 -- TODO /gzip
210 -- TODO /deflate
228 -- TODO /deflate