packages feed

marionette-1.0.0: marionette.cabal

cabal-version: 3.0
name: marionette
version: 1.0.0
category: Web
synopsis: Marionette protocol for Firefox
description:
  Marionette is an automation driver for Mozilla’s Gecko engine. It can remotely control either the UI or the internal JavaScript of a Gecko platform, such as Firefox. It can control both the chrome (i.e. menus and functions) or the content (the webpage loaded inside the browsing context), giving a high level of control and ability to replicate user actions. In addition to performing actions on the browser, Marionette can also read the properties and attributes of the DOM.

  If this sounds similar to <https://dvcs.w3.org/hg/webdriver/raw-file/tip/webdriver-spec.html Selenium/WebDriver> then you’re correct! Marionette shares much of the same ethos and API as Selenium/WebDriver, with additional commands to interact with Gecko’s chrome interface. Its goal is to replicate what Selenium does for web content: to enable the tester to have the ability to send commands to remotely control a user agent.

license: EUPL-1.2
license-file: LICENCE
author: IDA
maintainer: IDA
homepage: https://digital-autonomy.institute
bug-reports: https://issues.digital-autonomy.institute
build-type: Simple
extra-doc-files:
  CHANGELOG.md

common common
  default-language: Haskell2010
  ghc-options:
    -Weverything
    -Wno-unsafe
    -Wno-missing-safe-haskell-mode
    -Wno-missing-export-lists
    -Wno-missing-import-lists
    -Wno-missing-kind-signatures
    -Wno-all-missed-specialisations
    -Wno-missing-role-annotations

  default-extensions:
    ApplicativeDo
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveAnyClass
    DeriveGeneric
    DerivingStrategies
    DerivingVia
    ExplicitNamespaces
    FlexibleContexts
    FlexibleInstances
    GeneralisedNewtypeDeriving
    ImportQualifiedPost
    InstanceSigs
    LambdaCase
    MultiParamTypeClasses
    NamedFieldPuns
    NoImplicitPrelude
    NumericUnderscores
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    RecordWildCards
    RecursiveDo
    ScopedTypeVariables
    Trustworthy
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    ViewPatterns

  build-depends:
    aeson >=2.2 && <2.3,
    base >=4.16 && <5,
    bytestring >=0.12 && <0.13,
    text >=2.1 && <2.2,

library
  import: common
  hs-source-dirs: src
  build-depends:
    base64-bytestring >=1.2 && <1.3,
    binary >=0.8 && <0.9,
    binary-parsers >=0.2 && <0.3,
    containers >=0.7 && <0.8,
    exceptions >=0.10 && <0.11,
    hashable >=1.5 && <1.6,
    mtl >=2.3 && <2.4,
    network >=3.2 && <3.3,
    network-simple >=0.4.5 && <0.5,
    retry >=0.9 && <0.10,
    unliftio >=0.2 && <0.3,

  exposed-modules:
    Test.Marionette
    Test.Marionette.AccessibilityProperties
    Test.Marionette.Class
    Test.Marionette.Client
    Test.Marionette.Commands
    Test.Marionette.Context
    Test.Marionette.Cookie
    Test.Marionette.Element
    Test.Marionette.Frame
    Test.Marionette.Orientation
    Test.Marionette.Protocol
    Test.Marionette.Rect
    Test.Marionette.Registry
    Test.Marionette.Selector
    Test.Marionette.Timeouts
    Test.Marionette.WebAuthn
    Test.Marionette.Window

test-suite marionette-test
  import: common
  type: exitcode-stdio-1.0
  ghc-options: -threaded
  hs-source-dirs: test
  main-is: Main.hs
  build-depends:
    hspec >=2.11 && <2.12,
    hspec-expectations-lifted >=0.10 && <0.11,
    http-types >=0.12 && <0.13,
    lucid2 >=0.0 && <0.1,
    marionette,
    typed-process >=0.2 && <0.3,
    wai >=3.2 && <3.3,
    warp >=3.4 && <3.5,