From 9f1c76beef44fb841e6a4137c409ccb941c9236b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 2 Sep 2012 15:26:32 +0200 Subject: [PATCH] fix running test cases in multiply app dirs --- tests/index.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/index.php b/tests/index.php index 0be27ee3fd..032689970f 100644 --- a/tests/index.php +++ b/tests/index.php @@ -20,6 +20,8 @@ * */ +//to run only specific tests, use the test parameter to specify an app or 'lib'. e.g. http://localhost/owncloud/tests/?test=user_external + require_once '../lib/base.php'; require_once 'simpletest/unit_tester.php'; require_once 'simpletest/mock_objects.php'; @@ -49,7 +51,7 @@ if(OC::$CLI){ $testSuite=new TestSuite($testSuiteName); //load core test cases -loadTests(dirname(__FILE__), $testSuite, $test); +loadTests(dirname(__FILE__), $testSuite, $test, 'lib'); //load app test cases @@ -59,8 +61,9 @@ loadTests(dirname(__FILE__), $testSuite, $test); $apps=OC_App::getEnabledApps(); foreach($apps as $app){ - if(is_dir(OC::$SERVERROOT.'/apps/'.$app.'/tests')){ - loadTests(OC::$SERVERROOT.'/apps/'.$app.'/tests', $testSuite, $test); + $testDir=OC_App::getAppPath($app).'/tests'; + if(is_dir($testDir)){ + loadTests($testDir, $testSuite, $test, $app); } } @@ -70,15 +73,16 @@ if($testSuite->getSize()>0){ } // helper below -function loadTests($dir,$testSuite, $test){ +function loadTests($dir,$testSuite, $test, $app){ + $root=($app=='lib')?OC::$SERVERROOT.'/tests/lib/':OC_App::getAppPath($app).'/tests/'; if($dh=opendir($dir)){ while($name=readdir($dh)){ if($name[0]!='.'){//no hidden files, '.' or '..' $file=$dir.'/'.$name; if(is_dir($file)){ - loadTests($file, $testSuite, $test); + loadTests($file, $testSuite, $test, $app); }elseif(substr($file,-4)=='.php' and $file!=__FILE__){ - $name=getTestName($file); + $name=$app.'/'.getTestName($file,$root); if($test===false or $test==$name or substr($name,0,strlen($test))==$test){ $extractor = new SimpleFileLoader(); $loadedSuite=$extractor->load($file); @@ -91,8 +95,8 @@ function loadTests($dir,$testSuite, $test){ } } -function getTestName($file){ +function getTestName($file,$root){ // //TODO: get better test names - $file=substr($file,strlen(OC::$SERVERROOT)); + $file=substr($file,strlen($root)); return substr($file,0,-4);//strip .php }