Файл: vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php
Строк: 158
<?php
namespace ComposerInstallersTest;
use ComposerInstallersCakePHPInstaller;
use ComposerRepositoryRepositoryManager;
use ComposerRepositoryInstalledArrayRepository;
use ComposerPackagePackage;
use ComposerPackageRootPackage;
use ComposerPackageLink;
use ComposerPackageVersionVersionParser;
use ComposerComposer;
use ComposerConfig;
class CakePHPInstallerTest extends TestCase
{
private $composer;
private $io;
/**
* setUp
*
* @return void
*/
public function setUp()
{
$this->package = new Package('CamelCased', '1.0', '1.0');
$this->io = $this->getMock('ComposerIOPackageInterface');
$this->composer = new Composer();
$this->composer->setConfig(new Config(false));
}
/**
* testInflectPackageVars
*
* @return void
*/
public function testInflectPackageVars()
{
$installer = new CakePHPInstaller($this->package, $this->composer);
$result = $installer->inflectPackageVars(array('name' => 'CamelCased'));
$this->assertEquals($result, array('name' => 'CamelCased'));
$installer = new CakePHPInstaller($this->package, $this->composer);
$result = $installer->inflectPackageVars(array('name' => 'with-dash'));
$this->assertEquals($result, array('name' => 'WithDash'));
$installer = new CakePHPInstaller($this->package, $this->composer);
$result = $installer->inflectPackageVars(array('name' => 'with_underscore'));
$this->assertEquals($result, array('name' => 'WithUnderscore'));
$installer = new CakePHPInstaller($this->package, $this->composer);
$result = $installer->inflectPackageVars(array('name' => 'cake/acl'));
$this->assertEquals($result, array('name' => 'Cake/Acl'));
$installer = new CakePHPInstaller($this->package, $this->composer);
$result = $installer->inflectPackageVars(array('name' => 'cake/debug-kit'));
$this->assertEquals($result, array('name' => 'Cake/DebugKit'));
}
/**
* Test getLocations returning appropriate values based on CakePHP version
*
*/
public function testGetLocations() {
$package = new RootPackage('CamelCased', '1.0', '1.0');
$composer = $this->composer;
$rm = new RepositoryManager(
$this->getMock('ComposerIOIOInterface'),
$this->getMock('ComposerConfig')
);
$composer->setRepositoryManager($rm);
$installer = new CakePHPInstaller($package, $composer);
// 2.0 < cakephp < 3.0
$this->setCakephpVersion($rm, '2.0.0');
$result = $installer->getLocations();
$this->assertContains('Plugin/', $result['plugin']);
$this->setCakephpVersion($rm, '2.5.9');
$result = $installer->getLocations();
$this->assertContains('Plugin/', $result['plugin']);
$this->setCakephpVersion($rm, '~2.5');
$result = $installer->getLocations();
$this->assertContains('Plugin/', $result['plugin']);
// special handling for 2.x versions when 3.x is still in development
$this->setCakephpVersion($rm, 'dev-master');
$result = $installer->getLocations();
$this->assertContains('Plugin/', $result['plugin']);
$this->setCakephpVersion($rm, '>=2.5');
$result = $installer->getLocations();
$this->assertContains('Plugin/', $result['plugin']);
// cakephp >= 3.0
$this->setCakephpVersion($rm, '3.0.*-dev');
$result = $installer->getLocations();
$this->assertContains('vendor/{$vendor}/{$name}/', $result['plugin']);
$this->setCakephpVersion($rm, '~8.8');
$result = $installer->getLocations();
$this->assertContains('vendor/{$vendor}/{$name}/', $result['plugin']);
}
protected function setCakephpVersion($rm, $version) {
$parser = new VersionParser();
list(, $version) = explode(' ', $parser->parseConstraints($version));
$installed = new InstalledArrayRepository();
$package = new Package('cakephp/cakephp', $version, $version);
$installed->addPackage($package);
$rm->setLocalRepository($installed);
}
}