All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.pierrenodet.fs2.selenium.Option.scala Maven / Gradle / Ivy

The newest version!
package com.github.pierrenodet.fs2.selenium

import cats.effect.Sync
import org.openqa.selenium.WebDriver.{ImeHandler, Timeouts}
import org.openqa.selenium.logging.Logs
import org.openqa.selenium.{Cookie, WebDriver}

trait Option[F[_]] {

  def addCookie(cookie: Cookie): F[Unit]

  def deleteCookies(): F[Unit]

  def deleteCookie(cookie: Cookie): F[Unit]

  def deleteCookieNamed(name: String): F[Unit]

  def cookieNamed(name: String): F[Cookie]

  def ime: ImeHandler

  def logs: Logs

  def timeouts: Timeouts

  def window: Window[F]

}

object Option {

  def apply[F[_]: Sync](options: WebDriver.Options): Option[F] = impl.mkOption(options)

  object impl {

    def mkOption[F[_]: Sync](options: WebDriver.Options): Option[F] = new Option[F] {

      override def addCookie(cookie: Cookie): F[Unit] =
        Sync[F].delay(options.addCookie(cookie))

      override def deleteCookies(): F[Unit] = Sync[F].delay(options.deleteAllCookies())

      override def deleteCookie(cookie: Cookie): F[Unit] =
        Sync[F].delay(options.deleteCookie(cookie))

      override def deleteCookieNamed(name: String): F[Unit] =
        Sync[F].delay(options.deleteCookieNamed(name))

      override def cookieNamed(name: String): F[Cookie] =
        Sync[F].delay(options.getCookieNamed(name))

      override def ime: ImeHandler = options.ime()

      override def logs: Logs = options.logs()

      override def timeouts: Timeouts = options.timeouts()

      override def window: Window[F] = Window[F](options.window())
    }

  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy