Fixed generating packageMap in AutoloaderGenerater (fixes generating include_paths.php file)
parent
321065b124
commit
45d7eb5b53
|
@ -178,7 +178,7 @@ EOF;
|
||||||
public function buildPackageMap(InstallationManager $installationManager, PackageInterface $mainPackage, array $packages)
|
public function buildPackageMap(InstallationManager $installationManager, PackageInterface $mainPackage, array $packages)
|
||||||
{
|
{
|
||||||
// build package => install path map
|
// build package => install path map
|
||||||
$packageMap = array();
|
$packageMap = array(array($mainPackage, ''));
|
||||||
|
|
||||||
foreach ($packages as $package) {
|
foreach ($packages as $package) {
|
||||||
if ($package instanceof AliasPackage) {
|
if ($package instanceof AliasPackage) {
|
||||||
|
@ -203,9 +203,10 @@ EOF;
|
||||||
*/
|
*/
|
||||||
public function parseAutoloads(array $packageMap, PackageInterface $mainPackage)
|
public function parseAutoloads(array $packageMap, PackageInterface $mainPackage)
|
||||||
{
|
{
|
||||||
|
$mainPackageMap = array_shift($packageMap);
|
||||||
$sortedPackageMap = $this->sortPackageMap($packageMap);
|
$sortedPackageMap = $this->sortPackageMap($packageMap);
|
||||||
$sortedPackageMap[] = array($mainPackage, '');
|
$sortedPackageMap[] = $mainPackageMap;
|
||||||
array_unshift($packageMap, array($mainPackage, ''));
|
array_unshift($packageMap, $mainPackageMap);
|
||||||
|
|
||||||
$psr0 = $this->parseAutoloadsType($packageMap, 'psr-0', $mainPackage);
|
$psr0 = $this->parseAutoloadsType($packageMap, 'psr-0', $mainPackage);
|
||||||
$classmap = $this->parseAutoloadsType($sortedPackageMap, 'classmap', $mainPackage);
|
$classmap = $this->parseAutoloadsType($sortedPackageMap, 'classmap', $mainPackage);
|
||||||
|
|
|
@ -524,6 +524,34 @@ EOF;
|
||||||
set_include_path($oldIncludePath);
|
set_include_path($oldIncludePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIncludePathsInMainPackage()
|
||||||
|
{
|
||||||
|
$package = new Package('a', '1.0', '1.0');
|
||||||
|
$package->setIncludePaths(array('/lib', '/src'));
|
||||||
|
|
||||||
|
$packages = array($a = new Package("a/a", "1.0", "1.0"));
|
||||||
|
$a->setIncludePaths(array("lib/"));
|
||||||
|
|
||||||
|
$this->repository->expects($this->once())
|
||||||
|
->method("getPackages")
|
||||||
|
->will($this->returnValue($packages));
|
||||||
|
|
||||||
|
mkdir($this->vendorDir."/composer", 0777, true);
|
||||||
|
|
||||||
|
$this->generator->dump($this->config, $this->repository, $package, $this->im, "composer", false, '_12');
|
||||||
|
|
||||||
|
$oldIncludePath = get_include_path();
|
||||||
|
|
||||||
|
require $this->vendorDir."/autoload.php";
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
$this->workingDir."/lib".PATH_SEPARATOR.$this->workingDir."/src".PATH_SEPARATOR.$this->vendorDir."/a/a/lib".PATH_SEPARATOR.$oldIncludePath,
|
||||||
|
get_include_path()
|
||||||
|
);
|
||||||
|
|
||||||
|
set_include_path($oldIncludePath);
|
||||||
|
}
|
||||||
|
|
||||||
public function testIncludePathFileWithoutPathsIsSkipped()
|
public function testIncludePathFileWithoutPathsIsSkipped()
|
||||||
{
|
{
|
||||||
$package = new Package('a', '1.0', '1.0');
|
$package = new Package('a', '1.0', '1.0');
|
||||||
|
|
Loading…
Reference in New Issue