marionette-1.0.0: Marionette protocol for Firefox
Safe HaskellTrustworthy
LanguageHaskell2010

Test.Marionette.Client

Synopsis

Documentation

connect :: MonadUnliftIO m => HostName -> ServiceName -> ((Socket, SockAddr) -> m a) -> m a Source #

newtype MarionetteT (m :: Type -> Type) a Source #

A monad transformer that speaks the Marionette wire protocol over a TCP socket. Run it with runMarionetteT.

Instances

Instances details
(MonadThrow m, MonadCatch m) => MonadError Error (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

throwError :: Error -> MarionetteT m a #

catchError :: MarionetteT m a -> (Error -> MarionetteT m a) -> MarionetteT m a #

MonadIO m => MonadIO (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

liftIO :: IO a -> MarionetteT m a #

MonadCatch m => MonadCatch (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

catch :: (HasCallStack, Exception e) => MarionetteT m a -> (e -> MarionetteT m a) -> MarionetteT m a #

MonadMask m => MonadMask (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

mask :: HasCallStack => ((forall a. MarionetteT m a -> MarionetteT m a) -> MarionetteT m b) -> MarionetteT m b #

uninterruptibleMask :: HasCallStack => ((forall a. MarionetteT m a -> MarionetteT m a) -> MarionetteT m b) -> MarionetteT m b #

generalBracket :: HasCallStack => MarionetteT m a -> (a -> ExitCase b -> MarionetteT m c) -> (a -> MarionetteT m b) -> MarionetteT m (b, c) #

MonadThrow m => MonadThrow (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

throwM :: (HasCallStack, Exception e) => e -> MarionetteT m a #

Applicative m => Applicative (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

pure :: a -> MarionetteT m a #

(<*>) :: MarionetteT m (a -> b) -> MarionetteT m a -> MarionetteT m b #

liftA2 :: (a -> b -> c) -> MarionetteT m a -> MarionetteT m b -> MarionetteT m c #

(*>) :: MarionetteT m a -> MarionetteT m b -> MarionetteT m b #

(<*) :: MarionetteT m a -> MarionetteT m b -> MarionetteT m a #

Functor m => Functor (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

fmap :: (a -> b) -> MarionetteT m a -> MarionetteT m b #

(<$) :: a -> MarionetteT m b -> MarionetteT m a #

Monad m => Monad (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

(>>=) :: MarionetteT m a -> (a -> MarionetteT m b) -> MarionetteT m b #

(>>) :: MarionetteT m a -> MarionetteT m b -> MarionetteT m b #

return :: a -> MarionetteT m a #

(MonadUnliftIO m, MonadThrow m, MonadCatch m) => Marionette (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

MonadUnliftIO m => MonadUnliftIO (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

Methods

withRunInIO :: ((forall a. MarionetteT m a -> IO a) -> IO b) -> MarionetteT m b #

Monad m => MonadReader (TQueue CommandWithCallback) (MarionetteT m) Source # 
Instance details

Defined in Test.Marionette.Client

runMarionetteT :: (MonadUnliftIO m, MonadMask m) => MarionetteT m a -> m a Source #

Connect to a Marionette server listening on localhost:2828 (started by launching Firefox with the --marionette flag), and run the given action against it.