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
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * @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 "
";
- echo "
";
- foreach ($tests as $testName => $testFilePath) {
- echo "
";
- }
- 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;
- }
-}