wai-test 1.3.0.5 → 1.3.1
raw patch · 4 files changed
+59/−2 lines, 4 filesdep +hspecdep +wai-testdep ~waiPVP ok
version bump matches the API change (PVP)
Dependencies added: hspec, wai-test
Dependency ranges changed: wai
API changes (from Hackage documentation)
+ Network.Wai.Test: setPath :: Request -> ByteString -> Request
Files
- Network/Wai/Test.hs +13/−0
- test/Network/Wai/TestSpec.hs +32/−0
- test/Spec.hs +1/−0
- wai-test.cabal +13/−2
Network/Wai/Test.hs view
@@ -10,6 +10,7 @@ , SRequest (..) , SResponse (..) , defaultRequest+ , setPath , setRawPathInfo -- * Assertions , assertStatus@@ -30,6 +31,7 @@ import qualified Data.ByteString.Char8 as S8 import Data.Conduit.Blaze (builderToByteString) import Blaze.ByteString.Builder (flush)+import qualified Blaze.ByteString.Builder as B import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Lazy.Char8 as L8 import qualified Network.HTTP.Types as H@@ -86,6 +88,17 @@ , requestBodyLength = KnownLength 0 #endif }++-- | Set whole path (request path + query string).+setPath :: Request -> S8.ByteString -> Request+setPath req path = req {+ pathInfo = segments+ , rawPathInfo = B.toByteString (H.encodePathSegments segments)+ , queryString = query+ , rawQueryString = (H.renderQuery True query)+ }+ where+ (segments, query) = H.decodePath path setRawPathInfo :: Request -> S8.ByteString -> Request setRawPathInfo r rawPinfo =
+ test/Network/Wai/TestSpec.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE OverloadedStrings #-}+module Network.Wai.TestSpec (main, spec) where++import Test.Hspec++import Network.Wai+import Network.Wai.Test++main :: IO ()+main = hspec spec++spec :: Spec+spec = do+ describe "setPath" $ do++ let req = setPath defaultRequest "/foo/bar/baz?foo=23&bar=42&baz"++ it "sets pathInfo" $ do+ pathInfo req `shouldBe` ["foo", "bar", "baz"]++ it "sets rawPathInfo" $ do+ rawPathInfo req `shouldBe` "/foo/bar/baz"++ it "sets queryString" $ do+ queryString req `shouldBe` [("foo", Just "23"), ("bar", Just "42"), ("baz", Nothing)]++ it "sets rawQueryString" $ do+ rawQueryString req `shouldBe` "?foo=23&bar=42&baz"++ context "when path has no query string" $ do+ it "sets rawQueryString to empty string" $ do+ rawQueryString (setPath defaultRequest "/foo/bar/baz") `shouldBe` ""
+ test/Spec.hs view
@@ -0,0 +1,1 @@+{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
wai-test.cabal view
@@ -1,5 +1,5 @@ name: wai-test-version: 1.3.0.5+version: 1.3.1 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -7,7 +7,7 @@ synopsis: Unit test framework (built on HUnit) for WAI applications. category: Testing, Web, Yesod stability: Stable-cabal-version: >= 1.6+cabal-version: >= 1.8 build-type: Simple homepage: http://www.yesodweb.com/book/web-application-interface description: Unit test framework (built on HUnit) for WAI applications.@@ -29,6 +29,17 @@ , network exposed-modules: Network.Wai.Test ghc-options: -Wall++test-suite spec+ type: exitcode-stdio-1.0+ hs-source-dirs: test+ main-is: Spec.hs+ other-modules: Network.Wai.TestSpec+ build-depends: base >= 4 && < 5+ , wai-test+ , wai+ , hspec >= 1.3+ ghc-options: -Wall -Werror source-repository head type: git