diff --git a/yesod-test/Yesod/Test.hs b/yesod-test/Yesod/Test.hs index 36bbb582..07191788 100644 --- a/yesod-test/Yesod/Test.hs +++ b/yesod-test/Yesod/Test.hs @@ -577,7 +577,7 @@ fileByLabel label path mime = do -- > addToken_ "#formID" addToken_ :: Query -> RequestBuilder site () addToken_ scope = do - matches <- htmlQuery' rbdResponse ["Tried to get CSRF token with addToken'"] $ scope <> "input[name=_token][type=hidden][value]" + matches <- htmlQuery' rbdResponse ["Tried to get CSRF token with addToken'"] $ scope <> " input[name=_token][type=hidden][value]" case matches of [] -> failure $ "No CSRF token found in the current page" element:[] -> addPostParam "_token" $ head $ attribute "value" $ parseHTML element diff --git a/yesod-test/Yesod/Test/CssQuery.hs b/yesod-test/Yesod/Test/CssQuery.hs index 0618da7a..ee37e373 100644 --- a/yesod-test/Yesod/Test/CssQuery.hs +++ b/yesod-test/Yesod/Test/CssQuery.hs @@ -51,14 +51,14 @@ parseQuery = parseOnly cssQuery -- Below this line is the Parsec parser for css queries. cssQuery :: Parser [[SelectorGroup]] -cssQuery = sepBy rules (char ',' >> optional (char ' ')) +cssQuery = many (char ' ') >> sepBy rules (char ',' >> optional (char ' ')) rules :: Parser [SelectorGroup] rules = many $ directChildren <|> deepChildren directChildren :: Parser SelectorGroup directChildren = - string "> " >> DirectChildren <$> pOptionalTrailingSpace parseSelectors + string "> " >> (many (char ' ')) >> DirectChildren <$> pOptionalTrailingSpace parseSelectors deepChildren :: Parser SelectorGroup deepChildren = pOptionalTrailingSpace $ DeepChildren <$> parseSelectors diff --git a/yesod-test/test/main.hs b/yesod-test/test/main.hs index 0ef4354c..9956ca82 100644 --- a/yesod-test/test/main.hs +++ b/yesod-test/test/main.hs @@ -140,6 +140,18 @@ main = hspec $ do htmlAnyContain "p" "World" htmlAnyContain "p" "Moon" htmlNoneContain "p" "Sun" + yit "CSRF token" $ do + get ("/form" :: Text) + statusIs 200 + + request $ do + setMethod "POST" + setUrl ("/form" :: Text) + byLabel "Some Label" "12345" + fileByLabel "Some File" "test/main.hs" "text/plain" + addToken_ "body" + statusIs 200 + bodyEquals "12345" ydescribe "utf8 paths" $ do yit "from path" $ do