From: withoutaname Date: Sun, 22 Jun 2014 20:13:46 +0000 (-0700) Subject: Rename Parser_DiffTest class to ParserDiffTest X-Git-Tag: 1.31.0-rc.0~15277^2 X-Git-Url: http://git.cyclocoop.org/data/%24oldEdit?a=commitdiff_plain;h=ad1d07f34f2a21be1625b727c0b721b801faf73f;p=lhc%2Fweb%2Fwiklou.git Rename Parser_DiffTest class to ParserDiffTest Change-Id: I5fca44a3fffbc60a66be32fad9ed6d1713056d81 --- diff --git a/RELEASE-NOTES-1.24 b/RELEASE-NOTES-1.24 index 4f0ae21d18..60d4ccf236 100644 --- a/RELEASE-NOTES-1.24 +++ b/RELEASE-NOTES-1.24 @@ -181,6 +181,7 @@ changes to languages because of Bugzilla reports. * CLDRPluralRuleEvaluator_Range to CLDRPluralRuleEvaluatorRange * CSSJanus_Tokenizer to CSSJanusTokenizer * MediaWiki_I18N to MediaWikiI18N +* Parser_DiffTest to ParserDiffTest * RevDel_ArchiveItem to RevDelArchiveItem * RevDel_ArchiveList to RevDelArchiveList * RevDel_ArchivedFileItem to RevDelArchivedFileItem diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 94264aedde..3ac4722e27 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -830,7 +830,7 @@ $wgAutoloadLocalClasses = array( 'ParserCache' => 'includes/parser/ParserCache.php', 'ParserOptions' => 'includes/parser/ParserOptions.php', 'ParserOutput' => 'includes/parser/ParserOutput.php', - 'Parser_DiffTest' => 'includes/parser/Parser_DiffTest.php', + 'ParserDiffTest' => 'includes/parser/ParserDiffTest.php', 'Preprocessor' => 'includes/parser/Preprocessor.php', 'Preprocessor_DOM' => 'includes/parser/Preprocessor_DOM.php', 'Preprocessor_Hash' => 'includes/parser/Preprocessor_Hash.php', diff --git a/includes/cache/MessageCache.php b/includes/cache/MessageCache.php index a3cf87e943..e5afd21eb5 100644 --- a/includes/cache/MessageCache.php +++ b/includes/cache/MessageCache.php @@ -1025,7 +1025,7 @@ class MessageCache { $wgParser->firstCallInit(); # Clone it and store it $class = $wgParserConf['class']; - if ( $class == 'Parser_DiffTest' ) { + if ( $class == 'ParserDiffTest' ) { # Uncloneable $this->mParser = new $class( $wgParserConf ); } else { diff --git a/includes/parser/ParserDiffTest.php b/includes/parser/ParserDiffTest.php new file mode 100644 index 0000000000..2db0597e2b --- /dev/null +++ b/includes/parser/ParserDiffTest.php @@ -0,0 +1,143 @@ +conf = $conf; + } + + function init() { + if ( !is_null( $this->parsers ) ) { + return; + } + + global $wgHooks; + static $doneHook = false; + if ( !$doneHook ) { + $doneHook = true; + $wgHooks['ParserClearState'][] = array( $this, 'onClearState' ); + } + if ( isset( $this->conf['shortOutput'] ) ) { + $this->shortOutput = $this->conf['shortOutput']; + } + + foreach ( $this->conf['parsers'] as $i => $parserConf ) { + if ( !is_array( $parserConf ) ) { + $class = $parserConf; + $parserConf = array( 'class' => $parserConf ); + } else { + $class = $parserConf['class']; + } + $this->parsers[$i] = new $class( $parserConf ); + } + } + + function __call( $name, $args ) { + $this->init(); + $results = array(); + $mismatch = false; + $lastResult = null; + $first = true; + foreach ( $this->parsers as $i => $parser ) { + $currentResult = call_user_func_array( array( &$this->parsers[$i], $name ), $args ); + if ( $first ) { + $first = false; + } else { + if ( is_object( $lastResult ) ) { + if ( $lastResult != $currentResult ) { + $mismatch = true; + } + } else { + if ( $lastResult !== $currentResult ) { + $mismatch = true; + } + } + } + $results[$i] = $currentResult; + $lastResult = $currentResult; + } + if ( $mismatch ) { + if ( count( $results ) == 2 ) { + $resultsList = array(); + foreach ( $this->parsers as $i => $parser ) { + $resultsList[] = var_export( $results[$i], true ); + } + $diff = wfDiff( $resultsList[0], $resultsList[1] ); + } else { + $diff = '[too many parsers]'; + } + $msg = "ParserDiffTest: results mismatch on call to $name\n"; + if ( !$this->shortOutput ) { + $msg .= 'Arguments: ' . $this->formatArray( $args ) . "\n"; + } + $msg .= 'Results: ' . $this->formatArray( $results ) . "\n" . + "Diff: $diff\n"; + throw new MWException( $msg ); + } + return $lastResult; + } + + function formatArray( $array ) { + if ( $this->shortOutput ) { + foreach ( $array as $key => $value ) { + if ( $value instanceof ParserOutput ) { + $array[$key] = "ParserOutput: {$value->getText()}"; + } + } + } + return var_export( $array, true ); + } + + function setFunctionHook( $id, $callback, $flags = 0 ) { + $this->init(); + foreach ( $this->parsers as $parser ) { + $parser->setFunctionHook( $id, $callback, $flags ); + } + } + + /** + * @param Parser $parser + * @return bool + */ + function onClearState( &$parser ) { + // hack marker prefixes to get identical output + if ( !isset( $this->dtUniqPrefix ) ) { + $this->dtUniqPrefix = $parser->uniqPrefix(); + } else { + $parser->mUniqPrefix = $this->dtUniqPrefix; + } + return true; + } +} diff --git a/includes/parser/Parser_DiffTest.php b/includes/parser/Parser_DiffTest.php deleted file mode 100644 index 920b6f6621..0000000000 --- a/includes/parser/Parser_DiffTest.php +++ /dev/null @@ -1,143 +0,0 @@ -conf = $conf; - } - - function init() { - if ( !is_null( $this->parsers ) ) { - return; - } - - global $wgHooks; - static $doneHook = false; - if ( !$doneHook ) { - $doneHook = true; - $wgHooks['ParserClearState'][] = array( $this, 'onClearState' ); - } - if ( isset( $this->conf['shortOutput'] ) ) { - $this->shortOutput = $this->conf['shortOutput']; - } - - foreach ( $this->conf['parsers'] as $i => $parserConf ) { - if ( !is_array( $parserConf ) ) { - $class = $parserConf; - $parserConf = array( 'class' => $parserConf ); - } else { - $class = $parserConf['class']; - } - $this->parsers[$i] = new $class( $parserConf ); - } - } - - function __call( $name, $args ) { - $this->init(); - $results = array(); - $mismatch = false; - $lastResult = null; - $first = true; - foreach ( $this->parsers as $i => $parser ) { - $currentResult = call_user_func_array( array( &$this->parsers[$i], $name ), $args ); - if ( $first ) { - $first = false; - } else { - if ( is_object( $lastResult ) ) { - if ( $lastResult != $currentResult ) { - $mismatch = true; - } - } else { - if ( $lastResult !== $currentResult ) { - $mismatch = true; - } - } - } - $results[$i] = $currentResult; - $lastResult = $currentResult; - } - if ( $mismatch ) { - if ( count( $results ) == 2 ) { - $resultsList = array(); - foreach ( $this->parsers as $i => $parser ) { - $resultsList[] = var_export( $results[$i], true ); - } - $diff = wfDiff( $resultsList[0], $resultsList[1] ); - } else { - $diff = '[too many parsers]'; - } - $msg = "Parser_DiffTest: results mismatch on call to $name\n"; - if ( !$this->shortOutput ) { - $msg .= 'Arguments: ' . $this->formatArray( $args ) . "\n"; - } - $msg .= 'Results: ' . $this->formatArray( $results ) . "\n" . - "Diff: $diff\n"; - throw new MWException( $msg ); - } - return $lastResult; - } - - function formatArray( $array ) { - if ( $this->shortOutput ) { - foreach ( $array as $key => $value ) { - if ( $value instanceof ParserOutput ) { - $array[$key] = "ParserOutput: {$value->getText()}"; - } - } - } - return var_export( $array, true ); - } - - function setFunctionHook( $id, $callback, $flags = 0 ) { - $this->init(); - foreach ( $this->parsers as $parser ) { - $parser->setFunctionHook( $id, $callback, $flags ); - } - } - - /** - * @param Parser $parser - * @return bool - */ - function onClearState( &$parser ) { - // hack marker prefixes to get identical output - if ( !isset( $this->dtUniqPrefix ) ) { - $this->dtUniqPrefix = $parser->uniqPrefix(); - } else { - $parser->mUniqPrefix = $this->dtUniqPrefix; - } - return true; - } -}