diff --git a/lib/Cake/Console/ConsoleOutput.php b/lib/Cake/Console/ConsoleOutput.php index 32abf7123..4f56fb5c4 100644 --- a/lib/Cake/Console/ConsoleOutput.php +++ b/lib/Cake/Console/ConsoleOutput.php @@ -162,6 +162,7 @@ class ConsoleOutput { $this->_output = fopen($stream, 'w'); if ((DS === '\\' && !(bool)env('ANSICON')) || + $stream === 'php://output' || (function_exists('posix_isatty') && !posix_isatty($this->_output)) ) { $this->_outputAs = self::PLAIN; diff --git a/lib/Cake/Test/Case/Console/ConsoleOutputTest.php b/lib/Cake/Test/Case/Console/ConsoleOutputTest.php index 4b26aae25..5eabefd58 100644 --- a/lib/Cake/Test/Case/Console/ConsoleOutputTest.php +++ b/lib/Cake/Test/Case/Console/ConsoleOutputTest.php @@ -231,6 +231,17 @@ class ConsoleOutputTest extends CakeTestCase { $this->output->write('Bad Regular', false); } +/** + * test plain output when php://output, as php://output is + * not compatible with posix_ functions. + * + * @return void + */ + public function testOutputAsPlainWhenOutputStream() { + $output = $this->getMock('ConsoleOutput', array('_write'), array('php://output')); + $this->assertEquals(ConsoleOutput::PLAIN, $output->outputAs()); + } + /** * test plain output only strips tags used for formatting. *