/** * @return Array */ public static function get_all_tests() { ManifestBuilder::load_test_manifest(); $tests = ClassInfo::subclassesFor('SapphireTest'); array_shift($tests); return $tests; }
function init() { parent::init(); if (!Permission::check('ADMIN')) { return Security::permissionFailure(); } ManifestBuilder::load_test_manifest(); }
function init() { parent::init(); ManifestBuilder::load_test_manifest(); if (!self::$default_reporter) { self::set_reporter(Director::is_cli() ? 'CliDebugView' : 'DebugView'); } }
/** * Run tests for one or more "modules". * A module is generally a toplevel folder, e.g. "mysite" or "sapphire". */ function module($request, $coverage = false) { ManifestBuilder::load_test_manifest(); $classNames = array(); $moduleNames = explode(',', $request->param('ModuleName')); foreach ($moduleNames as $moduleName) { $classesForModule = ClassInfo::classes_for_folder($moduleName); if ($classesForModule) { foreach ($classesForModule as $class) { if (class_exists($class) && is_subclass_of($class, 'SapphireTest')) { $classNames[] = $class; } } } } $this->runTests($classNames, $coverage); }
<?php // Simulate an execution from sapphire/cli-script.php, Core.php has too many // hardcoded assumptions about folder depth of the executing script. // Overrides paths relative to this file (in sapphire/tests/FullTestSuite.php) $_SERVER['SCRIPT_FILENAME'] = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'cli-script.php'; $_SERVER['SCRIPT_NAME'] = '.' . DIRECTORY_SEPARATOR . 'sapphire' . DIRECTORY_SEPARATOR . 'cli-script.php'; define('BASE_PATH', rtrim(dirname(dirname(dirname(__FILE__)))), DIRECTORY_SEPARATOR); // Copied from cli-script.php, to enable same behaviour through phpunit runner. if (isset($_SERVER['argv'][2])) { $args = array_slice($_SERVER['argv'], 2); $_GET = array(); foreach ($args as $arg) { if (strpos($arg, '=') == false) { $_GET['args'][] = $arg; } else { $newItems = array(); parse_str(substr($arg, 0, 2) == '--' ? substr($arg, 2) : $arg, $newItems); $_GET = array_merge($_GET, $newItems); } } $_REQUEST = $_GET; } if (!class_exists('Object')) { require_once "sapphire/core/Core.php"; global $databaseConfig; DB::connect($databaseConfig); } $_SERVER['REQUEST_URI'] = BASE_URL . '/dev'; ManifestBuilder::load_test_manifest();