]> source.dussan.org Git - nextcloud-server.git/commitdiff
restructuring test suite invocation - now we load all test cases into one suite and...
authorThomas Mueller <thomas.mueller@tmit.eu>
Fri, 13 Jul 2012 11:41:13 +0000 (13:41 +0200)
committerThomas Mueller <thomas.mueller@tmit.eu>
Fri, 13 Jul 2012 11:41:13 +0000 (13:41 +0200)
tests/index.php

index 691bf2a5d45a1dfa195b314c0f9b255ffdfcac41..e91b3f0da561199b3a66183278c80f432c07371c 100644 (file)
@@ -26,39 +26,59 @@ require_once 'simpletest/mock_objects.php';
 require_once 'simpletest/collector.php';
 require_once 'simpletest/default_reporter.php';
 
+// test suite instance
+$testSuite=new TestSuite("ownCloud Unit Test Suite");
+
+// prepare the reporter
+if(OC::$CLI){
+       $reporter=new TextReporter;
+       $test=isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:false;
+       if($test=='xml')
+       {
+               $reporter= new XmlReporter;
+               $test=false;
+       }
+}else{
+       $reporter='HtmlReporter';
+       $test=isset($_GET['test'])?$_GET['test']:false;
+}
+
 //load core test cases
-loadTests(dirname(__FILE__));
+loadTests(dirname(__FILE__), $testSuite, $test);
 
 //load app test cases
+
+//
+// TODO: define a list of apps to be enabled + enable them
+//
+
 $apps=OC_App::getEnabledApps();
 foreach($apps as $app){
        if(is_dir(OC::$SERVERROOT.'/apps/'.$app.'/tests')){
-               loadTests(OC::$SERVERROOT.'/apps/'.$app.'/tests');
+               loadTests(OC::$SERVERROOT.'/apps/'.$app.'/tests', $testSuite, $test);
        }
 }
 
-function loadTests($dir=''){
-       if(OC::$CLI){
-               $reporter='TextReporter';
-               $test=isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:false;
-       }else{
-               $reporter='HtmlReporter';
-               $test=isset($_GET['test'])?$_GET['test']:false;
-       }
+// run the suite
+if($testSuite->getSize()>0){
+       $testSuite->run($reporter);
+}
+
+// helper below
+function loadTests($dir,$testSuite, $test){
        if($dh=opendir($dir)){
                while($name=readdir($dh)){
                        if($name[0]!='.'){//no hidden files, '.' or '..'
                                $file=$dir.'/'.$name;
                                if(is_dir($file)){
-                                       loadTests($file);
+                                       loadTests($file, $testSuite, $test);
                                }elseif(substr($file,-4)=='.php' and $file!=__FILE__){
                                        $name=getTestName($file);
                                        if($test===false or $test==$name or substr($name,0,strlen($test))==$test){
-                                               $testCase=new TestSuite($name);
-                                               $testCase->addFile($file);
-                                               if($testCase->getSize()>0){
-                                                       $testCase->run(new $reporter());
-                                               }
+                                               $extractor = new SimpleFileLoader();
+                                               $loadedSuite=$extractor->load($file);
+                                               if ($loadedSuite->getSize() > 0)
+                                                       $testSuite->add($loadedSuite);
                                        }
                                }
                        }