1
0
Fork 0
composer/tests/Composer/Test/Repository/Vcs/SvnDriverTest.php

103 lines
2.8 KiB
PHP
Raw Normal View History

<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
2012-03-02 21:08:40 +00:00
namespace Composer\Test\Repository\Vcs;
use Composer\Repository\Vcs\SvnDriver;
2012-04-25 15:35:47 +00:00
use Composer\Config;
use Composer\Test\TestCase;
use Composer\Util\Filesystem;
use Composer\Util\Platform;
class SvnDriverTest extends TestCase
{
protected $home;
protected $config;
public function setUp()
{
$this->home = $this->getUniqueTmpDirectory();
$this->config = new Config();
$this->config->merge(array(
'config' => array(
'home' => $this->home,
),
));
}
public function tearDown()
{
$fs = new Filesystem();
$fs->removeDirectory($this->home);
}
/**
2012-03-24 23:29:14 +00:00
* @expectedException RuntimeException
*/
2012-03-24 23:29:14 +00:00
public function testWrongCredentialsInUrl()
{
$console = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
$httpDownloader = $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock();
2017-03-08 14:07:29 +00:00
$output = "svn: OPTIONS of 'https://corp.svn.local/repo':";
$output .= " authorization failed: Could not authenticate to server:";
$output .= " rejected Basic challenge (https://corp.svn.local/)";
$process = $this->getMockBuilder('Composer\Util\ProcessExecutor')->getMock();
$process->expects($this->at(1))
->method('execute')
->will($this->returnValue(1));
2013-06-15 00:16:24 +00:00
$process->expects($this->exactly(7))
2012-03-24 23:29:14 +00:00
->method('getErrorOutput')
->will($this->returnValue($output));
$process->expects($this->at(2))
->method('execute')
->will($this->returnValue(0));
2012-08-31 06:12:20 +00:00
$repoConfig = array(
'url' => 'https://till:secret@corp.svn.local/repo',
2012-08-31 06:12:20 +00:00
);
$svn = new SvnDriver($repoConfig, $console, $this->config, $httpDownloader, $process);
2012-04-29 18:43:56 +00:00
$svn->initialize();
}
2012-03-08 17:19:31 +00:00
private function getCmd($cmd)
{
if (Platform::isWindows()) {
2012-03-08 17:19:31 +00:00
return strtr($cmd, "'", '"');
}
return $cmd;
}
public static function supportProvider()
{
return array(
array('http://svn.apache.org', true),
2012-03-18 15:35:09 +00:00
array('https://svn.sf.net', true),
array('svn://example.org', true),
array('svn+ssh://example.org', true),
);
}
/**
* @dataProvider supportProvider
*/
public function testSupport($url, $assertion)
{
$config = new Config();
$result = SvnDriver::supports($this->getMockBuilder('Composer\IO\IOInterface')->getMock(), $config, $url);
$this->assertEquals($assertion, $result);
}
}