on master help sign in
wai-mega tests
commitee7a0b4ad94f7699870bb8779ea7f93ef9e1fc18 authorGreg Weber <greg@gregweber.info> dateSat 26 Nov 2011, 07:57 (15 years ago) parent4d917bc
15 files changed+90−34
test/a+1 test/main.hs+8 test/requests+1 test/test+1 test/wai-app-static+1 test/wai-extra+1 wai-app-static/tests/runtests.hs → wai-app-static/test/WaiAppStaticTest.hs+8−7 wai-app-static/tests/a/b → wai-app-static/test/a/b wai-app-static/tests.hs+5 wai-app-static/wai-app-static.cabal+2−2 wai-extra/runtests.hs → wai-extra/test/WaiExtraTest.hs+20−19 wai-extra/test/dalvik-request → wai-extra/test/requests/dalvik-request wai-extra/tests.hs+5 wai-extra/wai-extra.cabal+5−5 wai-mega.cabal+32−1
test/anew file+1
@@ -0,0 +1 @@
1+../wai-app-static/test/a
test/main.hsnew file+8
@@ -0,0 +1,8 @@
1+import qualified WaiAppStaticTest
2+import qualified WaiExtraTest
3+import Test.Hspec.Monadic
4+
5+main :: IO a
6+main = hspecX $ do
7+ WaiAppStaticTest.specs
8+ WaiExtraTest.specs
test/requestsnew file+1
@@ -0,0 +1 @@
1+../wai-extra/test/requests
test/testnew file+1
@@ -0,0 +1 @@
1+../wai-app-static/test
test/wai-app-staticnew file+1
@@ -0,0 +1 @@
1+../wai-app-static/test
test/wai-extranew file+1
@@ -0,0 +1 @@
1+../wai-extra/test
wai-app-static/tests/runtests.hs → wai-app-static/test/WaiAppStaticTest.hsrenamed+8−7
@@ -1,4 +1,6 @@
11{-# LANGUAGE OverloadedStrings, NoMonomorphismRestriction #-}
2+module WaiAppStaticTest (specs) where
3+
24import Network.Wai.Application.Static
35
46import Test.Hspec.Monadic
@@ -43,11 +45,10 @@ setRawPathInfo r rawPinfo =
4345 let pInfo = T.split (== '/') $ TE.decodeUtf8 rawPinfo
4446 in r { rawPathInfo = rawPinfo, pathInfo = pInfo }
4547
46−
47−main :: IO a
48−main = hspecX $ do
49− let webApp = flip runSession $ staticApp defaultWebAppSettings {ssFolder = fileSystemLookup "tests"}
50− let fileServerApp = flip runSession $ staticApp defaultFileServerSettings {ssFolder = fileSystemLookup "tests"}
48+specs :: Specs
49+specs = do
50+ let webApp = flip runSession $ staticApp defaultWebAppSettings {ssFolder = fileSystemLookup "test"}
51+ let fileServerApp = flip runSession $ staticApp defaultFileServerSettings {ssFolder = fileSystemLookup "test"}
5152
5253 let etag = "1B2M2Y8AsgTpgAmY7PhCfg=="
5354 let file = "a/b"
@@ -82,7 +83,7 @@ main = hspecX $ do
8283 assertHeader "Location" "../../a/b/c" req
8384
8485 let absoluteApp = flip runSession $ staticApp $ defaultWebAppSettings {
85− ssFolder = fileSystemLookup "tests", ssMkRedirect = \_ u -> S8.append "http://www.example.com" u
86+ ssFolder = fileSystemLookup "test", ssMkRedirect = \_ u -> S8.append "http://www.example.com" u
8687 }
8788 it "301 redirect when multiple slashes" $ absoluteApp $
8889 flip mapM_ ["/a//b/c", "a//b/c"] $ \path -> do
@@ -127,7 +128,7 @@ main = hspecX $ do
127128
128129 describe "fileServerApp" $ do
129130 let fileDate = do
130− stat <- liftIO $ getFileStatus $ "tests/" ++ file
131+ stat <- liftIO $ getFileStatus $ "test/" ++ file
131132 return $ formatHTTPDate . epochTimeToHTTPDate $ modificationTime stat
132133
133134 it "directory listing for index" $ fileServerApp $ do
wai-app-static/tests/a/b → wai-app-static/test/a/brenamed

The content is the same.

wai-app-static/tests.hsnew file+5
@@ -0,0 +1,5 @@
1+import WaiAppStaticTest (specs)
2+import Test.Hspec.Monadic
3+
4+main :: IO a
5+main = hspecX specs
wai-app-static/wai-app-static.cabal+2−2
@@ -47,8 +47,8 @@ library
4747 cpp-options: -DPRINT
4848
4949test-suite runtests
50− hs-source-dirs: tests
51− main-is: runtests.hs
50+ hs-source-dirs: test
51+ main-is: ../tests.hs
5252 type: exitcode-stdio-1.0
5353
5454 build-depends: base >= 4 && < 5
wai-extra/runtests.hs → wai-extra/test/WaiExtraTest.hsrenamed+20−19
@@ -1,5 +1,7 @@
11{-# LANGUAGE OverloadedStrings #-}
2−import Test.Hspec
2+module WaiExtraTest (specs) where
3+
4+import Test.Hspec.Monadic
35import Test.Hspec.HUnit ()
46import Test.HUnit hiding (Test)
57
@@ -28,13 +30,13 @@ import Control.Monad.IO.Class (liftIO)
2830import Data.Maybe (fromMaybe)
2931import Network.HTTP.Types (parseSimpleQuery, status200)
3032
31−main :: IO ()
32−main = hspecX $ do
33− describe "Network.Wai.Parse"
34− [ it "parseQueryString" caseParseQueryString
35− , it "parseQueryString with question mark" caseParseQueryStringQM
36− , it "parseHttpAccept" caseParseHttpAccept
37− , it "parseRequestBody" caseParseRequestBody
33+specs :: Specs
34+specs = do
35+ describe "Network.Wai.Parse" $ do
36+ it "parseQueryString" caseParseQueryString
37+ it "parseQueryString with question mark" caseParseQueryStringQM
38+ it "parseHttpAccept" caseParseHttpAccept
39+ it "parseRequestBody" caseParseRequestBody
3840 {-
3941 , it "findBound" caseFindBound
4042 , it "sinkTillBound" caseSinkTillBound
@@ -42,16 +44,15 @@ main = hspecX $ do
4244 , it "killCRLF" caseKillCRLF
4345 , it "takeLine" caseTakeLine
4446 -}
45− , it "jsonp" caseJsonp
46− , it "gzip" caseGzip
47− , it "gzip not for MSIE" caseGzipMSIE
48− , it "vhost" caseVhost
49− , it "autohead" caseAutohead
50− , it "method override" caseMethodOverride
51− , it "accept override" caseAcceptOverride
52− , it "dalvik multipart" caseDalvikMultipart
53− , it "debug request body" caseDebugRequestBody
54− ]
47+ it "jsonp" caseJsonp
48+ it "gzip" caseGzip
49+ it "gzip not for MSIE" caseGzipMSIE
50+ it "vhost" caseVhost
51+ it "autohead" caseAutohead
52+ it "method override" caseMethodOverride
53+ it "accept override" caseAcceptOverride
54+ it "dalvik multipart" caseDalvikMultipart
55+ it "debug request body" caseDebugRequestBody
5556
5657caseParseQueryString :: Assertion
5758caseParseQueryString = do
@@ -393,7 +394,7 @@ caseDalvikMultipart = do
393394 let request' = defaultRequest
394395 { requestHeaders = headers
395396 }
396− (params, files) <- run_ $ enumFile "test/dalvik-request" $$ parseRequestBody lbsSink request'
397+ (params, files) <- run_ $ enumFile "test/requests/dalvik-request" $$ parseRequestBody lbsSink request'
397398 lookup "scannedTime" params @?= Just "1.298590056748E9"
398399 lookup "geoLong" params @?= Just "0"
399400 lookup "geoLat" params @?= Just "0"
wai-extra/test/dalvik-request → wai-extra/test/requests/dalvik-requestrenamed

Binary file not shown.

wai-extra/tests.hsnew file+5
@@ -0,0 +1,5 @@
1+import Test.Hspec.Monadic
2+import qualified WaiExtraTest
3+
4+main :: IO ()
5+main = hspecX WaiExtraTest.specs
wai-extra/wai-extra.cabal+5−5
@@ -12,8 +12,8 @@ Build-Type: Simple
1212Cabal-Version: >=1.8
1313Stability: Stable
1414extra-source-files:
15− runtests.hs
16− test/dalvik-request
15+ tests.hs
16+ test/requests/dalvik-request
1717 test/json
1818 test/test.html
1919 test/sample.hs
@@ -52,9 +52,9 @@ Library
5252 ghc-options: -Wall
5353
5454
55−test-suite runtests
56− hs-source-dirs: .
57− main-is: runtests.hs
55+test-suite tests
56+ hs-source-dirs: test
57+ main-is: ../tests.hs
5858 type: exitcode-stdio-1.0
5959
6060 build-depends: base >= 4 && < 5
wai-mega.cabal+32−1
@@ -9,7 +9,7 @@ Maintainer: michael@snoyman.com
99Homepage: https://github.com/yesodweb/wai
1010Category: Web
1111Build-Type: Simple
12−Cabal-Version: >=1.6
12+Cabal-Version: >= 1.8
1313Stability: Stable
1414
1515Source-repository head
@@ -138,3 +138,34 @@ Library
138138 Network.Wai.Parse
139139
140140 ghc-options: -Wall
141+
142+test-suite test
143+ hs-source-dirs:
144+ test
145+ test/wai-app-static
146+ test/wai-extra
147+
148+ main-is: main.hs
149+ type: exitcode-stdio-1.0
150+
151+ build-depends: base >= 4 && < 5
152+ , wai-mega
153+ , hspec >= 0.8 && < 0.10
154+ , HUnit
155+ , unix-compat >= 0.2 && < 0.3
156+ , time >= 1.1.4 && < 1.4
157+ , old-locale >= 1.0.0.2 && < 1.1
158+ , http-date
159+ , http-types
160+ , network
161+ , bytestring
162+ , text
163+ , transformers
164+ , enumerator
165+ , zlib
166+ , directory
167+ , zlib-bindings
168+ , blaze-builder-enumerator >= 0.2 && < 0.3
169+ , blaze-builder >= 0.2.1.4 && < 0.4
170+ , zlib-enum
171+ , data-default