Fix for Preforce utility does not check if p4 command exists

main
Fabian Grutschus 11 years ago
parent cd209e3180
commit 5ae5963acd

@ -368,9 +368,9 @@ class Perforce
public static function checkServerExists($url, ProcessExecutor $processExecutor)
{
$result = '';
$processExecutor->execute('p4 -p ' . $url . ' info -s', $result);
$exitCode = $processExecutor->execute('p4 -p ' . $url . ' info -s', $result);
return false === strpos($result, 'error');
return false === strpos($result, 'error') && 127 != $exitCode;
}
public function getComposerInformation($identifier)

@ -631,6 +631,27 @@ class PerforceTest extends \PHPUnit_Framework_TestCase
$result = $this->perforce->checkServerExists('perforce.does.not.exist:port', $processExecutor);
$this->assertTrue($result);
}
/**
* Test if "p4" command is missing.
*
* @covers \Composer\Util\Perforce::checkServerExists
*
* @return void
*/
public function testCheckServerExistsWithMissingPerforceClient()
{
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$expectedCommand = 'p4 -p perforce.does.exist:port info -s';
$processExecutor->expects($this->at(0))
->method('execute')
//->with($this->equalTo($expectedCommand), $this->equalTo(null))
->will($this->returnValue(127));
$result = $this->perforce->checkServerExists('perforce.does.exist:port', $processExecutor);
$this->assertFalse($result);
}
public static function getComposerJson()
{

Loading…
Cancel
Save