quickcheck-webdriver 0.1.0.1 → 0.1.0.3
raw patch · 2 files changed
+50/−24 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Test.QuickCheck.Monadic.WebDriver: ExistingSession :: WDSession -> Context
+ Test.QuickCheck.Monadic.WebDriver: SessionParams :: Capabilities -> (WD ()) -> Context
+ Test.QuickCheck.Monadic.WebDriver: caps :: Browser -> Capabilities
+ Test.QuickCheck.Monadic.WebDriver: capsChrome :: Capabilities
+ Test.QuickCheck.Monadic.WebDriver: capsFirefox :: Capabilities
+ Test.QuickCheck.Monadic.WebDriver: chrome' :: Browser
+ Test.QuickCheck.Monadic.WebDriver: chromeOpts :: [String]
+ Test.QuickCheck.Monadic.WebDriver: data Context
+ Test.QuickCheck.Monadic.WebDriver: monadicWD :: Context -> PropertyM WD a -> Property
+ Test.QuickCheck.Monadic.WebDriver: runIO :: IO a -> PropertyM WD a
+ Test.QuickCheck.Monadic.WebDriver: seshParams :: Browser -> Context
+ Test.QuickCheck.Monadic.WebDriver: seshParamsChrome :: Context
+ Test.QuickCheck.Monadic.WebDriver: seshParamsFirefox' :: Context
Files
Test/QuickCheck/Monadic/WebDriver.hs view
@@ -5,39 +5,65 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE OverloadedStrings #-} -module Test.QuickCheck.Monadic.WebDriver - (- -- * Example- -- $example- ) where -import Prelude +-- |+-- Module: Test.QuickCheck.Monadic.WebDriver+-- Copyright: (c) 2014 Christian Brink+-- License: MIT+-- Maintainer: Christian Brink+-- +-- Example usage:+--+-- > import Test.QuickCheck+-- > import Test.QuickCheck.Monadic (run, pick, assert)+-- > import Test.WebDriver+-- > prop_Example = monadicWD context $ do+-- > url <- pick $ oneof ("http://www.yesodweb.com", "http://snapframework.com/")+-- > run $ openPage url+-- > assert True+-- > runIO $ putStrLn $ "We've just evaluated a `Gen a` using `pick` and \+-- > \a `WD ()` using `run`, then asserted a that a \+-- > \property holds using `assert`."+-- > where context = SessionParams allCaps (return ())++module Test.QuickCheck.Monadic.WebDriver where++import Prelude import Test.QuickCheck import Test.QuickCheck.Property import Test.QuickCheck.Monadic as QCM- import Test.WebDriver--import Data.Monoid ((<>)) import Control.Monad.IO.Class --- |Patterned after `Test.QuickCheck.Monadic.monadicIO`.-monadicWD capabilities wd = monadic wdProperty wd- where runSesh = runSession defaultSession capabilities- wdProperty = ioProperty . runSesh+data Context = ExistingSession WDSession + | SessionParams Capabilities (WD ()) +-- |Patterned after `monadicIO` (and `ioProperty`).+monadicWD context wd = monadic wdProperty wd+ where + wdProperty = ioProperty . runSesh+ runSesh action = case context of+ ExistingSession sesh -> runWD sesh action+ SessionParams caps setup -> runSession defaultSession caps $ setup >> action+ + runIO :: IO a -> PropertyM WD a runIO = QCM.run . liftIO +chromeOpts = [ "--log-level=0" ]++chrome' = chrome { chromeOptions = chromeOpts }++caps browser = allCaps {browser=browser} ++capsChrome = caps chrome'+capsFirefox = caps firefox++seshParams browser = SessionParams (caps browser) $ return ()++seshParamsChrome = seshParams chrome'+seshParamsFirefox' = seshParams firefox+ -- $example--- > import Test.QuickCheck--- > import Test.QuickCheck.Monadic (run, pick, assert)--- > import Test.WebDriver--- > prop_Example = monadicWD allCaps $ do--- > url <- pick $ oneof ("http://www.yesodweb.com", "http://snapframework.com/")--- > run $ openPage url--- > assert True--- > runIO $ putStrLn $ "We've just evaluated a `Gen a` using `pick` and \--- > \a `WD ()` using `run`, then asserted a that a \--- > \property holds using `assert`."+--
quickcheck-webdriver.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: quickcheck-webdriver-version: 0.1.0.1+version: 0.1.0.3 synopsis: Utilities for using WebDriver with QuickCheck -- description: license: MIT