http2-1.0.0: test/HTTP2/PrioritySpec.hs
module HTTP2.PrioritySpec where
import Test.Hspec
import Control.Monad (void)
import Network.HTTP2.Priority
import Network.HTTP2.Types
spec :: Spec
spec = do
describe "enqueue & dequeue" $ do
it "enqueue and dequeue frames from Firefox properly" $ do
pt <- newPriorityTree :: IO (PriorityTree Int)
prepare pt 3 $ Priority False 0 201
prepare pt 5 $ Priority False 0 101
prepare pt 7 $ Priority False 0 1
prepare pt 9 $ Priority False 7 1
prepare pt 11 $ Priority False 3 1
enqueue pt 13 $ Priority False 11 32
(sid13,_) <- dequeue pt
sid13 `shouldBe` 13
enqueue pt 15 $ Priority False 3 32
enqueue pt 17 $ Priority False 3 32
enqueue pt 19 $ Priority False 3 32
enqueue pt 21 $ Priority False 3 32
enqueue pt 23 $ Priority False 3 32
enqueue pt 25 $ Priority False 3 32
enqueue pt 27 $ Priority False 11 22
enqueue pt 29 $ Priority False 11 22
enqueue pt 31 $ Priority False 11 22
enqueue pt 33 $ Priority False 5 32
enqueue pt 35 $ Priority False 5 32
enqueue pt 37 $ Priority False 5 32
-- Currently, just checking no errors.
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt
void $ dequeue pt