protected static function makeSuite($className, $group = null) { $suite = new PHPUnit_Framework_TestSuite(); $suite->setName($className); $class = new ReflectionClass($className); foreach (self::$engineConfigurations as $engineName => $opts) { if ($group !== null && $group !== $engineName) { continue; } try { $parser = new Parser(); $parser->startExternalParse(Title::newMainPage(), new ParserOptions(), Parser::OT_HTML, true); $engineClass = "Scribunto_{$engineName}Engine"; $engine = new $engineClass(self::$engineConfigurations[$engineName] + array('parser' => $parser)); $parser->scribunto_engine = $engine; $engine->setTitle($parser->getTitle()); $engine->getInterpreter(); } catch (Scribunto_LuaInterpreterNotFoundError $e) { $suite->addTest(new Scribunto_LuaEngineTestSkip($className, "interpreter for {$engineName} is not available"), array('Lua', $engineName)); continue; } // Work around PHPUnit breakage: the only straightforward way to // get the data provider is to call // PHPUnit_Util_Test::getProvidedData, but that instantiates the // class without passing any parameters to the constructor. But we // *need* that engine name. self::$staticEngineName = $engineName; $engineSuite = new PHPUnit_Framework_TestSuite(); $engineSuite->setName("{$engineName}: {$className}"); foreach ($class->getMethods() as $method) { if (PHPUnit_Framework_TestSuite::isTestMethod($method) && $method->isPublic()) { $name = $method->getName(); $groups = PHPUnit_Util_Test::getGroups($className, $name); $groups[] = 'Lua'; $groups[] = $engineName; $groups = array_unique($groups); $data = PHPUnit_Util_Test::getProvidedData($className, $name); if (is_array($data) || $data instanceof Iterator) { // with @dataProvider $dataSuite = new PHPUnit_Framework_TestSuite_DataProvider($className . '::' . $name); foreach ($data as $k => $v) { $dataSuite->addTest(new $className($name, $v, $k, $engineName), $groups); } $engineSuite->addTest($dataSuite); } elseif ($data === false) { // invalid @dataProvider $engineSuite->addTest(new PHPUnit_Framework_Warning("The data provider specified for {$className}::{$name} is invalid.")); } else { // no @dataProvider $engineSuite->addTest(new $className($name, array(), '', $engineName), $groups); } } } $suite->addTest($engineSuite); } return $suite; }
protected function getTestModules() { return parent::getTestModules() + array('TextLibraryTests' => __DIR__ . '/TextLibraryTests.lua'); }
function getTestModules() { return parent::getTestModules() + array('CommonTests' => __DIR__ . '/CommonTests.lua', 'CommonTests-data' => __DIR__ . '/CommonTests-data.lua', 'CommonTests-data-fail1' => __DIR__ . '/CommonTests-data-fail1.lua', 'CommonTests-data-fail2' => __DIR__ . '/CommonTests-data-fail2.lua', 'CommonTests-data-fail3' => __DIR__ . '/CommonTests-data-fail3.lua', 'CommonTests-data-fail4' => __DIR__ . '/CommonTests-data-fail4.lua', 'CommonTests-data-fail5' => __DIR__ . '/CommonTests-data-fail5.lua'); }
protected function getTestModules() { return parent::getTestModules() + array('UstringLibraryTests' => __DIR__ . '/UstringLibraryTests.lua', 'UstringLibraryNormalizationTests' => __DIR__ . '/UstringLibraryNormalizationTests.lua'); }
function getTestModules() { return parent::getTestModules() + array('SandboxTests' => __DIR__ . '/SandboxTests.lua'); }
function getTestModules() { return parent::getTestModules() + array('UriLibraryTests' => __DIR__ . '/UriLibraryTests.lua'); }
protected function getTestModules() { return parent::getTestModules() + array('StandaloneTests' => __DIR__ . '/StandaloneTests.lua'); }
function getTestModules() { return parent::getTestModules() + array('LibraryUtilTests' => __DIR__ . '/LibraryUtilTests.lua'); }