on master help sign in
fix if-modified test case, but still fails
9b42d06Greg Weber
tests/runtests.hs+8−4
@@ -13,6 +13,9 @@ import qualified Data.Text.Encoding as TE
13import System.PosixCompat.Files (getFileStatus, modificationTime)
13import System.PosixCompat.Files (getFileStatus, modificationTime)
14import System.IO (stderr, hPutStrLn)
14import System.IO (stderr, hPutStrLn)
15
15
16+import Network.HTTP.Date
17+{-import System.Locale (defaultTimeLocale)-}
18+{-import Data.Time.Format (formatTime)-}
16
19
17import Network.Wai
20import Network.Wai
18import Network.Wai.Test
21import Network.Wai.Test
@@ -33,7 +36,7 @@ defRequest = Request {
33, httpVersion = H.http11
36, httpVersion = H.http11
34, serverPort = 80
37, serverPort = 80
35, isSecure = False
38, isSecure = False
36−, remoteHost = Sock.SockAddrUnix "/dev/null"
39+, remoteHost = Sock.SockAddrInet 1 2
37}
40}
38
41
39setRawPathInfo :: Request -> S8.ByteString -> Request
42setRawPathInfo :: Request -> S8.ByteString -> Request
@@ -143,10 +146,11 @@ main = hspecX $ do
143 assertNoHeader "Cache-Control" req
146 assertNoHeader "Cache-Control" req
144
147
145 it "304 when if-modified-since matches" $ fileServerApp $ do
148 it "304 when if-modified-since matches" $ fileServerApp $ do
149+ -- formatTime defaultTimeLocale format $
150+ -- let format = "%a, %d %b %Y %X %Z"
146− stat <- liftIO $ getFileStatus file
151+ stat <- liftIO $ getFileStatus $ "tests/" ++ file
147 req <- request statFile {
152 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)]
150 }
154 }
151 assertStatus 304 req
155 assertStatus 304 req
152 assertNoHeader "Cache-Control" req
156 assertNoHeader "Cache-Control" req
wai-app-static.cabal+4
@@ -34,6 +34,7 @@ library
34 , blaze-builder >= 0.2.1.4 && < 0.4
34 , blaze-builder >= 0.2.1.4 && < 0.4
35 , base64-bytestring >= 0.1 && < 0.2
35 , base64-bytestring >= 0.1 && < 0.2
36 , cryptohash >= 0.7 && < 0.8
36 , cryptohash >= 0.7 && < 0.8
37+ , http-date
37 exposed-modules: Network.Wai.Application.Static
38 exposed-modules: Network.Wai.Application.Static
38 ghc-options: -Wall
39 ghc-options: -Wall
39 extensions: CPP
40 extensions: CPP
@@ -50,6 +51,9 @@ test-suite runtests
50 , hspec >= 0.6
51 , hspec >= 0.6
51 , HUnit
52 , HUnit
52 , unix-compat >= 0.2 && < 0.3
53 , unix-compat >= 0.2 && < 0.3
54+ , time >= 1.1.4 && < 1.3
55+ , old-locale >= 1.0.0.2 && < 1.1
56+ , http-date
53 , Cabal
57 , Cabal
54 , wai-app-static >= 0.3
58 , wai-app-static >= 0.3
55 , wai-test
59 , wai-test