Mercurial > hg > isophonics-drupal-site
comparison vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 7a779792577d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 namespace Composer\Installers\Test; | |
3 | |
4 use Composer\Installers\CakePHPInstaller; | |
5 use Composer\Repository\RepositoryManager; | |
6 use Composer\Repository\InstalledArrayRepository; | |
7 use Composer\Package\Package; | |
8 use Composer\Package\RootPackage; | |
9 use Composer\Package\Link; | |
10 use Composer\Package\Version\VersionParser; | |
11 use Composer\Composer; | |
12 use Composer\Config; | |
13 | |
14 class CakePHPInstallerTest extends TestCase | |
15 { | |
16 private $composer; | |
17 private $io; | |
18 | |
19 /** | |
20 * setUp | |
21 * | |
22 * @return void | |
23 */ | |
24 public function setUp() | |
25 { | |
26 $this->package = new Package('CamelCased', '1.0', '1.0'); | |
27 $this->io = $this->getMock('Composer\IO\PackageInterface'); | |
28 $this->composer = new Composer(); | |
29 $this->composer->setConfig(new Config(false)); | |
30 } | |
31 | |
32 /** | |
33 * testInflectPackageVars | |
34 * | |
35 * @return void | |
36 */ | |
37 public function testInflectPackageVars() | |
38 { | |
39 $installer = new CakePHPInstaller($this->package, $this->composer); | |
40 $result = $installer->inflectPackageVars(array('name' => 'CamelCased')); | |
41 $this->assertEquals($result, array('name' => 'CamelCased')); | |
42 | |
43 $installer = new CakePHPInstaller($this->package, $this->composer); | |
44 $result = $installer->inflectPackageVars(array('name' => 'with-dash')); | |
45 $this->assertEquals($result, array('name' => 'WithDash')); | |
46 | |
47 $installer = new CakePHPInstaller($this->package, $this->composer); | |
48 $result = $installer->inflectPackageVars(array('name' => 'with_underscore')); | |
49 $this->assertEquals($result, array('name' => 'WithUnderscore')); | |
50 | |
51 $installer = new CakePHPInstaller($this->package, $this->composer); | |
52 $result = $installer->inflectPackageVars(array('name' => 'cake/acl')); | |
53 $this->assertEquals($result, array('name' => 'Cake/Acl')); | |
54 | |
55 $installer = new CakePHPInstaller($this->package, $this->composer); | |
56 $result = $installer->inflectPackageVars(array('name' => 'cake/debug-kit')); | |
57 $this->assertEquals($result, array('name' => 'Cake/DebugKit')); | |
58 } | |
59 | |
60 /** | |
61 * Test getLocations returning appropriate values based on CakePHP version | |
62 * | |
63 */ | |
64 public function testGetLocations() { | |
65 $package = new RootPackage('CamelCased', '1.0', '1.0'); | |
66 $composer = $this->composer; | |
67 $rm = new RepositoryManager( | |
68 $this->getMock('Composer\IO\IOInterface'), | |
69 $this->getMock('Composer\Config') | |
70 ); | |
71 $composer->setRepositoryManager($rm); | |
72 $installer = new CakePHPInstaller($package, $composer); | |
73 | |
74 // 2.0 < cakephp < 3.0 | |
75 $this->setCakephpVersion($rm, '2.0.0'); | |
76 $result = $installer->getLocations(); | |
77 $this->assertContains('Plugin/', $result['plugin']); | |
78 | |
79 $this->setCakephpVersion($rm, '2.5.9'); | |
80 $result = $installer->getLocations(); | |
81 $this->assertContains('Plugin/', $result['plugin']); | |
82 | |
83 $this->setCakephpVersion($rm, '~2.5'); | |
84 $result = $installer->getLocations(); | |
85 $this->assertContains('Plugin/', $result['plugin']); | |
86 | |
87 // special handling for 2.x versions when 3.x is still in development | |
88 $this->setCakephpVersion($rm, 'dev-master'); | |
89 $result = $installer->getLocations(); | |
90 $this->assertContains('Plugin/', $result['plugin']); | |
91 | |
92 $this->setCakephpVersion($rm, '>=2.5'); | |
93 $result = $installer->getLocations(); | |
94 $this->assertContains('Plugin/', $result['plugin']); | |
95 | |
96 // cakephp >= 3.0 | |
97 $this->setCakephpVersion($rm, '3.0.*-dev'); | |
98 $result = $installer->getLocations(); | |
99 $this->assertContains('vendor/{$vendor}/{$name}/', $result['plugin']); | |
100 | |
101 $this->setCakephpVersion($rm, '~8.8'); | |
102 $result = $installer->getLocations(); | |
103 $this->assertContains('vendor/{$vendor}/{$name}/', $result['plugin']); | |
104 } | |
105 | |
106 protected function setCakephpVersion($rm, $version) { | |
107 $parser = new VersionParser(); | |
108 list(, $version) = explode(' ', $parser->parseConstraints($version)); | |
109 $installed = new InstalledArrayRepository(); | |
110 $package = new Package('cakephp/cakephp', $version, $version); | |
111 $installed->addPackage($package); | |
112 $rm->setLocalRepository($installed); | |
113 } | |
114 | |
115 } |