1
0
Fork 0

Merge pull request #2008 from phansys/svn-auth

Allowed to 5 auth requests in svn before fail
pull/2014/merge
Jordi Boggiano 2013-06-18 06:24:00 -07:00
commit ca69917969
2 changed files with 11 additions and 7 deletions

View File

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

View File

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