From 09d26f8099a1f8de2e5a00679eba2776fb0fdd64 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 6 Dec 2011 12:53:21 +0200 Subject: [PATCH] Adding failing test case: headers after redirect --- yesod-core/test/YesodCoreTest/Exceptions.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/yesod-core/test/YesodCoreTest/Exceptions.hs b/yesod-core/test/YesodCoreTest/Exceptions.hs index a65a6c28..0ebda270 100644 --- a/yesod-core/test/YesodCoreTest/Exceptions.hs +++ b/yesod-core/test/YesodCoreTest/Exceptions.hs @@ -7,11 +7,13 @@ import Test.Hspec import Test.Hspec.HUnit () import Yesod.Core hiding (Request) +import Network.Wai import Network.Wai.Test data Y = Y mkYesod "Y" [parseRoutes| / RootR GET +/redirect RedirR GET |] instance Yesod Y where @@ -22,9 +24,15 @@ instance Yesod Y where getRootR :: Handler () getRootR = error "FOOBAR" >> return () +getRedirR :: Handler () +getRedirR = do + setHeader "foo" "bar" + redirect RedirectPermanent RootR + exceptionsTest :: [Spec] exceptionsTest = describe "Test.Exceptions" [ it "500" case500 + , it "redirect keeps headers" caseRedirect ] runner :: Session () -> IO () @@ -35,3 +43,9 @@ case500 = runner $ do res <- request defaultRequest assertStatus 500 res assertBody "FOOBAR" res + +caseRedirect :: IO () +caseRedirect = runner $ do + res <- request defaultRequest { pathInfo = ["redirect"] } + assertStatus 301 res + assertHeader "foo" "bar" res