http2-0.3.0: 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 d41
h1 `shouldBeSameAs` d41h
(c2,h2) <- fromHeaderBlock c1 d42
h2 `shouldBeSameAs` d42h
(_,h3) <- fromHeaderBlock c2 d43
h3 `shouldBeSameAs` d43h
it "decodes HeaderSet in response" $ do
(c1,h1) <- newContextForDecoding 256 >>= flip fromHeaderBlock d61
h1 `shouldBeSameAs` d61h
(c2,h2) <- fromHeaderBlock c1 d62
h2 `shouldBeSameAs` d62h
(_,h3) <- fromHeaderBlock c2 d63
h3 `shouldBeSameAs` d63h