From 9c943fe336893219272f44fb9e1e82307e781b04 Mon Sep 17 00:00:00 2001 From: Geraldo Augusto Massahud Rodrigues dos Santos Date: Thu, 30 Mar 2017 12:21:45 +0100 Subject: [PATCH] fix error when reusing Browser instance after cleanup --- src/Browser/Browser.php | 1 - tests/unit/Browser/BrowserTest.php | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Browser/Browser.php b/src/Browser/Browser.php index 2b2fbd6..54c45a9 100644 --- a/src/Browser/Browser.php +++ b/src/Browser/Browser.php @@ -385,7 +385,6 @@ private function reset() $this->sessionCookie = null; $this->remoteWebDriver = null; $this->urlTranslator = null; - $this->remoteDriverBuilder = null; } /** diff --git a/tests/unit/Browser/BrowserTest.php b/tests/unit/Browser/BrowserTest.php index 598e9c6..7a0a33a 100644 --- a/tests/unit/Browser/BrowserTest.php +++ b/tests/unit/Browser/BrowserTest.php @@ -70,4 +70,28 @@ public function testSetSession_ShouldDeleteExistingCookieAndAddNewCookieToDriver 'secure' => $isSecure, ]); } + + public function testCleanup_ShouldRebuildBrowserInstanceAfterCleanup() { + + $path = "/page.html"; + $pathTranslated = "http://domain/page.html"; + + // init internal webdriver + $this->browser->getCurrentPage(); + + /** @var UrlTranslator $anotherUrlTranslator */ + $anotherUrlTranslator = \Phake::mock(UrlTranslator::class); + \Phake::when($anotherUrlTranslator)->get($path)->thenReturn($pathTranslated); + $anotherWebDriver = \Phake::mock(RemoteWebDriver::class); + \Phake::when($this->mockBrowserDriverBuilder)->getRemoteWebDriver()->thenReturn($anotherWebDriver); + \Phake::when($this->mockBrowserDriverBuilder)->getUrlTranslator()->thenReturn($anotherUrlTranslator); + + $this->browser->cleanup(); + $this->browser->get($path); + + \Phake::verify($this->mockBrowserDriverBuilder, \Phake::times(2))->build(); + $this->assertEquals($this->browser->getUrlTranslator(), $anotherUrlTranslator); + \Phake::verify($anotherWebDriver)->get($pathTranslated); + + } }