@@ -13,6 +13,9 @@ import qualified Data.Text.Encoding as TE
1313import System.PosixCompat.Files (getFileStatus, modificationTime)
1414import System.IO (stderr, hPutStrLn)
1515
16+import Network.HTTP.Date
17+{-import System.Locale (defaultTimeLocale)-}
18+{-import Data.Time.Format (formatTime)-}
1619
1720import Network.Wai
1821import Network.Wai.Test
@@ -33,7 +36,7 @@ defRequest = Request {
3336, httpVersion = H.http11
3437, serverPort = 80
3538, isSecure = False
36−, remoteHost = Sock.SockAddrUnix "/dev/null"
39+, remoteHost = Sock.SockAddrInet 1 2
3740}
3841
3942setRawPathInfo :: Request -> S8.ByteString -> Request
@@ -143,10 +146,11 @@ main = hspecX $ do
143146 assertNoHeader "Cache-Control" req
144147
145148 it "304 when if-modified-since matches" $ fileServerApp $ do
146− stat <- liftIO $ getFileStatus file
149+ -- formatTime defaultTimeLocale format $
150+ -- let format = "%a, %d %b %Y %X %Z"
151+ stat <- liftIO $ getFileStatus $ "tests/" ++ file
147152 req <- request statFile {
148− -- TODO: need actual time String
149− requestHeaders = [("If-Modified-Since", S8.pack $ show $ modificationTime stat)]
153+ requestHeaders = [("If-Modified-Since", formatHTTPDate . epochTimeToHTTPDate $ modificationTime stat)]
150154 }
151155 assertStatus 304 req
152156 assertNoHeader "Cache-Control" req