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.
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.
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.
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.
Companion object to trait
BrowserFactorythat holds aUnavailableDriverobject that implements the SeleniumWebDriverinterface by throwingUnsupportedOperationException. This is used as a placeholder when a driver is not available on the host platform.