{-# LANGUAGE BangPatterns, OverloadedStrings #-} module Web.Api.WebDriver.Monad.Test.Session.InvalidElementState ( invalidElementStateExit ) where import Data.Typeable (Typeable) import System.IO import Web.Api.WebDriver import Test.Tasty.WebDriver import qualified Test.Tasty as T import qualified Test.Tasty.ExpectedFailure as TE invalidElementState :: (Monad eff) => WDError -> WebDriverT eff() invalidElementState e = case e of ResponseError InvalidElementState _ _ _ _ -> assertSuccess "yay!" err -> assertFailure $ AssertionComment $ "Expecting 'invalid element state' but got: " ++ show err invalidElementStateExit :: (Monad eff) => (String -> WebDriverT eff() -> T.TestTree) -> FilePath -> T.TestTree invalidElementStateExit buildTestCase dir = let path = dir ++ "/invalidElementState.html" in T.testGroup "Invalid Element State" [ ifDriverIs Chromedriver TE.ignoreTest $ buildTestCase "elementClear" (_test_elementClear_invalid_element_state path) ] _test_elementClear_invalid_element_state :: (Monad eff) => FilePath -> WebDriverT eff() _test_elementClear_invalid_element_state page = let session :: (Monad eff) => WebDriverT eff() session = do navigateTo page !element <- findElement CssSelector "body" elementClear element throwError $ UnexpectedResult IsSuccess "Expecting 'invalid_element_state'" return () in catchError session invalidElementState