Example #1
0
 /**
  *
  * @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');
 }