@@ -14,6 +14,7 @@ main = defaultMain [testSuite]
14testSuite :: Test
14testSuite :: Test
15testSuite = testGroup "Network.Wai.Parse"
15testSuite = testGroup "Network.Wai.Parse"
16 [ testCase "parseQueryString" caseParseQueryString
16 [ testCase "parseQueryString" caseParseQueryString
17+ , testCase "parseQueryString with question mark" caseParseQueryStringQM
17 , testCase "parseCookies" caseParseCookies
18 , testCase "parseCookies" caseParseCookies
18 , testCase "parseHttpAccept" caseParseHttpAccept
19 , testCase "parseHttpAccept" caseParseHttpAccept
19 , testCase "parseRequestBody" caseParseRequestBody
20 , testCase "parseRequestBody" caseParseRequestBody
@@ -37,6 +38,23 @@ caseParseQueryString = do
37 go [("/", "")] "%2f"
38 go [("/", "")] "%2f"
38 go [("foo bar", "")] "foo+bar"
39 go [("foo bar", "")] "foo+bar"
41+caseParseQueryStringQM :: Assertion
42+caseParseQueryStringQM = do
44+ map (S8.pack *** S8.pack) l
45+ @=? parseQueryString (S8.pack $ '?' : r)
48+ go [("foo", "")] "foo"
49+ go [("foo", "bar")] "foo=bar"
50+ go [("foo", "bar"), ("baz", "bin")] "foo=bar&baz=bin"
52+ go [("%1Q", "")] "%1Q"
56+ go [("foo bar", "")] "foo+bar"
40caseParseCookies :: Assertion
58caseParseCookies :: Assertion
41caseParseCookies = do
59caseParseCookies = do
42 let input = S8.pack "a=a1;b=b2; c=c3"
60 let input = S8.pack "a=a1;b=b2; c=c3"