{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE TemplateHaskell #-}
module Test.WebDriver.Capabilities (
  
  Capabilities(..)
  , defaultCaps
  
  , capabilitiesBrowserName
  , capabilitiesBrowserVersion
  , capabilitiesPlatformName
  , capabilitiesAcceptInsecureCerts
  , capabilitiesPageLoadStrategy
  , capabilitiesProxy
  , capabilitiesSetWindowRect
  , capabilitiesTimeouts
  , capabilitiesUnhandledPromptBehavior
  , capabilitiesGoogChromeOptions
  , capabilitiesMozFirefoxOptions
  , capabilitiesWebSocketUrl
  
  , Timeouts(..)
  , UserPromptHandler(..)
  , Platform(..)
  
  , ChromeOptions(..)
  , defaultChromeOptions
  
  , chromeOptionsWindowTypes
  , chromeOptionsPrefs
  , chromeOptionsPerfLoggingPrefs
  , chromeOptionsMobileEmulation
  , chromeOptionsMinidumpPath
  , chromeOptionsLocalState
  , chromeOptionsExtensions
  , chromeOptionsExcludeSwitches
  , chromeOptionsDetach
  , chromeOptionsDebuggerAddress
  , chromeOptionsBinary
  , chromeOptionsArgs
  
  , ChromeClientHints(..)
  , mkChromeClientHints
  , chromeClientHintsWow64
  , chromeClientHintsPlatformVersion
  , chromeClientHintsPlatform
  , chromeClientHintsModel
  , chromeClientHintsMobile
  , chromeClientHintsFullVersionList
  , chromeClientHintsBrands
  , chromeClientHintsBitness
  , chromeClientHintsArchitecture
  , BrandAndVersion(..)
  
  , ChromeDeviceMetrics(..)
  , chromeDeviceMetricsWidth
  , chromeDeviceMetricsTouch
  , chromeDeviceMetricsPixelRatio
  , chromeDeviceMetricsMobile
  , chromeDeviceMetricsHeight
  
  , ChromeExtension
  , loadExtension
  , loadRawExtension
  
  , ChromeMobileEmulation(..)
  , chromeMobileEmulationUserAgent
  , chromeMobileEmulationDeviceName
  , chromeMobileEmulationDeviceMetrics
  , chromeMobileEmulationClientHints
  
  , FirefoxOptions(..)
  , emptyFirefoxOptions
  , defaultFirefoxOptions
  
  , firefoxOptionsProfile
  , firefoxOptionsPrefs
  , firefoxOptionsLog
  , firefoxOptionsBinary
  , firefoxOptionsArgs
  
  , FirefoxLogLevel(..)
  , FirefoxLogLevelType(..)
  ) where
import Data.Aeson.TH
import Lens.Micro.TH
import Test.WebDriver.Capabilities.Aeson
import Test.WebDriver.Capabilities.ChromeOptions
import Test.WebDriver.Capabilities.FirefoxOptions
import Test.WebDriver.Capabilities.Platform
import Test.WebDriver.Capabilities.Proxy
import Test.WebDriver.Capabilities.Timeouts
import Test.WebDriver.Capabilities.UserPromptHandler
data Capabilities = Capabilities {
  
  Capabilities -> Maybe String
_capabilitiesBrowserName :: Maybe String
  
  , Capabilities -> Maybe String
_capabilitiesBrowserVersion :: Maybe String
  
  , Capabilities -> Maybe Platform
_capabilitiesPlatformName :: Maybe Platform
  
  
  , Capabilities -> Maybe Bool
_capabilitiesAcceptInsecureCerts :: Maybe Bool
  
  , Capabilities -> Maybe String
_capabilitiesPageLoadStrategy :: Maybe String
  
  , Capabilities -> Maybe Proxy
_capabilitiesProxy :: Maybe Proxy
  
  , Capabilities -> Maybe Bool
_capabilitiesSetWindowRect :: Maybe Bool
  
  , Capabilities -> Maybe Timeouts
_capabilitiesTimeouts :: Maybe Timeouts
  
  , Capabilities -> Maybe UserPromptHandler
_capabilitiesUnhandledPromptBehavior :: Maybe UserPromptHandler
  
  
  , Capabilities -> Maybe ChromeOptions
_capabilitiesGoogChromeOptions :: Maybe ChromeOptions
  
  , Capabilities -> Maybe FirefoxOptions
_capabilitiesMozFirefoxOptions :: Maybe FirefoxOptions
  , Capabilities -> Maybe Bool
_capabilitiesWebSocketUrl :: Maybe Bool
  } deriving (Capabilities -> Capabilities -> Bool
(Capabilities -> Capabilities -> Bool)
-> (Capabilities -> Capabilities -> Bool) -> Eq Capabilities
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Capabilities -> Capabilities -> Bool
== :: Capabilities -> Capabilities -> Bool
$c/= :: Capabilities -> Capabilities -> Bool
/= :: Capabilities -> Capabilities -> Bool
Eq, Int -> Capabilities -> ShowS
[Capabilities] -> ShowS
Capabilities -> String
(Int -> Capabilities -> ShowS)
-> (Capabilities -> String)
-> ([Capabilities] -> ShowS)
-> Show Capabilities
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Capabilities -> ShowS
showsPrec :: Int -> Capabilities -> ShowS
$cshow :: Capabilities -> String
show :: Capabilities -> String
$cshowList :: [Capabilities] -> ShowS
showList :: [Capabilities] -> ShowS
Show)
deriveJSON capabilitiesOptions ''Capabilities
makeLenses ''Capabilities
defaultCaps :: Capabilities
defaultCaps :: Capabilities
defaultCaps = Capabilities {
  _capabilitiesBrowserName :: Maybe String
_capabilitiesBrowserName = Maybe String
forall a. Maybe a
Nothing
  , _capabilitiesBrowserVersion :: Maybe String
_capabilitiesBrowserVersion = Maybe String
forall a. Maybe a
Nothing
  , _capabilitiesPlatformName :: Maybe Platform
_capabilitiesPlatformName = Maybe Platform
forall a. Maybe a
Nothing
  , _capabilitiesAcceptInsecureCerts :: Maybe Bool
_capabilitiesAcceptInsecureCerts = Maybe Bool
forall a. Maybe a
Nothing
  , _capabilitiesPageLoadStrategy :: Maybe String
_capabilitiesPageLoadStrategy = Maybe String
forall a. Maybe a
Nothing
  , _capabilitiesProxy :: Maybe Proxy
_capabilitiesProxy = Maybe Proxy
forall a. Maybe a
Nothing
  , _capabilitiesSetWindowRect :: Maybe Bool
_capabilitiesSetWindowRect = Maybe Bool
forall a. Maybe a
Nothing
  , _capabilitiesTimeouts :: Maybe Timeouts
_capabilitiesTimeouts = Maybe Timeouts
forall a. Maybe a
Nothing
  , _capabilitiesUnhandledPromptBehavior :: Maybe UserPromptHandler
_capabilitiesUnhandledPromptBehavior = Maybe UserPromptHandler
forall a. Maybe a
Nothing
  , _capabilitiesGoogChromeOptions :: Maybe ChromeOptions
_capabilitiesGoogChromeOptions = Maybe ChromeOptions
forall a. Maybe a
Nothing
  , _capabilitiesMozFirefoxOptions :: Maybe FirefoxOptions
_capabilitiesMozFirefoxOptions = Maybe FirefoxOptions
forall a. Maybe a
Nothing
  , _capabilitiesWebSocketUrl :: Maybe Bool
_capabilitiesWebSocketUrl = Maybe Bool
forall a. Maybe a
Nothing
  }