コード例 #1
0
ファイル: Archives.php プロジェクト: sdgdsffdsfff/WebPHPUnit
 public function index($request)
 {
     $snapshot_directory = \WebPHPUnit\WebPHPUnit::getConfig('snapshot_directory');
     if (!$request->is('ajax')) {
         $snapshots = array();
         $handler = @opendir($snapshot_directory);
         if (!$handler) {
             return compact('snapshots');
         }
         while (($file = readdir($handler)) !== false) {
             $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
             if (strpos($file, '.') === 0 || $ext != 'html') {
                 continue;
             }
             $snapshots[] = $file;
         }
         closedir($handler);
         rsort($snapshots);
         return compact('snapshots');
     }
     if (!isset($request->query['snapshot'])) {
         return '';
     }
     $file = realpath($snapshot_directory) . "/{$request->query['snapshot']}";
     return file_exists($file) ? file_get_contents($file) : '';
 }
コード例 #2
0
ファイル: View.php プロジェクト: sdgdsffdsfff/WebPHPUnit
 /**
  *  Renders a given file with the supplied variables.
  *
  *  @param string $file    The file to be rendered.
  *  @param mixed $vars     The variables to be substituted in the view.
  *  @access public
  *  @return string
  */
 public function render($file, $vars = null)
 {
     $path = \WebPHPUnit\WebPHPUnit::getConfig('cache_directory') . DIRECTORY_SEPARATOR;
     $file = dirname(__DIR__) . "/View/{$file}.html";
     $compiler = $this->_config['dependencies']['compiler'];
     $options = compact('path');
     $__template__ = $compiler::compile($file, $options);
     if (!$__template__) {
         throw new \RuntimeException('Could not write cache file. Please ensure that the ' . "permissions of {$path} are correct.");
     }
     if (is_array($vars)) {
         extract($vars);
     }
     ob_start();
     require $__template__;
     return ob_get_clean();
 }
コード例 #3
0
ファイル: FileList.php プロジェクト: sdgdsffdsfff/WebPHPUnit
 public function index($request)
 {
     if (!$request->is('ajax')) {
         return $this->redirect('/');
     }
     $dir = realpath(urldecode($request->query['dir']));
     if (!$dir) {
         return array();
     }
     $test_directories = \WebPHPUnit\WebPHPUnit::getConfig('test_directories');
     $valid_dir = false;
     foreach ($test_directories as $test_directory) {
         if (strpos($dir, realpath($test_directory)) === 0) {
             $valid_dir = true;
             break;
         }
     }
     if (!$valid_dir) {
         return array();
     }
     $dir .= '/';
     $files = scandir($dir);
     // Don't return anything if 'files' are '.' or '..'
     if (count($files) < 3) {
         return array();
     }
     $ignore_hidden = \WebPHPUnit\WebPHPUnit::getConfig('ignore_hidden_folders');
     $final_dirs = array();
     $final_files = array();
     foreach ($files as $file) {
         $is_hidden = strpos($file, '.') === 0;
         if ($file != '.' && $file != '..' && (!$is_hidden || !$ignore_hidden)) {
             $path = $dir . $file;
             $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
             if (is_dir($path)) {
                 $final_dirs[] = array('type' => 'directory', 'name' => $file, 'path' => $path);
             } elseif (is_file($path) && $ext == 'php') {
                 $final_files[] = array('type' => 'file', 'name' => $file, 'path' => $path);
             }
         }
     }
     return array_merge($final_dirs, $final_files);
 }
コード例 #4
0
ファイル: Home.php プロジェクト: sdgdsffdsfff/WebPHPUnit
 public function index($request)
 {
     if ($request->is('get')) {
         $normalize_path = function ($path) {
             return str_replace('\\', '/', realpath($path));
         };
         $test_directories = json_encode(array_map($normalize_path, \WebPHPUnit\WebPHPUnit::getConfig('test_directories')));
         $suites = array();
         $stats = array();
         $create_snapshots = \WebPHPUnit\WebPHPUnit::getConfig('create_snapshots');
         $sandbox_errors = \WebPHPUnit\WebPHPUnit::getConfig('sandbox_errors');
         $xml_configuration_files = \WebPHPUnit\WebPHPUnit::getConfig('xml_configuration_files');
         return compact('create_snapshots', 'sandbox_errors', 'stats', 'store_statistics', 'suites', 'test_directories', 'xml_configuration_files');
     }
     $tests = explode('|', $request->data['test_files']);
     $vpu = new \WebPHPUnit\Lib\VPU();
     if ($request->data['sandbox_errors']) {
         error_reporting(\WebPHPUnit\WebPHPUnit::getConfig('error_reporting'));
         set_error_handler(array($vpu, 'handle_errors'));
     }
     $xml_config = false;
     $notifications = array();
     if ($xml_file_index = $request->data['xml_configuration_file']) {
         $files = \WebPHPUnit\WebPHPUnit::getConfig('xml_configuration_files');
         $xml_config = $files[$xml_file_index - 1];
         if (!$xml_config || !($xml_config = realpath($xml_config))) {
             $notifications[] = array('type' => 'failed', 'title' => 'No Valid XML Configuration File Found', 'message' => 'Please ensure that the ' . '<code>xml_configuration_file</code> in ' . '<code>app/config/bootstrap.php</code> exists and ' . 'has the proper permissions.');
         }
     }
     $results = $xml_config ? $vpu->run_with_xml($xml_config) : $vpu->run_tests($tests);
     $results = $vpu->compile_suites($results, 'web');
     if ($request->data['sandbox_errors']) {
         restore_error_handler();
     }
     $suites = $results['suites'];
     $stats = $results['stats'];
     $errors = $vpu->get_errors();
     $to_view = compact('suites', 'stats', 'errors');
     if ($request->data['create_snapshots']) {
         $notifications[] = $this->_create_snapshot($to_view);
     }
     return $to_view + compact('notifications');
 }
コード例 #5
0
ファイル: index.php プロジェクト: sdgdsffdsfff/WebPHPUnit
<?php

$config = array('phpunit_phar_path' => __DIR__ . '/phpunit.phar', 'cache_directory' => __DIR__ . '/cache', 'test_directories' => array(__DIR__ . "/test"), 'create_snapshots' => false, 'snapshot_directory' => __DIR__ . "/snap", 'sandbox_errors' => true, 'error_reporting' => E_ALL | E_STRICT, 'ignore_hidden_folders' => true, 'xml_configuration_files' => array(), 'bootstraps' => array(__DIR__ . '/config/bootstrap.php'));
require __DIR__ . '/WebPHPUnit.phar';
//require(__DIR__ . '/WebPHPUnit/WebPHPUnit.php');
\WebPHPUnit\WebPHPUnit::initConfig($config);
\WebPHPUnit\WebPHPUnit::run();