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) : ''; }
/** * 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(); }
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); }
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'); }
<?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();