33namespace Mink \WebdriverClassicDriver \Tests \Custom ;
44
55use Behat \Mink \Exception \DriverException ;
6- use Facebook \WebDriver \Remote \RemoteWebDriver ;
76use Facebook \WebDriver \Remote \RemoteWebElement ;
8- use Facebook \WebDriver \WebDriverOptions ;
9- use Facebook \WebDriver \WebDriverTimeouts ;
7+ use Mink \WebdriverClassicDriver \Tests \WebDriverMockingTrait ;
108use Mink \WebdriverClassicDriver \WebdriverClassicDriver ;
119
1210class WebDriverTest extends TestCase
1311{
12+ use WebDriverMockingTrait;
13+
1414 public function testDriverMustBeStartedBeforeUse (): void
1515 {
1616 $ this ->expectException (DriverException::class);
@@ -39,11 +39,9 @@ public function testStartedDriverCannotBeSubsequentlyStarted(): void
3939
4040 public function testDriverCatchesUpstreamErrorsDuringStart (): void
4141 {
42- $ driver = $ this ->createPartialMock (WebdriverClassicDriver::class, ['createWebDriver ' , 'getWebDriver ' ]);
43- $ driver
44- ->expects ($ this ->once ())
45- ->method ('createWebDriver ' )
46- ->willThrowException (new \RuntimeException ('An upstream error ' ));
42+ $ driver = new WebdriverClassicDriver ('fake browser ' , [], 'example.com ' , function () {
43+ throw new \RuntimeException ('An upstream error ' );
44+ });
4745
4846 $ this ->expectException (DriverException::class);
4947 $ this ->expectExceptionMessage ('Could not start driver: An upstream error ' );
@@ -53,15 +51,11 @@ public function testDriverCatchesUpstreamErrorsDuringStart(): void
5351
5452 public function testDriverCatchesUpstreamErrorsDuringStop (): void
5553 {
56- $ driver = $ this ->createPartialMock (WebdriverClassicDriver::class, ['createWebDriver ' , 'isStarted ' , 'getWebDriver ' ]);
57- $ driver
58- ->expects ($ this ->once ())
59- ->method ('isStarted ' )
60- ->willReturn (true );
61- $ driver
62- ->expects ($ this ->once ())
63- ->method ('getWebDriver ' )
64- ->willThrowException (new \RuntimeException ('An upstream error ' ));
54+ $ mockWebDriver = $ this ->createMockWebDriver ();
55+ $ mockWebDriver ->method ('quit ' )->willThrowException (new \RuntimeException ('An upstream error ' ));
56+ $ driver = new WebdriverClassicDriver ('fake browser ' , [], 'example.com ' , fn () => $ mockWebDriver );
57+
58+ $ driver ->start ();
6559
6660 $ this ->expectException (DriverException::class);
6761 $ this ->expectExceptionMessage ('Could not close connection: An upstream error ' );
@@ -79,12 +73,8 @@ public function testClassicDriverCanProvideBrowserName(): void
7973
8074 public function testThatDriverCatchesUnexpectedAttributeValueType (): void
8175 {
82- $ mockWebDriver = $ this ->createMock (RemoteWebDriver::class);
83- $ mockWebDriverOptions = $ this ->createMock (WebDriverOptions::class);
84- $ mockWebDriverTimeouts = $ this ->createMock (WebDriverTimeouts::class);
76+ $ mockWebDriver = $ this ->createMockWebDriver ();
8577 $ mockElement = $ this ->createMock (RemoteWebElement::class);
86- $ mockWebDriver ->method ('manage ' )->willReturn ($ mockWebDriverOptions );
87- $ mockWebDriverOptions ->method ('timeouts ' )->willReturn ($ mockWebDriverTimeouts );
8878 $ mockWebDriver
8979 ->expects ($ this ->once ())
9080 ->method ('findElement ' )
0 commit comments