From d166cbc37120a4d4d1cecdcdff50ed71c19802e6 Mon Sep 17 00:00:00 2001 From: Joe Nelson Date: Sun, 7 Sep 2014 12:54:30 -0700 Subject: [PATCH] Test range truncation and single-item requests --- test/Feature/RangeSpec.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/Feature/RangeSpec.hs b/test/Feature/RangeSpec.hs index cf4667325..dbe8df738 100644 --- a/test/Feature/RangeSpec.hs +++ b/test/Feature/RangeSpec.hs @@ -42,6 +42,22 @@ spec = around appWithFixture $ , matchHeaders = [("Content-Range", "*/0")] } + it "allows one-item requests" $ do + r <- request methodGet "/items" + (rangeHdrs $ ByteRangeFromTo 0 0) "" + liftIO $ do + simpleHeaders r `shouldSatisfy` + matchHeader "Content-Range" "0-0/15" + simpleStatus r `shouldBe` partialContent206 + + it "handles ranges beyond collection length via truncation" $ do + r <- request methodGet "/items" + (rangeHdrs $ ByteRangeFromTo 10 100) "" + liftIO $ do + simpleHeaders r `shouldSatisfy` + matchHeader "Content-Range" "10-14/15" + simpleStatus r `shouldBe` partialContent206 + context "of invalid range" $ do it "fails with 416 for offside range" $ request methodGet "/items"