Encode empty paths correctly #730
This commit is contained in:
parent
cbbeb3b7f6
commit
60526676e5
@ -539,7 +539,9 @@ request reqBuilder = do
|
|||||||
, rbdGets = []
|
, rbdGets = []
|
||||||
, rbdHeaders = []
|
, rbdHeaders = []
|
||||||
}
|
}
|
||||||
let path = TE.decodeUtf8 $ Builder.toByteString $ H.encodePathSegments rbdPath
|
let path
|
||||||
|
| null rbdPath = "/"
|
||||||
|
| otherwise = TE.decodeUtf8 $ Builder.toByteString $ H.encodePathSegments rbdPath
|
||||||
|
|
||||||
-- expire cookies and filter them for the current path. TODO: support max age
|
-- expire cookies and filter them for the current path. TODO: support max age
|
||||||
currentUtc <- liftIO getCurrentTime
|
currentUtc <- liftIO getCurrentTime
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import Data.Text (Text)
|
|||||||
import Data.Monoid ((<>))
|
import Data.Monoid ((<>))
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Network.Wai (pathInfo)
|
import Network.Wai (pathInfo)
|
||||||
|
import Data.Maybe (fromMaybe)
|
||||||
|
|
||||||
import Data.ByteString.Lazy.Char8 ()
|
import Data.ByteString.Lazy.Char8 ()
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map as Map
|
||||||
@ -122,6 +123,16 @@ main = hspec $ do
|
|||||||
get ("/dynamic2/שלום" :: Text)
|
get ("/dynamic2/שלום" :: Text)
|
||||||
statusIs 200
|
statusIs 200
|
||||||
bodyEquals "שלום"
|
bodyEquals "שלום"
|
||||||
|
describe "cookies" $ yesodSpec cookieApp $ do
|
||||||
|
yit "should send the cookie #730" $ do
|
||||||
|
get ("/" :: Text)
|
||||||
|
statusIs 200
|
||||||
|
post ("/cookie/foo" :: Text)
|
||||||
|
statusIs 302
|
||||||
|
get ("/" :: Text)
|
||||||
|
statusIs 200
|
||||||
|
printBody
|
||||||
|
bodyContains "Foo"
|
||||||
|
|
||||||
instance RenderMessage LiteApp FormMessage where
|
instance RenderMessage LiteApp FormMessage where
|
||||||
renderMessage _ _ = defaultFormMessage
|
renderMessage _ _ = defaultFormMessage
|
||||||
@ -151,3 +162,12 @@ app = liteApp $ do
|
|||||||
case mfoo of
|
case mfoo of
|
||||||
FormSuccess (foo, _) -> return $ toHtml foo
|
FormSuccess (foo, _) -> return $ toHtml foo
|
||||||
_ -> defaultLayout widget
|
_ -> defaultLayout widget
|
||||||
|
|
||||||
|
cookieApp :: LiteApp
|
||||||
|
cookieApp = liteApp $ do
|
||||||
|
dispatchTo $ fromMaybe "no message available" <$> getMessage
|
||||||
|
onStatic "cookie" $ do
|
||||||
|
onStatic "foo" $ dispatchTo $ do
|
||||||
|
setMessage "Foo"
|
||||||
|
redirect ("/cookie/home" :: Text)
|
||||||
|
return ()
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-test
|
name: yesod-test
|
||||||
version: 1.2.1.4
|
version: 1.2.1.5
|
||||||
license: MIT
|
license: MIT
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Nubis <nubis@woobiz.com.ar>
|
author: Nubis <nubis@woobiz.com.ar>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user