http2-0.1.2: test/DecodeSpec.hs
module DecodeSpec where
import Data.List (sort)
import Network.HPACK.Context
import Network.HPACK.HeaderBlock
import Test.Hspec
import HeaderBlock
shouldBeSameAs :: (Ord a, Show a) => [a] -> [a] -> Expectation
shouldBeSameAs xs ys = sort xs `shouldBe` sort ys
spec :: Spec
spec = do
describe "fromHeaderBlock" $ do
it "decodes HeaderSet in request" $ do
(c1,h1) <- newContextForDecoding 4096 >>= flip fromHeaderBlock e31
h1 `shouldBeSameAs` e31h
(c2,h2) <- fromHeaderBlock c1 e32
h2 `shouldBeSameAs` e32h
(_,h3) <- fromHeaderBlock c2 e33
h3 `shouldBeSameAs` e33h
it "decodes HeaderSet in response" $ do
(c1,h1) <- newContextForDecoding 256 >>= flip fromHeaderBlock e51
h1 `shouldBeSameAs` e51h
(c2,h2) <- fromHeaderBlock c1 e52
h2 `shouldBeSameAs` e52h
(_,h3) <- fromHeaderBlock c2 e53
h3 `shouldBeSameAs` e53h