From 5ee5301ce87886b3d2c662353fa18d95867d93c7 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 27 Jan 2014 17:24:50 +0200 Subject: [PATCH] Added test cases for #658 notCaught 4 and 5 --- .../test/YesodCoreTest/ErrorHandling.hs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/yesod-core/test/YesodCoreTest/ErrorHandling.hs b/yesod-core/test/YesodCoreTest/ErrorHandling.hs index 3d802692..333d2b89 100644 --- a/yesod-core/test/YesodCoreTest/ErrorHandling.hs +++ b/yesod-core/test/YesodCoreTest/ErrorHandling.hs @@ -27,6 +27,8 @@ mkYesod "App" [parseRoutes| -- https://github.com/yesodweb/yesod/issues/658 /builder BuilderR GET +/file-bad-len FileBadLenR GET +/file-bad-name FileBadNameR GET |] overrideStatus = mkStatus 15 "OVERRIDE" @@ -80,6 +82,12 @@ getOverrideStatusR = invalidArgs ["OVERRIDE"] getBuilderR :: Handler TypedContent getBuilderR = return $ TypedContent "ignored" $ ContentBuilder (error "builder-3.14159") Nothing +getFileBadLenR :: Handler TypedContent +getFileBadLenR = return $ TypedContent "ignored" $ ContentFile "yesod-core.cabal" (error "filebadlen") + +getFileBadNameR :: Handler TypedContent +getFileBadNameR = return $ TypedContent "ignored" $ ContentFile (error "filebadname") Nothing + errorHandlingTest :: Spec errorHandlingTest = describe "Test.ErrorHandling" $ do it "says not found" caseNotFound @@ -89,6 +97,8 @@ errorHandlingTest = describe "Test.ErrorHandling" $ do it "error in body, no eval == 200" caseErrorInBodyNoEval it "can override status code" caseOverrideStatus it "builder" caseBuilder + it "file with bad len" caseFileBadLen + it "file with bad name" caseFileBadName runner :: Session () -> IO () runner f = toWaiApp App >>= runSession f @@ -153,3 +163,15 @@ caseBuilder = runner $ do res <- request defaultRequest { pathInfo = ["builder"] } assertStatus 500 res assertBodyContains "builder-3.14159" res + +caseFileBadLen :: IO () +caseFileBadLen = runner $ do + res <- request defaultRequest { pathInfo = ["file-bad-len"] } + assertStatus 500 res + assertBodyContains "filebadlen" res + +caseFileBadName :: IO () +caseFileBadName = runner $ do + res <- request defaultRequest { pathInfo = ["file-bad-name"] } + assertStatus 500 res + assertBodyContains "filebadname" res