@@ -29,6 +29,7 @@ import qualified Data.HashMap.Strict as HM
2929import qualified Data.Text as T
3030import qualified Data.Text.Encoding as T
3131import qualified Data.Text.IO as TIO
32+import qualified Data.Text.Lazy.IO as TLIO
3233import qualified Network.HTTP.Client as L
3334import qualified Network.HTTP.Client.MultipartFormData as LM
3435import qualified Network.HTTP.Types as Y
@@ -197,14 +198,31 @@ spec = do
197198
198199 -- TODO /delete
199200
200− describe "receiving UTF-8 encoded Unicode data" $
201− it "works" $ do
202− r <- req GET (httpbin /: "encoding" /: "utf8")
203− NoReqBody bsResponse mempty
204− utf8data <- B.readFile "httpbin-data/utf8.html"
205− responseBody r `shouldBe` utf8data
206− responseStatusCode r `shouldBe` 200
207− responseStatusMessage r `shouldBe` "OK"
201+ describe "receiving UTF-8 encoded Unicode data" $ do
202+ context "as strict byte string" $
203+ it "works" $ do
204+ r <- req GET (httpbin /: "encoding" /: "utf8")
205+ NoReqBody bsResponse mempty
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
211+ it "works" $ do
212+ r <- req GET (httpbin /: "encoding" /: "utf8")
213+ NoReqBody textResponse mempty
214+ utf8data <- TIO.readFile "httpbin-data/utf8.html"
215+ responseBody r `shouldBe` utf8data
216+ responseStatusCode r `shouldBe` 200
217+ responseStatusMessage r `shouldBe` "OK"
218+ context "as lazy text" $
219+ it "works" $ do
220+ r <- req GET (httpbin /: "encoding" /: "utf8")
221+ NoReqBody ltextResponse mempty
222+ utf8data <- TLIO.readFile "httpbin-data/utf8.html"
223+ responseBody r `shouldBe` utf8data
224+ responseStatusCode r `shouldBe` 200
225+ responseStatusMessage r `shouldBe` "OK"
208226
209227 -- TODO /gzip
210228 -- TODO /deflate