2011-05-31 20:30:12 +00:00
|
|
|
<?php
|
2012-08-27 19:03:15 +00:00
|
|
|
require_once( __DIR__ . '/NewParserTest.php' );
|
2011-05-31 20:30:12 +00:00
|
|
|
|
|
|
|
|
/**
|
2011-11-12 21:32:39 +00:00
|
|
|
* The UnitTest must be either a class that inherits from MediaWikiTestCase
|
2011-05-31 20:30:12 +00:00
|
|
|
* or a class that provides a public static suite() method which returns
|
|
|
|
|
* an PHPUnit_Framework_Test object
|
|
|
|
|
*
|
|
|
|
|
* @group Parser
|
|
|
|
|
* @group Database
|
|
|
|
|
*/
|
|
|
|
|
class MediaWikiParserTest {
|
|
|
|
|
|
|
|
|
|
public static function suite() {
|
|
|
|
|
global $wgParserTestFiles;
|
|
|
|
|
|
|
|
|
|
$suite = new PHPUnit_Framework_TestSuite;
|
|
|
|
|
|
|
|
|
|
foreach ( $wgParserTestFiles as $filename ) {
|
|
|
|
|
$testsName = basename( $filename, '.txt' );
|
2011-09-18 03:32:43 +00:00
|
|
|
/* This used to be ucfirst( basename( dirname( $filename ) ) )
|
|
|
|
|
* and then was ucfirst( basename( $filename, '.txt' )
|
|
|
|
|
* but that didn't work with names like foo.tests.txt
|
|
|
|
|
*/
|
|
|
|
|
$className = str_replace( '.', '_', ucfirst( basename( $filename, '.txt' ) ) );
|
2011-05-31 20:30:12 +00:00
|
|
|
|
2011-10-27 21:18:01 +00:00
|
|
|
eval( "/** @group Database\n@group Parser\n*/ class $className extends NewParserTest { protected \$file = '" . strtr( $filename, array( "'" => "\\'", '\\' => '\\\\' ) ) . "'; } " );
|
2011-05-31 20:30:12 +00:00
|
|
|
|
|
|
|
|
$parserTester = new $className( $testsName );
|
|
|
|
|
$suite->addTestSuite( new ReflectionClass ( $parserTester ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return $suite;
|
|
|
|
|
}
|
|
|
|
|
}
|