1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-10 17:12:51 +00:00

Remove usage of echo when executing Composer script

This commit is contained in:
Fabien Potencier 2016-11-05 21:18:18 -07:00
parent 0ffa1db489
commit 103624d4ed
3 changed files with 27 additions and 4 deletions

View file

@ -340,7 +340,7 @@ class EventDispatcherTest extends TestCase
->setConstructorArgs(array(
$this->createComposerInstance(),
$io = $this->getMock('Composer\IO\IOInterface'),
new ProcessExecutor,
new ProcessExecutor($io),
))
->setMethods(array('getListeners'))
->getMock();
@ -354,9 +354,11 @@ class EventDispatcherTest extends TestCase
->method('writeError')
->with($this->equalTo('> echo foo'));
ob_start();
$io->expects($this->once())
->method('write')
->with($this->equalTo('foo'.PHP_EOL));
$dispatcher->dispatchScript(ScriptEvents::POST_INSTALL_CMD, false);
$this->assertEquals('foo', trim(ob_get_clean()));
}
public function testDispatcherOutputsErrorOnFailedCommand()

View file

@ -35,6 +35,17 @@ class ProcessExecutorTest extends TestCase
$this->assertEquals("foo".PHP_EOL, $output);
}
public function testUseIOIsNotNullAndIfNotCaptured()
{
$io = $this->getMock('Composer\IO\IOInterface');
$io->expects($this->once())
->method('write')
->with($this->equalTo('foo'.PHP_EOL));
$process = new ProcessExecutor($io);
$process->execute('echo foo');
}
public function testExecuteCapturesStderr()
{
$process = new ProcessExecutor;