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. Protected

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. case 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.

  2. case 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.