OSDN Git Service

add unit test for regular logger
authorscribu <mail@scribu.net>
Fri, 6 Sep 2013 16:54:53 +0000 (19:54 +0300)
committerscribu <mail@scribu.net>
Fri, 6 Sep 2013 17:03:12 +0000 (20:03 +0300)
php/WP_CLI/Loggers/Regular.php
php/WP_CLI/Runner.php
tests/test-logging.php [new file with mode: 0644]

index b992faa..b3ad212 100644 (file)
@@ -4,12 +4,21 @@ namespace WP_CLI\Loggers;
 
 class Regular {
 
+       function __construct( $in_color ) {
+               $this->in_color = $in_color;
+       }
+
+       protected function write( $handle, $str ) {
+               fwrite( $handle, $str );
+       }
+
        private function _line( $message, $label, $color, $handle = STDOUT ) {
-               fwrite( $handle, \WP_CLI::colorize( "$color$label:%n" ) . " $message\n" );
+               $label = \cli\Colors::colorize( "$color$label:%n", $this->in_color );
+               $this->write( $handle, "$label $message\n" );
        }
 
        function info( $message ) {
-               fwrite( STDOUT, $message . "\n" );
+               $this->write( STDOUT, $message . "\n" );
        }
 
        function success( $message ) {
index 9dab776..a81e0d5 100644 (file)
@@ -338,7 +338,7 @@ class Runner {
                if ( $this->config['quiet'] )
                        $logger = new \WP_CLI\Loggers\Quiet;
                else
-                       $logger = new \WP_CLI\Loggers\Regular;
+                       $logger = new \WP_CLI\Loggers\Regular( $this->in_color() );
 
                WP_CLI::set_logger( $logger );
        }
diff --git a/tests/test-logging.php b/tests/test-logging.php
new file mode 100644 (file)
index 0000000..02899d9
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+class LoggerMock extends WP_CLI\Loggers\Regular {
+
+       protected function write( $handle, $str ) {
+               echo $str;
+       }
+}
+
+
+class LoggingTests extends PHPUnit_Framework_TestCase {
+
+       function testLogEscaping() {
+               $logger = new LoggerMock( false );
+
+               $message = 'foo%20bar';
+
+               $this->expectOutputString( "Success: $message\n" );
+               $logger->success( $message );
+       }
+}
+