@@ -14,6 +14,7 @@ import Network.HTTP.Date
1414
1515import Network.Wai
1616import Network.Wai.Test
17+import Network.Wai.UrlMap
1718
1819import Control.Monad.IO.Class (liftIO)
1920import Network.Mime
@@ -123,3 +124,15 @@ spec = do
123124 assertStatus 304 req
124125 assertNoHeader "Cache-Control" req
125126
127+ context "301 redirect to add a trailing slash on directories if missing" $ do
128+ it "works at the root" $ fileServerApp $ do
129+ req <- request (setRawPathInfo defRequest "a")
130+ assertStatus 301 req
131+ assertHeader "Location" "../a/" req
132+
133+ let urlMapApp = flip runSession $ mapUrls $
134+ mount "subPath" (staticApp $ defaultFileServerSettings "test")
135+ it "works in conjunction with UrlMap at the root of the file server" $ urlMapApp $ do
136+ req <- request (setRawPathInfo defRequest "subPath")
137+ assertStatus 301 req
138+ assertHeader "Location" "../subPath/" req