@@ -13,6 +13,7 @@ import Control.Arrow
14import Network.Wai.Middleware.Jsonp
14import Network.Wai.Middleware.Jsonp
15import Network.Wai.Middleware.Gzip
15import Network.Wai.Middleware.Gzip
16+import Network.Wai.Middleware.Vhost
16import Codec.Compression.GZip (decompress)
17import Codec.Compression.GZip (decompress)
18import Data.Enumerator (run_, enumList, ($$))
19import Data.Enumerator (run_, enumList, ($$))
@@ -34,6 +35,7 @@ testSuite = testGroup "Network.Wai.Parse"
34 , testCase "takeLine" caseTakeLine
35 , testCase "takeLine" caseTakeLine
35 , testCase "jsonp" caseJsonp
36 , testCase "jsonp" caseJsonp
36 , testCase "gzip" caseGzip
37 , testCase "gzip" caseGzip
38+ , testCase "vhost" caseVhost
39caseParseQueryString :: Assertion
41caseParseQueryString :: Assertion
@@ -242,3 +244,21 @@ caseGzip = flip runSession gzipApp $ do
243 assertNoHeader "Content-Encoding" sres2
245 assertNoHeader "Content-Encoding" sres2
244 assertBody "test" sres2
246 assertBody "test" sres2
248+vhostApp1 = const $ return $ responseLBS status200 [] "app1"
249+vhostApp2 = const $ return $ responseLBS status200 [] "app2"
251+ [ ((== "foo.com") . serverName, vhostApp1)
255+caseVhost = flip runSession vhostApp $ do
256+ sres1 <- request Request
257+ { serverName = "foo.com"
259+ assertBody "app1" sres1
261+ sres2 <- request Request
262+ { serverName = "bar.com"
264+ assertBody "app2" sres2