on master help sign in
Added gzip test
commitf910ffd26178c3fd78b2df92c50f67abc04cfabf authorMichael Snoyman <michael@snoyman.com> dateFri 24 Dec 2010, 11:58 (16 years ago) parent25481ef
1 file changed+19
runtests.hs+19
runtests.hs+19
@@ -12,6 +12,8 @@ import qualified Data.ByteString.Lazy.Char8 as L8
1212import Control.Arrow
1313
1414import Network.Wai.Middleware.Jsonp
15+import Network.Wai.Middleware.Gzip
16+import Codec.Compression.GZip (decompress)
1517
1618import Data.Enumerator (run_, enumList, ($$))
1719import Control.Monad.IO.Class (liftIO)
@@ -31,6 +33,7 @@ testSuite = testGroup "Network.Wai.Parse"
3133 , testCase "killCRLF" caseKillCRLF
3234 , testCase "takeLine" caseTakeLine
3335 , testCase "jsonp" caseJsonp
36+ , testCase "gzip" caseGzip
3437 ]
3538
3639caseParseQueryString :: Assertion
@@ -223,3 +226,19 @@ caseJsonp = flip runSession jsonpApp $ do
223226 }
224227 assertContentType "application/json" sres3
225228 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