@@ -1,6 +1,5 @@
11{-# LANGUAGE OverloadedStrings #-}
22import Test.Hspec
3−import Test.Hspec.QuickCheck
43import Test.Hspec.HUnit ()
54import Test.HUnit hiding (Test)
65
@@ -20,7 +19,7 @@ import Network.Wai.Middleware.Vhost
2019import Network.Wai.Middleware.Autohead
2120import Network.Wai.Middleware.MethodOverride
2221import Network.Wai.Middleware.AcceptOverride
23−import Network.Wai.Middleware.Debug (debug, debugHandle)
22+import Network.Wai.Middleware.Debug (debugHandle)
2423import Codec.Compression.GZip (decompress)
2524
2625import Data.Enumerator (run_, enumList, ($$), Iteratee)
@@ -162,18 +161,18 @@ caseParseRequestBody = run_ t where
162161 result3'
163162
164163toRequest :: S8.ByteString -> S8.ByteString -> SRequest
165−toRequest ctype content = SRequest (Request
164+toRequest ctype content = SRequest defaultRequest
166165 { requestHeaders = [("Content-Type", ctype)]
167166 , requestMethod = "POST"
168167 , rawPathInfo = ""
169168 , rawQueryString = ""
170169 , queryString = []
171− }) (L.fromChunks [content])
170+ } (L.fromChunks [content])
172171
173172toRequest' :: S8.ByteString -> S8.ByteString -> SRequest
174−toRequest' ctype content = SRequest (Request
173+toRequest' ctype content = SRequest defaultRequest
175174 { requestHeaders = [("Content-Type", ctype)]
176− }) (L.fromChunks $ map S.singleton $ S.unpack content)
175+ } (L.fromChunks $ map S.singleton $ S.unpack content)
177176
178177{-
179178caseFindBound :: Assertion
@@ -226,6 +225,7 @@ caseTakeLine = do
226225 Just needle @=? x
227226-}
228227
228+jsonpApp :: Application
229229jsonpApp = jsonp $ const $ return $ responseLBS
230230 status200
231231 [("Content-Type", "application/json")]
@@ -233,38 +233,39 @@ jsonpApp = jsonp $ const $ return $ responseLBS
233233
234234caseJsonp :: Assertion
235235caseJsonp = flip runSession jsonpApp $ do
236− sres1 <- request Request
236+ sres1 <- request defaultRequest
237237 { queryString = [("callback", Just "test")]
238238 , requestHeaders = [("Accept", "text/javascript")]
239239 }
240240 assertContentType "text/javascript" sres1
241241 assertBody "test({\"foo\":\"bar\"})" sres1
242242
243− sres2 <- request Request
243+ sres2 <- request defaultRequest
244244 { queryString = [("call_back", Just "test")]
245245 , requestHeaders = [("Accept", "text/javascript")]
246246 }
247247 assertContentType "application/json" sres2
248248 assertBody "{\"foo\":\"bar\"}" sres2
249249
250− sres3 <- request Request
250+ sres3 <- request defaultRequest
251251 { queryString = [("callback", Just "test")]
252252 , requestHeaders = [("Accept", "text/html")]
253253 }
254254 assertContentType "application/json" sres3
255255 assertBody "{\"foo\":\"bar\"}" sres3
256256
257+gzipApp :: Application
257258gzipApp = gzip True $ const $ return $ responseLBS status200 [] "test"
258259
259260caseGzip :: Assertion
260261caseGzip = flip runSession gzipApp $ do
261− sres1 <- request Request
262+ sres1 <- request defaultRequest
262263 { requestHeaders = [("Accept-Encoding", "gzip")]
263264 }
264265 assertHeader "Content-Encoding" "gzip" sres1
265266 liftIO $ decompress (simpleBody sres1) @?= "test"
266267
267− sres2 <- request Request
268+ sres2 <- request defaultRequest
268269 { requestHeaders = []
269270 }
270271 assertNoHeader "Content-Encoding" sres2
@@ -272,7 +273,7 @@ caseGzip = flip runSession gzipApp $ do
272273
273274caseGzipMSIE :: Assertion
274275caseGzipMSIE = flip runSession gzipApp $ do
275− sres1 <- request Request
276+ sres1 <- request defaultRequest
276277 { requestHeaders =
277278 [ ("Accept-Encoding", "gzip")
278279 , ("User-Agent", "Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)")
@@ -281,6 +282,7 @@ caseGzipMSIE = flip runSession gzipApp $ do
281282 assertNoHeader "Content-Encoding" sres1
282283 liftIO $ simpleBody sres1 @?= "test"
283284
285+vhostApp1, vhostApp2, vhostApp :: Application
284286vhostApp1 = const $ return $ responseLBS status200 [] "app1"
285287vhostApp2 = const $ return $ responseLBS status200 [] "app2"
286288vhostApp = vhost
@@ -288,77 +290,85 @@ vhostApp = vhost
288290 ]
289291 vhostApp2
290292
293+caseVhost :: Assertion
291294caseVhost = flip runSession vhostApp $ do
292− sres1 <- request Request
295+ sres1 <- request defaultRequest
293296 { serverName = "foo.com"
294297 }
295298 assertBody "app1" sres1
296299
297− sres2 <- request Request
300+ sres2 <- request defaultRequest
298301 { serverName = "bar.com"
299302 }
300303 assertBody "app2" sres2
301304
305+autoheadApp :: Application
302306autoheadApp = autohead $ const $ return $ responseLBS status200
303307 [("Foo", "Bar")] "body"
304308
309+caseAutohead :: Assertion
305310caseAutohead = flip runSession autoheadApp $ do
306− sres1 <- request Request
311+ sres1 <- request defaultRequest
307312 { requestMethod = "GET"
308313 }
309314 assertHeader "Foo" "Bar" sres1
310315 assertBody "body" sres1
311316
312− sres1 <- request Request
317+ sres2 <- request defaultRequest
313318 { requestMethod = "HEAD"
314319 }
315− assertHeader "Foo" "Bar" sres1
316− assertBody "" sres1
320+ assertHeader "Foo" "Bar" sres2
321+ assertBody "" sres2
317322
323+moApp :: Application
318324moApp = methodOverride $ \req -> return $ responseLBS status200
319325 [("Method", requestMethod req)] ""
320326
327+caseMethodOverride :: Assertion
321328caseMethodOverride = flip runSession moApp $ do
322− sres1 <- request Request
329+ sres1 <- request defaultRequest
323330 { requestMethod = "GET"
324331 , queryString = []
325332 }
326333 assertHeader "Method" "GET" sres1
327334
328− sres2 <- request Request
335+ sres2 <- request defaultRequest
329336 { requestMethod = "POST"
330337 , queryString = []
331338 }
332339 assertHeader "Method" "POST" sres2
333340
334− sres3 <- request Request
341+ sres3 <- request defaultRequest
335342 { requestMethod = "POST"
336343 , queryString = [("_method", Just "PUT")]
337344 }
338345 assertHeader "Method" "PUT" sres3
339346
347+aoApp :: Application
340348aoApp = acceptOverride $ \req -> return $ responseLBS status200
341349 [("Accept", fromMaybe "" $ lookup "Accept" $ requestHeaders req)] ""
342350
351+caseAcceptOverride :: Assertion
343352caseAcceptOverride = flip runSession aoApp $ do
344− sres1 <- request Request
353+ sres1 <- request defaultRequest
345354 { queryString = []
346355 , requestHeaders = [("Accept", "foo")]
347356 }
348357 assertHeader "Accept" "foo" sres1
349358
350− sres2 <- request Request
359+ sres2 <- request defaultRequest
351360 { queryString = []
352361 , requestHeaders = [("Accept", "bar")]
353362 }
354363 assertHeader "Accept" "bar" sres2
355364
356− sres3 <- request Request
365+ sres3 <- request defaultRequest
357366 { queryString = [("_accept", Just "baz")]
358367 , requestHeaders = [("Accept", "bar")]
359368 }
360369 assertHeader "Accept" "baz" sres3
361370
371+caseDalvikMultipart :: Assertion
362372caseDalvikMultipart = do
363373 let headers =
364374 [ ("content-length", "12098")
@@ -378,10 +388,10 @@ caseDalvikMultipart = do
378388 , ("HTTP_VERSION", "HTTP/1.1")
379389 , ("REQUEST_PATH", "/")
380390 ]
381− let request = Request
391+ let request' = defaultRequest
382392 { requestHeaders = headers
383393 }
384− (params, files) <- run_ $ enumFile "test/dalvik-request" $$ parseRequestBody lbsSink request
394+ (params, files) <- run_ $ enumFile "test/dalvik-request" $$ parseRequestBody lbsSink request'
385395 lookup "scannedTime" params @?= Just "1.298590056748E9"
386396 lookup "geoLong" params @?= Just "0"
387397 lookup "geoLat" params @?= Just "0"
@@ -396,7 +406,7 @@ caseDebugRequestBody = do
396406
397407 let qs = "?foo=bar&baz=bin"
398408 flip runSession (debugApp $ getOutput qs) $ do
399− assertStatus 200 =<< request Request
409+ assertStatus 200 =<< request defaultRequest
400410 { requestMethod = "GET"
401411 , queryString = map (\(k,v) -> (k, Just v)) params
402412 , rawQueryString = qs
@@ -406,9 +416,9 @@ caseDebugRequestBody = do
406416 where
407417 params = [("foo", "bar"), ("baz", "bin")]
408418 postOutput = T.pack $ "POST \nAccept: \nPOST " ++ (show params)
409− getOutput qs = T.pack $ "GET /location" ++ "\nAccept: \nGET " ++ (show params) -- \nAccept: \n" ++ (show params)
419+ getOutput _qs = T.pack $ "GET /location" ++ "\nAccept: \nGET " ++ (show params) -- \nAccept: \n" ++ (show params)
410420
411− debugApp output = debugHandle (\t -> liftIO $ assertEqual "debug" output t) $ \req -> do
421+ debugApp output = debugHandle (\t -> liftIO $ assertEqual "debug" output t) $ \_req -> do
412422 return $ responseLBS status200 [ ] ""
413423 {-debugApp = debug $ \req -> do-}
414424 {-return $ responseLBS status200 [ ] ""-}