on master help sign in
Added gzip test
f910ffdMichael Snoyman
runtests.hs+19
@@ -12,6 +12,8 @@ import qualified Data.ByteString.Lazy.Char8 as L8
12import Control.Arrow
12import Control.Arrow
13
13
14import Network.Wai.Middleware.Jsonp
14import Network.Wai.Middleware.Jsonp
15+import Network.Wai.Middleware.Gzip
16+import Codec.Compression.GZip (decompress)
15
17
16import Data.Enumerator (run_, enumList, ($$))
18import Data.Enumerator (run_, enumList, ($$))
17import Control.Monad.IO.Class (liftIO)
19import Control.Monad.IO.Class (liftIO)
@@ -31,6 +33,7 @@ testSuite = testGroup "Network.Wai.Parse"
31 , testCase "killCRLF" caseKillCRLF
33 , testCase "killCRLF" caseKillCRLF
32 , testCase "takeLine" caseTakeLine
34 , testCase "takeLine" caseTakeLine
33 , testCase "jsonp" caseJsonp
35 , testCase "jsonp" caseJsonp
36+ , testCase "gzip" caseGzip
34 ]
37 ]
35
38
36caseParseQueryString :: Assertion
39caseParseQueryString :: Assertion
@@ -223,3 +226,19 @@ caseJsonp = flip runSession jsonpApp $ do
223 }
226 }
224 assertContentType "application/json" sres3
227 assertContentType "application/json" sres3
225 assertBody "{\"foo\":\"bar\"}" sres3
228 assertBody "{\"foo\":\"bar\"}" sres3
229+
230+gzipApp = gzip True $ const $ return $ responseLBS status200 [] "test"
231+
232+caseGzip :: Assertion
233+caseGzip = flip runSession gzipApp $ do
234+ sres1 <- request Request
235+ { requestHeaders = [("Accept-Encoding", "gzip")]
236+ }
237+ assertHeader "Content-Encoding" "gzip" sres1
238+ liftIO $ decompress (simpleBody sres1) @?= "test"
239+
240+ sres2 <- request Request
241+ { requestHeaders = []
242+ }
243+ assertNoHeader "Content-Encoding" sres2
244+ assertBody "test" sres2