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
- Alphabetic
- By Inheritance
- BrowserFactory
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
sealed abstract
class
GrumpyDriver extends WebDriver
A null-object implementation of the Selenium
WebDriverinterface that throwsUnsupportedOperationExceptionfrom all of its methods, used when either 1) aWebDriverfield has not yet been initialized, 2) a requested SeleniumWebDriveris unavailable on the host platform, or 3) a test that did not declare it needed aWebDriverin AllBrowserPerSuite or AllBrowserPerTest attempts to use one.A null-object implementation of the Selenium
WebDriverinterface that throwsUnsupportedOperationExceptionfrom all of its methods, used when either 1) aWebDriverfield has not yet been initialized, 2) a requested SeleniumWebDriveris unavailable on the host platform, or 3) a test that did not declare it needed aWebDriverin AllBrowserPerSuite or AllBrowserPerTest attempts to use one.This is named
GrumpyDriverbecause all it does is complain. No matter what you ask of it, it throws anUnsupportedOperationExceptionback at you. -
case class
UnavailableDriver(ex: Option[Throwable], errorMessage: String) extends GrumpyDriver with Product with Serializable
An implementation of
WebDriverthat provides an optional exception and an error message and throwsUnsupportedOperationExceptionfrom all of its other methods, used when a requested SeleniumWebDriveris unavailable on the host platform.An implementation of
WebDriverthat provides an optional exception and an error message and throwsUnsupportedOperationExceptionfrom all of its other methods, used when a requested SeleniumWebDriveris unavailable on the host platform.Traits OneBrowserPerSuite, OneBrowserPerTest, AllBrowsersPerTest, and MixedFixtures check if the requested
WebDriveris available, and if not, installs this driver (to avoid initializing withnull) and cancels the tests.This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with
nullinstead of making the driver type anOption[WebDriver]for two reasons: 1) the type of the implicit needed by Selenium isWebDriver, notOption[WebDriver], and 2) the Null Object we provide also carries an optional exception and user-friendly error message.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
object
UninitializedDriver extends GrumpyDriver with Product with Serializable
An implementation of
WebDriverthat throwsUnsupportedOperationExceptionfrom all of its methods, used to initialize instancevars of typeWebDriver.An implementation of
WebDriverthat throwsUnsupportedOperationExceptionfrom all of its methods, used to initialize instancevars of typeWebDriver.Traits OneBrowserPerTest, ConfiguredBrowser, AllBrowsersPerSuite, and AllBrowsersPerTest initialize their
webDriverfield with this value (to avoid initializing withnull).This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with
nullinstead of making the driver type anOption[WebDriver]for two reasons: 1) the type of the implicit needed by Selenium isWebDriver, notOption[WebDriver], and 2) theUnsupportedOperationExceptionthrown by the methods of the Null Object we provide carries a user-friendly error message. -
object
UnneededDriver extends GrumpyDriver with Product with Serializable
An implementation of
WebDriverthat throwsUnsupportedOperationExceptionfrom all of its methods, used when a test does not need a SeleniumWebDriverat all.An implementation of
WebDriverthat throwsUnsupportedOperationExceptionfrom all of its methods, used when a test does not need a SeleniumWebDriverat all.Traits OneBrowserPerSuite, OneBrowserPerTest, AllBrowsersPerTest, and MixedFixtures check if the requested
WebDriveris available, and if not, installs this driver (to avoid initializing withnull) and cancels the tests.This is an example of the "Null Object Pattern." We use this pattern to avoid initializing with
nullinstead of making the driver type anOption[WebDriver]for two reasons: 1) the type of the implicit needed by Selenium isWebDriver, notOption[WebDriver], and 2) theUnsupportedOperationExceptionthrown by the methods of the Null Object we provide carries a user-friendly error message.