Exemplo n.º 1
0
 /**
  * Determine the full pathname to store a failure-related dump.
  *
  * This is used for content such as the DOM, and screenshots.
  *
  * @param AfterStepScope $scope scope passed by event after step.
  * @param String $filetype The file suffix to use. Limited to 4 chars.
  */
 protected function get_faildump_filename(AfterStepScope $scope, $filetype)
 {
     global $CFG;
     // All the contentdumps should be in the same parent dir.
     if (!($faildumpdir = self::get_run_faildump_dir())) {
         $faildumpdir = self::$faildumpdirname = date('Ymd_His');
         $dir = $CFG->behat_faildump_path . DIRECTORY_SEPARATOR . $faildumpdir;
         if (!is_dir($dir) && !mkdir($dir, $CFG->directorypermissions, true)) {
             // It shouldn't, we already checked that the directory is writable.
             throw new Exception('No directories can be created inside $CFG->behat_faildump_path, check the directory permissions.');
         }
     } else {
         // We will always need to know the full path.
         $dir = $CFG->behat_faildump_path . DIRECTORY_SEPARATOR . $faildumpdir;
     }
     // The scenario title + the failed step text.
     // We want a i-am-the-scenario-title_i-am-the-failed-step.$filetype format.
     $filename = $scope->getFeature()->getTitle() . '_' . $scope->getStep()->getText();
     $filename = preg_replace('/([^a-zA-Z0-9\\_]+)/', '-', $filename);
     // File name limited to 255 characters. Leaving 5 chars for line number and 4 chars for the file.
     // extension as we allow .png for images and .html for DOM contents.
     $filename = substr($filename, 0, 245) . '_' . $scope->getStep()->getLine() . '.' . $filetype;
     return array($dir, $filename);
 }
Exemplo n.º 2
0
 /**
  * Determine the full pathname to store a failure-related dump.
  *
  * This is used for content such as the DOM, and screenshots.
  *
  * @param StepEvent $event
  * @param String $filetype The file suffix to use.
  */
 protected function get_faildump_filename(StepEvent $event, $filetype)
 {
     global $CFG;
     // All the contentdumps should be in the same parent dir.
     if (!($faildumpdir = self::get_run_faildump_dir())) {
         $faildumpdir = self::$faildumpdirname = date('Ymd_His');
         $dir = $CFG->behat_faildump_path . DIRECTORY_SEPARATOR . $faildumpdir;
         if (!is_dir($dir) && !mkdir($dir, $CFG->directorypermissions, true)) {
             // It shouldn't, we already checked that the directory is writable.
             throw new Exception('No directories can be created inside $CFG->behat_faildump_path, check the directory permissions.');
         }
     } else {
         // We will always need to know the full path.
         $dir = $CFG->behat_faildump_path . DIRECTORY_SEPARATOR . $faildumpdir;
     }
     // The scenario title + the failed step text.
     // We want a i-am-the-scenario-title_i-am-the-failed-step.$filetype format.
     $filename = $event->getStep()->getParent()->getTitle() . '_' . $event->getStep()->getText();
     $filename = preg_replace('/([^a-zA-Z0-9\\_]+)/', '-', $filename) . '.' . $filetype;
     return array($dir, $filename);
 }