* modified runTests to run suites instead of single tests. this fixes r70215
authorMarkus Glaser <mglaser@users.mediawiki.org>
Mon, 2 Aug 2010 08:09:26 +0000 (08:09 +0000)
committerMarkus Glaser <mglaser@users.mediawiki.org>
Mon, 2 Aug 2010 08:09:26 +0000 (08:09 +0000)
includes/specials/SpecialSelenium.php

index 6eb0325..9b11fd5 100644 (file)
@@ -42,21 +42,24 @@ class SpecialSelenium extends SpecialPage {
        }
 
        function runTests() {
-               global $wgSeleniumTests, $wgOut;
+               global $wgSeleniumTestSuites, $wgOut, $wgSeleniumLogger;
                SeleniumLoader::load();
 
                $result = new PHPUnit_Framework_TestResult;
-               $logger = new SeleniumTestHTMLLogger;
-               $result->addListener( new SeleniumTestListener( $logger ) );
-               $logger->setHeaders();
+               $wgSeleniumLogger = new SeleniumTestHTMLLogger;
+               $result->addListener( new SeleniumTestListener( $wgSeleniumLogger ) );
+               //$wgSeleniumLogger->setHeaders();
 
                // run tests
-               $suite = new SeleniumTestSuite;
-               foreach ( $wgSeleniumTests as $testClass ) {
-                       $suite->addTest( new $testClass );
-               }
                $wgOut->addHTML( '<div class="selenium">' );
-               $suite->run( $result );
+               
+               // for some really strange reason, foreach doesn't work here. It produces an infinite loop,
+               // executing only the first test suite.
+               for ( $i = 0; $i < count( $wgSeleniumTestSuites ); $i++ ) {
+                       $suite = new $wgSeleniumTestSuites[$i];
+                       $suite->addTests();
+                       $suite->run( $result );
+               }
                $wgOut->addHTML( '</div>' );
        }
 }