Merge pull request #2008 from phansys/svn-auth

Allowed to 5 auth requests in svn before fail
main
Jordi Boggiano 11 years ago
commit ca69917969

@ -20,6 +20,8 @@ use Composer\IO\IOInterface;
*/ */
class Svn class Svn
{ {
const MAX_QTY_AUTH_TRIES = 5;
/** /**
* @var array * @var array
*/ */
@ -50,6 +52,11 @@ class Svn
*/ */
protected $process; protected $process;
/**
* @var integer
*/
protected $qtyAuthTries = 0;
/** /**
* @param string $url * @param string $url
* @param \Composer\IO\IOInterface $io * @param \Composer\IO\IOInterface $io
@ -112,11 +119,8 @@ class Svn
); );
} }
// TODO keep a count of user auth attempts and ask 5 times before // try to authenticate if maximum quantity of tries not reached
// failing hard (currently it fails hard directly if the URL has credentials) if ($this->qtyAuthTries++ < self::MAX_QTY_AUTH_TRIES || !$this->hasAuth()) {
// try to authenticate
if (!$this->hasAuth()) {
$this->doAuthDance(); $this->doAuthDance();
// restart the process // restart the process

@ -23,7 +23,7 @@ class SvnDriverTest extends \PHPUnit_Framework_TestCase
public function testWrongCredentialsInUrl() public function testWrongCredentialsInUrl()
{ {
$console = $this->getMock('Composer\IO\IOInterface'); $console = $this->getMock('Composer\IO\IOInterface');
$console->expects($this->once()) $console->expects($this->exactly(6))
->method('isInteractive') ->method('isInteractive')
->will($this->returnValue(true)); ->will($this->returnValue(true));
@ -35,7 +35,7 @@ class SvnDriverTest extends \PHPUnit_Framework_TestCase
$process->expects($this->at(1)) $process->expects($this->at(1))
->method('execute') ->method('execute')
->will($this->returnValue(1)); ->will($this->returnValue(1));
$process->expects($this->once()) $process->expects($this->exactly(7))
->method('getErrorOutput') ->method('getErrorOutput')
->will($this->returnValue($output)); ->will($this->returnValue($output));
$process->expects($this->at(2)) $process->expects($this->at(2))

Loading…
Cancel
Save