Added shortOutput option.
authorTim Starling <tstarling@users.mediawiki.org>
Fri, 15 Aug 2008 16:03:38 +0000 (16:03 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Fri, 15 Aug 2008 16:03:38 +0000 (16:03 +0000)
includes/parser/Parser_DiffTest.php

index be3702c..2a677ea 100644 (file)
@@ -6,6 +6,7 @@
 class Parser_DiffTest
 {
        var $parsers, $conf;
+       var $shortOutput = false;
 
        var $dfUniqPrefix;
 
@@ -28,6 +29,9 @@ class Parser_DiffTest
                        $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 ) ) {
@@ -66,12 +70,23 @@ class Parser_DiffTest
                }
                if ( $mismatch ) {
                        throw new MWException( "Parser_DiffTest: results mismatch on call to $name\n" .
-                               'Arguments: ' . var_export( $args, true ) . "\n" .
-                               'Results: ' . var_export( $results, true ) . "\n" );
+                               'Arguments: ' . $this->formatArray( $args ) . "\n" .
+                               'Results: ' . $this->formatArray( $results ) . "\n" );
                }
                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 $i => $parser ) {