packages feed

snap-core 0.9.3.1 → 0.9.4.0

raw patch · 4 files changed

+36/−16 lines, 4 filesdep +hashable

Dependencies added: hashable

Files

snap-core.cabal view
@@ -1,5 +1,5 @@ name:           snap-core-version:        0.9.3.1+version:        0.9.4.0 synopsis:       Snap: A Haskell Web Framework (core interfaces and types)  description:@@ -141,6 +141,7 @@     directory                 >= 1       && < 2,     enumerator                >= 0.4.15  && < 0.5,     filepath                  >= 1.1     && < 2.0,+    hashable                  >= 1.1     && < 1.2,     HUnit                     >= 1.2     && < 2,     MonadCatchIO-transformers >= 0.2.1   && < 0.4,     mtl                       >= 2.0     && < 2.2,
src/Snap/Internal/Http/Types.hs view
@@ -289,6 +289,8 @@       -- | The parameter mapping decoded from the POST body. Note that Snap       -- only auto-decodes POST request bodies when the request's       -- @Content-Type@ is @application/x-www-form-urlencoded@.+      -- For @multipart/form-data@ use 'Snap.Util.FileUploads.handleFileUploads'+      -- to decode the POST request and fill this mapping.     , rqPostParams     :: Params     } 
src/Snap/Internal/Parsing.hs view
@@ -8,27 +8,27 @@ ------------------------------------------------------------------------------ import           Blaze.ByteString.Builder import           Control.Applicative-import           Control.Arrow (first, second)+import           Control.Arrow                 (first, second) import           Control.Monad import           Data.Attoparsec.Char8 import           Data.Bits-import           Data.ByteString.Char8 (ByteString)-import qualified Data.ByteString.Char8 as S-import           Data.ByteString.Internal (c2w, w2c)-import qualified Data.ByteString.Lazy.Char8 as L-import qualified Data.CaseInsensitive as CI-import           Data.CaseInsensitive (CI)-import           Data.Char hiding (isDigit, isSpace)+import           Data.ByteString.Char8         (ByteString)+import qualified Data.ByteString.Char8         as S+import           Data.ByteString.Internal      (c2w, w2c)+import qualified Data.ByteString.Lazy.Char8    as L+import           Data.CaseInsensitive          (CI)+import qualified Data.CaseInsensitive          as CI+import           Data.Char                     hiding (isDigit, isSpace) import           Data.Int-import           Data.List (intersperse)-import           Data.Map (Map)-import qualified Data.Map as Map+import           Data.List                     (intersperse)+import           Data.Map                      (Map)+import qualified Data.Map                      as Map import           Data.Maybe import           Data.Monoid import           Data.Word import           GHC.Exts-import           GHC.Word (Word8(..))-import           Prelude hiding (head, take, takeWhile)+import           GHC.Word                      (Word8 (..))+import           Prelude                       hiding (head, take, takeWhile) ------------------------------------------------------------------------------ import           Snap.Internal.Http.Types import           Snap.Internal.Parsing.FastSet (FastSet)
test/suite/Snap/Core/Tests.hs view
@@ -22,7 +22,8 @@ import           Data.IORef import           Data.Maybe (isJust) import           Data.Monoid-import           Data.Text ()+import           Data.Text (Text)+import qualified Data.Text.Encoding as T import           Data.Text.Lazy () import qualified Data.Map as Map import           Prelude hiding (catch)@@ -69,7 +70,9 @@         , testEvalSnap         , testLocalRequest         , testRedirect-        , testBracketSnap ]+        , testBracketSnap+        , testPathArgs+        ]   expectSpecificException :: Exception e => e -> IO a -> IO ()@@ -671,3 +674,17 @@     assertEqual "redirect path" (Just "/bar/foo") $ getHeader "Location" rsp2     assertEqual "redirect status" 307 $ rspStatus rsp2     assertEqual "status description" "Temporary Redirect" $ rspStatusReason rsp2+++testPathArgs :: Test+testPathArgs = testCase "types/pathArgs" $ do+    (_, rsp) <- goPath "%e4%b8%ad" m+    b <- getBody rsp+    assertEqual "pathargs url- and utf8-decodes" "ok" b++  where+    m = pathArg f++    f x = if x == ("\x4e2d" :: Text)+            then writeBS "ok"+            else writeBS $ "not ok: " `mappend` T.encodeUtf8 x