on mime-types/0.1.0.1 help sign in
typeable/wai/warp/test/RequestSpec.hs
28 lines 901 B history raw
1{-# LANGUAGE OverloadedStrings #-}
3module RequestSpec (main, spec) where
5import Data.Conduit
6import Data.Conduit.List
7import Network.Wai.Handler.Warp.Request
8import Network.Wai.Handler.Warp.Types
9import Test.Hspec
11main :: IO ()
12main = hspec spec
14spec :: Spec
15spec = describe "takeHeaders" $ do
16 it "takes until blank" $
17 blankSafe >>= (`shouldBe` ["foo", "bar", "baz"])
18 it "throws OverLargeHeader when too many" $
19 tooMany `shouldThrow` overLargeHeader
20 it "throws OverLargeHeader when too large" $
21 tooLarge `shouldThrow` overLargeHeader
22 where
23 blankSafe = runResourceT $ (sourceList ["f", "oo\n", "bar\nbaz\n\r\n"]) $$ takeHeaders
24 tooMany = runResourceT $ (sourceList $ repeat "f\n") $$ takeHeaders
25 tooLarge = runResourceT $ (sourceList $ repeat "f") $$ takeHeaders
27overLargeHeader :: Selector InvalidRequest
28overLargeHeader e = e == OverLargeHeader