object BrowserFactory

Companion object to trait BrowserFactory that holds a UnavailableDriver object that implements the Selenium WebDriver interface by throwing UnsupportedOperationException. This is used as a placeholder when a driver is not available on the host platform.

Source
BrowserFactory.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BrowserFactory
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed abstract class GrumpyDriver extends WebDriver

    A null-object implementation of the Selenium WebDriver interface that throws UnsupportedOperationException from all of its methods, used when either 1) a WebDriver field has not yet been initialized, 2) a requested Selenium WebDriver is unavailable on the host platform, or 3) a test that did not declare it needed a WebDriver in AllBrowserPerSuite or AllBrowserPerTest attempts to use one.

    A null-object implementation of the Selenium WebDriver interface that throws UnsupportedOperationException from all of its methods, used when either 1) a WebDriver field has not yet been initialized, 2) a requested Selenium WebDriver is unavailable on the host platform, or 3) a test that did not declare it needed a WebDriver in AllBrowserPerSuite or AllBrowserPerTest attempts to use one.

    This is named GrumpyDriver because all it does is complain. No matter what you ask of it, it throws an UnsupportedOperationException back at you.

  2. case class UnavailableDriver(ex: Option[Throwable], errorMessage: String) extends GrumpyDriver with Product with Serializable

    An implementation of WebDriver that provides an optional exception and an error message and throws UnsupportedOperationException from all of its other methods, used when a requested Selenium WebDriver is unavailable on the host platform.

    An implementation of WebDriver that provides an optional exception and an error message and throws UnsupportedOperationException from all of its other methods, used when a requested Selenium WebDriver is unavailable on the host platform.

    Traits OneBrowserPerSuite, OneBrowserPerTest, AllBrowsersPerTest, and MixedFixtures check if the requested WebDriver is available, and if not, installs this driver (to avoid initializing with null) and cancels the tests.

    This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with null instead of making the driver type an Option[WebDriver] for two reasons: 1) the type of the implicit needed by Selenium is WebDriver, not Option[WebDriver], and 2) the Null Object we provide also carries an optional exception and user-friendly error message.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  20. object UninitializedDriver extends GrumpyDriver with Product with Serializable

    An implementation of WebDriver that throws UnsupportedOperationException from all of its methods, used to initialize instance vars of type WebDriver.

    An implementation of WebDriver that throws UnsupportedOperationException from all of its methods, used to initialize instance vars of type WebDriver.

    Traits OneBrowserPerTest, ConfiguredBrowser, AllBrowsersPerSuite, and AllBrowsersPerTest initialize their webDriver field with this value (to avoid initializing with null).

    This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with null instead of making the driver type an Option[WebDriver] for two reasons: 1) the type of the implicit needed by Selenium is WebDriver, not Option[WebDriver], and 2) the UnsupportedOperationException thrown by the methods of the Null Object we provide carries a user-friendly error message.

  21. object UnneededDriver extends GrumpyDriver with Product with Serializable

    An implementation of WebDriver that throws UnsupportedOperationException from all of its methods, used when a test does not need a Selenium WebDriver at all.

    An implementation of WebDriver that throws UnsupportedOperationException from all of its methods, used when a test does not need a Selenium WebDriver at all.

    Traits OneBrowserPerSuite, OneBrowserPerTest, AllBrowsersPerTest, and MixedFixtures check if the requested WebDriver is available, and if not, installs this driver (to avoid initializing with null) and cancels the tests.

    This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with null instead of making the driver type an Option[WebDriver] for two reasons: 1) the type of the implicit needed by Selenium is WebDriver, not Option[WebDriver], and 2) the UnsupportedOperationException thrown by the methods of the Null Object we provide carries a user-friendly error message.

Inherited from AnyRef

Inherited from Any

Ungrouped