} else {
global $IP;
$relative = wfRelativePath( $filename, $IP );
- print $this->term->color( 1 ) .
- "Reading tests from \"$relative\"..." .
- $this->term->reset() .
- "\n";
+ $this->showRunFile( $relative );
}
$data = array();
* @return bool
*/
private function runTest( $desc, $input, $result, $opts ) {
+ global $wgParserConf;
if( $this->showProgress ) {
$this->showTesting( $desc );
}
$noxml = (bool)preg_match( '~\\b noxml \\b~x', $opts );
- $parser = new Parser;
+ $class = $wgParserConf['class'];
+ $parser = new $class( $wgParserConf );
foreach( $this->hooks as $tag => $callback ) {
$parser->setHook( $tag, $callback );
}
} else if (preg_match('/\\bcat\\b/i', $opts)) {
global $wgOut;
$wgOut->addCategoryLinks($output->getCategories());
- $out = $this->tidy ( implode( ' ', $wgOut->getCategoryLinks() ) );
+ $cats = $wgOut->getCategoryLinks();
+ $out = $this->tidy( implode( ' ', $cats['normal'] ) );
}
$result = $this->tidy($result);
*/
private function setupGlobals($opts = '') {
# Save the prefixed / quoted table names for later use when we make the temporaries.
- $db = wfGetDB( DB_READ );
+ $db = wfGetDB( DB_SLAVE );
$this->oldTableNames = array();
foreach( $this->listTables() as $table ) {
$this->oldTableNames[$table] = $db->tableName( $table );
'wgUseTidy' => false,
'wgDefaultLanguageVariant' => $variant,
'wgVariantArticlePath' => false,
+ 'wgGroupPermissions' => array( '*' => array(
+ 'createaccount' => true,
+ 'read' => true,
+ 'edit' => true,
+ 'createpage' => true,
+ 'createtalk' => true,
+ ) ),
+ 'wgDefaultExternalStore' => array(),
);
$this->savedGlobals = array();
foreach( $settings as $var => $val ) {
$GLOBALS['wgLang'] = $langObj;
$GLOBALS['wgContLang'] = $langObj;
- $GLOBALS['wgLoadBalancer']->loadMasterPos();
//$GLOBALS['wgMessageCache'] = new MessageCache( new BagOStuff(), false, 0, $GLOBALS['wgDBname'] );
$this->setupDatabase();
'site_stats', 'hitcounter', 'ipblocks', 'image', 'oldimage',
'recentchanges', 'watchlist', 'math', 'interwiki',
'querycache', 'objectcache', 'job', 'redirect', 'querycachetwo',
- 'archive', 'user_groups'
+ 'archive', 'user_groups', 'page_props', 'category'
);
if ($wgDBtype === 'mysql')
# Make sure we don't mess with the live DB
if (!$setupDB && $wgDBprefix === 'parsertest_') {
# oh teh horror
- $GLOBALS['wgLoadBalancer'] = LoadBalancer::newFromParams( $GLOBALS['wgDBservers'] );
+ LBFactory::destroy();
$db = wfGetDB( DB_MASTER );
$tables = $this->listTables();
/**
* "Running test $desc..."
*/
- private function showTesting( $desc ) {
+ protected function showTesting( $desc ) {
print "Running test $desc... ";
}
* @param string $desc The test name
* @return bool
*/
- private function showSuccess( $desc ) {
+ protected function showSuccess( $desc ) {
if( $this->showProgress ) {
print $this->term->color( '1;32' ) . 'PASSED' . $this->term->reset() . "\n";
}
* @param string $html Actual HTML output
* @return bool
*/
- private function showFailure( $desc, $result, $html ) {
+ protected function showFailure( $desc, $result, $html ) {
if( $this->showFailure ) {
if( !$this->showProgress ) {
# In quiet mode we didn't show the 'Testing' message before the
* @param string $outFileTail Tailing for the output file name
* @return string
*/
- private function quickDiff( $input, $output, $inFileTail='expected', $outFileTail='actual' ) {
+ protected function quickDiff( $input, $output, $inFileTail='expected', $outFileTail='actual' ) {
$prefix = wfTempDir() . "/mwParser-" . mt_rand();
$infile = "$prefix-$inFileTail";
* @param string $text
* @return string
*/
- private function colorDiff( $text ) {
+ protected function colorDiff( $text ) {
return preg_replace(
array( '/^(-.*)$/m', '/^(\+.*)$/m' ),
array( $this->term->color( 34 ) . '$1' . $this->term->reset(),
$text );
}
+ /**
+ * Show "Reading tests from ..."
+ *
+ * @param String $path
+ */
+ protected function showRunFile( $path ){
+ print $this->term->color( 1 ) .
+ "Reading tests from \"$path\"..." .
+ $this->term->reset() .
+ "\n";
+ }
+
/**
* Insert a temporary test article
* @param string $name the title, including any prefix