You are here

class CakePHPInstallerTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php \Composer\Installers\Test\CakePHPInstallerTest

Hierarchy

  • class \Composer\Installers\Test\TestCase extends \Composer\Installers\Test\PHPUnit_Framework_TestCase

Expanded class hierarchy of CakePHPInstallerTest

File

vendor/composer/installers/tests/Composer/Installers/Test/CakePHPInstallerTest.php, line 14

Namespace

Composer\Installers\Test
View source
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('Composer\\IO\\PackageInterface');
    $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('Composer\\IO\\IOInterface'), $this
      ->getMock('Composer\\Config'));
    $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
      ->assertEquals('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);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CakePHPInstallerTest::$composer private property
CakePHPInstallerTest::$io private property
CakePHPInstallerTest::setCakephpVersion protected function
CakePHPInstallerTest::setUp public function setUp
CakePHPInstallerTest::testGetLocations public function Test getLocations returning appropriate values based on CakePHP version
CakePHPInstallerTest::testInflectPackageVars public function testInflectPackageVars
TestCase::$parser private static property
TestCase::ensureDirectoryExistsAndClear protected function
TestCase::getAliasPackage protected function
TestCase::getPackage protected function
TestCase::getVersionConstraint protected function
TestCase::getVersionParser protected static function