/** * * @param \Pachico\Voyeur\Shot $shot * @return string */ protected function _shoot_shot(Shot $shot) { // Starting sesion if not started yet (in short, open browser) if (!$this->_session->isStarted()) { $this->_log_out('Starting camera session'); $this->_session->start(); } $this->_log_out('Loading ' . $shot->get_uri()); $this->_log_out("Resizing window to " . $shot->get_width() . 'x' . $shot->get_height()); $this->_session->resizeWindow($shot->get_width(), $shot->get_height()); // Load page $this->_session->visit($shot->get_uri()); $this->_log_out("Loading finished"); // Should I wait for something? if (count($shot->get_wait_for()) > 0) { foreach ($shot->get_wait_for() as $waitings) { $wait_time = key($waitings); $condition = is_null(current($waitings)) ? null : current($waitings); $this->_log_out("Waiting " . $wait_time . ' microseconds'); $condition and $this->_log_out("Or until " . $condition); $this->_session->wait($wait_time, $condition); } } // Any scripts to execute? if (count($shot->get_scripts()) > 0) { foreach ($shot->get_scripts() as $script) { $script = $this->_get_script_file_content($script); $this->_session->executeScript($script); } } // Finally take the screenshot and return it $this->_log_out("Taking screenshot"); $picture = $this->_session->getScreenshot(); return $picture; }
protected function makeScreenshot() { if (empty($this->session)) { return 'No session'; } try { $name = date('Y-m-d_H:i:s') . '.png'; file_put_contents('/tmp/' . $name, $this->session->getScreenshot()); $imageUrl = $this->getUploader()->upload('/tmp/' . $name); } catch (\Exception $e) { $imageUrl = $e->getMessage(); } return $imageUrl; }
public function testGetScreenshot() { $this->driver->expects($this->once())->method('getScreenshot')->will($this->returnValue('screenshot')); $this->assertEquals('screenshot', $this->session->getScreenshot()); }
private function initializeSessionStub(Session $session) { $session->getScreenshot()->willReturn('binary-image'); }