yesod-test 1.5.4.1 → 1.5.5
raw patch · 5 files changed
+27/−18 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Yesod.Test: getLocation :: (Yesod site, ParseRoute site) => YesodExample site (Either Text (Route site))
+ Yesod.Test: getLocation :: ParseRoute site => YesodExample site (Either Text (Route site))
- Yesod.Test: request :: Yesod site => RequestBuilder site () -> YesodExample site ()
+ Yesod.Test: request :: RequestBuilder site () -> YesodExample site ()
- Yesod.Test: setRequestBody :: (Yesod site) => ByteString -> RequestBuilder site ()
+ Yesod.Test: setRequestBody :: ByteString -> RequestBuilder site ()
Files
- ChangeLog.md +4/−0
- Yesod/Test.hs +6/−9
- Yesod/Test/TransversingCSS.hs +2/−2
- test/main.hs +14/−6
- yesod-test.cabal +1/−1
ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.5.5++* Fix warnings+ ## 1.5.4.1 * Compilation fix for GHC 7.8
Yesod/Test.hs view
@@ -132,6 +132,7 @@ import qualified Control.Monad.Trans.State as ST import Control.Monad.IO.Class import System.IO+import Yesod.Core.Unsafe (runFakeHandler) import Yesod.Test.TransversingCSS import Yesod.Core import qualified Data.Text.Lazy as TL@@ -678,7 +679,7 @@ getRequestCookies :: RequestBuilder site Cookies getRequestCookies = do requestBuilderData <- ST.get- headers <- case simpleHeaders <$> rbdResponse requestBuilderData of+ headers <- case simpleHeaders Control.Applicative.<$> rbdResponse requestBuilderData of Just h -> return h Nothing -> failure "getRequestCookies: No request has been made yet; the cookies can't be looked up." @@ -759,8 +760,7 @@ -- > (Right (ResourceR resourceId)) <- getLocation -- -- @since 1.5.4-getLocation :: (Yesod site, ParseRoute site)- => YesodExample site (Either T.Text (Route site))+getLocation :: ParseRoute site => YesodExample site (Either T.Text (Route site)) getLocation = do mr <- getResponse case mr of@@ -802,7 +802,7 @@ -> RequestBuilder site () setUrl url' = do site <- fmap rbdSite ST.get- eurl <- runFakeHandler+ eurl <- Yesod.Core.Unsafe.runFakeHandler M.empty (const $ error "Yesod.Test: No logger available") site@@ -828,9 +828,7 @@ -- > import Data.Aeson -- > request $ do -- > setRequestBody $ encode $ object ["age" .= (1 :: Integer)]-setRequestBody :: (Yesod site)- => BSL8.ByteString- -> RequestBuilder site ()+setRequestBody :: BSL8.ByteString -> RequestBuilder site () setRequestBody body = ST.modify $ \rbd -> rbd { rbdPostData = BinaryPostData body } -- | Adds the given header to the request; see "Network.HTTP.Types.Header" for creating 'Header's.@@ -858,8 +856,7 @@ -- > byLabel "First Name" "Felipe" -- > setMethod "PUT" -- > setUrl NameR-request :: Yesod site- => RequestBuilder site ()+request :: RequestBuilder site () -> YesodExample site () request reqBuilder = do YesodExampleData app site oldCookies mRes <- ST.get
Yesod/Test/TransversingCSS.hs view
@@ -59,8 +59,8 @@ -- * Right: List of matching Html fragments. findBySelector :: HtmlLBS -> Query -> Either String [String] findBySelector html query = (\x -> map (renderHtml . toHtml . node) . runQuery x)- <$> (Right $ fromDocument $ HD.parseLBS html)- <*> parseQuery query+ Control.Applicative.<$> (Right $ fromDocument $ HD.parseLBS html)+ Control.Applicative.<*> parseQuery query -- Run a compiled query on Html, returning a list of matching Html fragments. runQuery :: Cursor -> [[SelectorGroup]] -> [Cursor]
test/main.hs view
@@ -6,6 +6,13 @@ {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Main+ ( main+ -- avoid warnings+ , resourcesRoutedApp+ , Widget+ ) where import Test.HUnit hiding (Test) import Test.Hspec@@ -22,16 +29,17 @@ import Network.Wai (pathInfo, requestHeaders) import Data.Maybe (fromMaybe) import Data.Either (isLeft, isRight)-import Control.Exception.Lifted(try, SomeException) import Data.ByteString.Lazy.Char8 () import qualified Data.Map as Map import qualified Text.HTML.DOM as HD import Network.HTTP.Types.Status (status301, status303, unsupportedMediaType415) +parseQuery_ :: Text -> [[SelectorGroup]] parseQuery_ = either error id . parseQuery++findBySelector_ :: HtmlLBS -> Query -> [String] findBySelector_ x = either error id . findBySelector x-parseHtml_ = HD.parseLBS data RoutedApp = RoutedApp @@ -86,7 +94,7 @@ [NodeContent "Hello World"] ] ]- in parseHtml_ html @?= doc+ in HD.parseLBS html @?= doc it "HTML" $ let html = "<html><head><title>foo</title></head><body><br><p>Hello World</p></body></html>" doc = Document (Prologue [] Nothing []) root []@@ -101,7 +109,7 @@ [NodeContent "Hello World"] ] ]- in parseHtml_ html @?= doc+ in HD.parseLBS html @?= doc describe "basic usage" $ yesodSpec app $ do ydescribe "tests1" $ do yit "tests1a" $ do@@ -310,7 +318,7 @@ ((mfoo, widget), _) <- runFormPost $ renderDivs $ (,)- <$> areq textField "Some Label" Nothing+ Control.Applicative.<$> areq textField "Some Label" Nothing <*> areq fileField "Some File" Nothing case mfoo of FormSuccess (foo, _) -> return $ toHtml foo@@ -337,7 +345,7 @@ onStatic "cookie" $ do onStatic "foo" $ dispatchTo $ do setMessage "Foo"- redirect ("/cookie/home" :: Text)+ () <- redirect ("/cookie/home" :: Text) return () instance Yesod RoutedApp where
yesod-test.cabal view
@@ -1,5 +1,5 @@ name: yesod-test-version: 1.5.4.1+version: 1.5.5 license: MIT license-file: LICENSE author: Nubis <nubis@woobiz.com.ar>