diff --git a/src/Browser.php b/src/Browser.php index 21f000ff6..882c9ed11 100644 --- a/src/Browser.php +++ b/src/Browser.php @@ -229,13 +229,15 @@ public function screenshot($name) */ public function storeConsoleLog($name) { - $console = $this->driver->manage()->getLog('browser'); - - if (! empty($console)) { - file_put_contents( - sprintf('%s/%s.log', rtrim(static::$storeConsoleLogAt, '/'), $name) - , json_encode($console, JSON_PRETTY_PRINT) - ); + if (static::$storeConsoleLogAt) { + $console = $this->driver->manage()->getLog('browser'); + + if (!empty($console)) { + file_put_contents( + sprintf('%s/%s.log', rtrim(static::$storeConsoleLogAt, '/'), $name) + , json_encode($console, JSON_PRETTY_PRINT) + ); + } } return $this; diff --git a/tests/BrowserTest.php b/tests/BrowserTest.php index 5558b0446..24816c14e 100644 --- a/tests/BrowserTest.php +++ b/tests/BrowserTest.php @@ -118,6 +118,26 @@ public function test_page_macros() $this->assertTrue($browser->page->macroed); } + + public function test_retrieve_console() + { + $driver = Mockery::mock(StdClass::class); + $driver->shouldReceive('manage->getLog')->with('browser')->andReturnNull(); + $browser = new Browser($driver); + Browser::$storeConsoleLogAt = 'not-null'; + + $browser->storeConsoleLog('file'); + } + + public function test_disable_console() + { + $driver = Mockery::mock(StdClass::class); + $driver->shouldNotReceive('manage'); + $browser = new Browser($driver); + Browser::$storeConsoleLogAt = null; + + $browser->storeConsoleLog('file'); + } }