You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.4 KiB
120 lines
3.4 KiB
<?php
|
|
|
|
namespace Composer\Installers\Test;
|
|
|
|
use Composer\Composer;
|
|
use Composer\Installers\SiteDirectInstaller;
|
|
use Composer\Package\Package;
|
|
|
|
class SiteDirectInstallerTest extends TestCase
|
|
{
|
|
/** @var SiteDirectInstaller $installer */
|
|
protected $installer;
|
|
|
|
/** @var Package */
|
|
private $package;
|
|
|
|
public function SetUp()
|
|
{
|
|
$this->package = new Package('sitedirect/some_name', '1.0.9', '1.0');
|
|
$this->installer = new SiteDirectInstaller(
|
|
$this->package,
|
|
new Composer()
|
|
);
|
|
|
|
}
|
|
|
|
/**
|
|
* @dataProvider dataProvider
|
|
*/
|
|
public function testInflectPackageVars($data, $expected)
|
|
{
|
|
$result = $this->installer->inflectPackageVars($data);
|
|
$this->assertEquals($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider dataProvider
|
|
*/
|
|
public function testInstallPath($data, $expected)
|
|
{
|
|
$result = $this->installer->inflectPackageVars($data);
|
|
$path = $this->createPackage($data);
|
|
|
|
// use $result to get the proper capitalization for the vendor path
|
|
$expectedPath = "modules/{$result['vendor']}/{$result['name']}/";
|
|
$notExpectedPath = "modules/{$data['vendor']}/{$data['name']}/";
|
|
$this->assertEquals($expectedPath, $path);
|
|
$this->assertNotEquals($notExpectedPath, $path);
|
|
}
|
|
|
|
/**
|
|
* @param $data
|
|
* @return string
|
|
*/
|
|
private function createPackage($data)
|
|
{
|
|
$fullName = "{$data['vendor']}/{$data['name']}";
|
|
|
|
$package = new Package($fullName, '1.0', '1.0');
|
|
$package->setType('sitedirect-module');
|
|
$installer = new SiteDirectInstaller($package, new Composer());
|
|
|
|
$path = $installer->getInstallPath($package, 'sitedirect');
|
|
return $path;
|
|
}
|
|
|
|
public function dataProvider()
|
|
{
|
|
return array(
|
|
array(
|
|
'data' => array(
|
|
'name' => 'kernel',
|
|
'vendor' => 'sitedirect',
|
|
'type' => 'sitedirect-module',
|
|
),
|
|
'expected' => array(
|
|
'name' => 'Kernel',
|
|
'vendor' => 'SiteDirect',
|
|
'type' => 'sitedirect-module',
|
|
)
|
|
),
|
|
array(
|
|
'data' => array(
|
|
'name' => 'that_guy',
|
|
'vendor' => 'whatGuy',
|
|
'type' => 'sitedirect-module',
|
|
),
|
|
'expected' => array(
|
|
'name' => 'ThatGuy',
|
|
'vendor' => 'whatGuy',
|
|
'type' => 'sitedirect-module',
|
|
)
|
|
),
|
|
array(
|
|
'data' => array(
|
|
'name' => 'checkout',
|
|
'vendor' => 'someVendor',
|
|
'type' => 'sitedirect-plugin',
|
|
),
|
|
'expected' => array(
|
|
'name' => 'Checkout',
|
|
'vendor' => 'someVendor',
|
|
'type' => 'sitedirect-plugin',
|
|
)
|
|
),
|
|
array(
|
|
'data' => array(
|
|
'name' => 'checkout',
|
|
'vendor' => 'siteDirect',
|
|
'type' => 'sitedirect-plugin',
|
|
),
|
|
'expected' => array(
|
|
'name' => 'Checkout',
|
|
'vendor' => 'SiteDirect',
|
|
'type' => 'sitedirect-plugin',
|
|
)
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|