@@ -7,6 +7,9 @@ import qualified Network.HTTP.Types as H
7import Network.Wai.Handler.Warp.ResponseHeader
7import Network.Wai.Handler.Warp.ResponseHeader
8import Network.Wai.Handler.Warp.Response
8import Network.Wai.Handler.Warp.Response
9import Network.Wai.Handler.Warp.Header
9import Network.Wai.Handler.Warp.Header
10+import Network.Wai.Handler.Warp.HTTP2.HPACK
12+import Network.HPACK.Token
10import Test.Hspec
13import Test.Hspec
12main :: IO ()
15main :: IO ()
@@ -34,7 +37,31 @@ spec = do
34 let hdrs = [("Server","MyServer")]
37 let hdrs = [("Server","MyServer")]
35 rspidxhdr = indexResponseHeader hdrs
38 rspidxhdr = indexResponseHeader hdrs
36 addServer "" rspidxhdr hdrs `shouldBe` []
39 addServer "" rspidxhdr hdrs `shouldBe` []
37−
40+ describe "addHeader" $ do
41+ it "adds Server if not exist" $ do
44+ hdrs1 = [("Server",v)]
45+ (thl, vt) <- toHeaderTable hdrs
46+ (thl1, _) <- toHeaderTable hdrs1
47+ addHeader tokenServer v vt thl `shouldBe` thl1
48+ it "does not add Server if exists" $ do
50+ hdrs = [("Server","MyServer")]
51+ (thl, vt) <- toHeaderTable hdrs
52+ addHeader tokenServer v vt thl `shouldBe` thl
53+ it "does not add Server if empty" $ do
56+ (thl, vt) <- toHeaderTable hdrs
57+ addHeader tokenServer v vt thl `shouldBe` thl
58+ it "deletes Server " $ do
60+ hdrs = [("Server","MyServer")]
62+ (thl, vt) <- toHeaderTable hdrs
63+ (thl1, _) <- toHeaderTable hdrs1
64+ addHeader tokenServer v vt thl `shouldBe` thl1
39headers :: H.ResponseHeaders
66headers :: H.ResponseHeaders
40headers = [
67headers = [