Merge pull request #3685 from xfornesa/issue3647

fix for issue #3647
main
Nils Adermann 10 years ago
commit 2697673666

@ -96,13 +96,11 @@ class ConsoleIO extends BaseIO
public function write($messages, $newline = true) public function write($messages, $newline = true)
{ {
if (null !== $this->startTime) { if (null !== $this->startTime) {
$messages = (array) $messages; $memoryUsage = memory_get_usage() / 1024 / 1024;
$messages[0] = sprintf( $timeSpent = microtime(true) - $this->startTime;
'[%.1fMB/%.2fs] %s', $messages = array_map(function ($message) use ($memoryUsage, $timeSpent) {
memory_get_usage() / 1024 / 1024, return sprintf('[%.1fMB/%.2fs] %s', $memoryUsage, $timeSpent, $message);
microtime(true) - $this->startTime, }, (array) $messages);
$messages[0]
);
} }
$this->output->write($messages, $newline); $this->output->write($messages, $newline);
$this->lastMessage = join($newline ? "\n" : '', (array) $messages); $this->lastMessage = join($newline ? "\n" : '', (array) $messages);

@ -49,6 +49,30 @@ class ConsoleIOTest extends TestCase
$consoleIO->write('some information about something', false); $consoleIO->write('some information about something', false);
} }
public function testWriteWithMultipleLineStringWhenDebugging()
{
$inputMock = $this->getMock('Symfony\Component\Console\Input\InputInterface');
$outputMock = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
$outputMock->expects($this->once())
->method('write')
->with(
$this->callback(function($messages){
$result = preg_match("[(.*)/(.*) First line]", $messages[0]) > 0;
$result &= preg_match("[(.*)/(.*) Second line]", $messages[1]) > 0;
return $result;
}),
$this->equalTo(false)
);
$helperMock = $this->getMock('Symfony\Component\Console\Helper\HelperSet');
$consoleIO = new ConsoleIO($inputMock, $outputMock, $helperMock);
$startTime = microtime(true);
$consoleIO->enableDebugging($startTime);
$example = explode('\n', 'First line\nSecond lines');
$consoleIO->write($example, false);
}
public function testOverwrite() public function testOverwrite()
{ {
$inputMock = $this->getMock('Symfony\Component\Console\Input\InputInterface'); $inputMock = $this->getMock('Symfony\Component\Console\Input\InputInterface');

Loading…
Cancel
Save