Fixed generating packageMap in AutoloaderGenerater (fixes generating include_paths.php file)

main
Martin Hasoň 12 years ago
parent 321065b124
commit 45d7eb5b53

@ -178,7 +178,7 @@ EOF;
public function buildPackageMap(InstallationManager $installationManager, PackageInterface $mainPackage, array $packages)
{
// build package => install path map
$packageMap = array();
$packageMap = array(array($mainPackage, ''));
foreach ($packages as $package) {
if ($package instanceof AliasPackage) {
@ -203,9 +203,10 @@ EOF;
*/
public function parseAutoloads(array $packageMap, PackageInterface $mainPackage)
{
$mainPackageMap = array_shift($packageMap);
$sortedPackageMap = $this->sortPackageMap($packageMap);
$sortedPackageMap[] = array($mainPackage, '');
array_unshift($packageMap, array($mainPackage, ''));
$sortedPackageMap[] = $mainPackageMap;
array_unshift($packageMap, $mainPackageMap);
$psr0 = $this->parseAutoloadsType($packageMap, 'psr-0', $mainPackage);
$classmap = $this->parseAutoloadsType($sortedPackageMap, 'classmap', $mainPackage);

@ -524,6 +524,34 @@ EOF;
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()
{
$package = new Package('a', '1.0', '1.0');

Loading…
Cancel
Save