From a16588aac3b5b3ea0228d13f5c1f9cf437ac9582 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 16 Jul 2015 21:31:42 +1200 Subject: [PATCH] API Removed JSTestRunner See https://github.com/silverstripe/silverstripe-framework/issues/4254 --- _config/dev.yml | 5 -- dev/JSTestRunner.php | 193 ------------------------------------------- 2 files changed, 198 deletions(-) delete mode 100644 dev/JSTestRunner.php diff --git a/_config/dev.yml b/_config/dev.yml index 69112be8d..d9fd34d6b 100644 --- a/_config/dev.yml +++ b/_config/dev.yml @@ -12,11 +12,6 @@ DevelopmentAdmin: links: tests: 'See a list of unit tests to run' 'tests/all': 'Run all tests' - jstests: - controller: 'JSTestRunner' - links: - jstests: 'See a list of JavaScript tests to run' - 'jstests/all': 'Run all JavaScript tests' tasks: controller: 'TaskRunner' links: diff --git a/dev/JSTestRunner.php b/dev/JSTestRunner.php deleted file mode 100644 index ac92a1216..000000000 --- a/dev/JSTestRunner.php +++ /dev/null @@ -1,193 +0,0 @@ -/javascript/tests - * and includes them as iFrames. - * - * To create your own tests, please use this template: - * - * - * - * - * jQuery - Validation Test Suite - * - * - * - * - * - * - *

- * - * jQuery Validation Plugin Test Suite

- *

- *
- *

- *
    - * - * - *
    - * - * @package framework - * @subpackage testing - */ -class JSTestRunner extends Controller { - /** @ignore */ - private static $default_reporter; - - private static $url_handlers = array( - '' => 'browse', - '$TestCase' => 'only', - ); - - private static $allowed_actions = array( - 'index', - 'all', - 'browse', - 'only' - ); - - /** - * Override the default reporter with a custom configured subclass. - * - * @param string $reporter - */ - public static function set_reporter($reporter) { - if (is_string($reporter)) $reporter = new $reporter; - self::$default_reporter = $reporter; - } - - public function init() { - parent::init(); - - if(Director::is_cli()) { - echo "Error: JSTestRunner cannot be run in CLI mode\n"; - die(); - } - - if (!self::$default_reporter) self::set_reporter('DebugView'); - } - - public function Link() { - return Controller::join_links(Director::absoluteBaseURL(), 'dev/jstests/'); - } - - /** - * Run all test classes - */ - public function all() { - $this->runTests(array_keys($this->getAllTestFiles())); - } - - /** - * Browse all enabled test cases in the environment - */ - public function browse() { - self::$default_reporter->writeHeader(); - echo '
    '; - echo '

    Available Tests

    '; - echo '
    '; - echo '
    '; - $tests = $this->getAllTestFiles(); - echo "

    Link() . "all\">Run all " . count($tests) . " tests

    "; - echo "
    "; - foreach ($tests as $testName => $testFilePath) { - echo "

    Link() . "$testName\">Run $testName

    "; - } - echo '
    '; - self::$default_reporter->writeFooter(); - } - - /** - * Run only a single test class - */ - public function only($request) { - $test = $request->param('TestCase'); - - if ($test == 'all') { - $this->all(); - } else { - $allTests = $this->getAllTestFiles(); - if(!array_key_exists($test, $allTests)) { - user_error("TestRunner::only(): Invalid TestCase '$className', cannot find matching class", - E_USER_ERROR); - } - - $this->runTests(array($test)); - } - } - - public function runTests($tests) { - $this->setUp(); - - self::$default_reporter->writeHeader("SilverStripe JavaScript Test Runner"); - self::$default_reporter->writeInfo("All Tests", "Running test cases: " . implode(", ", $tests)); - - foreach($tests as $test) { - // @todo Integrate output in DebugView - $testUrl = $this->urlForTestCase($test); - if(!$testUrl) user_error('JSTestRunner::runTests(): Test ' . $test . ' not found', E_USER_ERROR); - $absTestUrl = Director::absoluteBaseURL() . $testUrl; - - echo ''; - } - - $this->tearDown(); - } - - public function setUp() { - } - - public function tearDown() { - } - - protected function getAllTestFiles() { - $testFiles = array(); - - $baseDir = Director::baseFolder(); - $modules = scandir($baseDir); - foreach($modules as $moduleFileOrFolder) { - if( - $moduleFileOrFolder[0] == '.' - || !@is_dir("$baseDir/$moduleFileOrFolder") - || !file_exists("$baseDir/$moduleFileOrFolder/_config.php") - ) { - continue; - } - - $testDir = "$baseDir/$moduleFileOrFolder/tests/javascript"; - if(@is_dir($testDir)) { - $tests = scandir($testDir); - foreach($tests as $testFile) { - $testFileExt = pathinfo("$testDir/$testFile", PATHINFO_EXTENSION); - if(!in_array(strtolower($testFileExt),array('htm','html'))) continue; - $testFileNameWithoutExt = substr($testFile, 0,-strlen($testFileExt)-1); - $testUrl = Director::makeRelative("$testDir/$testFile"); - $testUrl = substr($testUrl, 1); - // @todo Limit to html extension with "Test" suffix - $testFiles[$testFileNameWithoutExt] = $testUrl; - } - } - } - - return $testFiles; - } - - /** - * Returns the URL for a test case file. - * - * @return string - */ - protected function urlForTestCase($testName) { - $allTests = $this->getAllTestFiles(); - return (array_key_exists($testName, $allTests)) ? $allTests[$testName] : false; - } -}