/**
  * @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();
 }
Пример #3
0
 function init()
 {
     parent::init();
     ManifestBuilder::load_test_manifest();
     if (!self::$default_reporter) {
         self::set_reporter(Director::is_cli() ? 'CliDebugView' : 'DebugView');
     }
 }
Пример #4
0
 /**
  * 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();