Add failing test showing that packages fail to be installed if they match a previous alias which was not removed yet
parent
82502684b2
commit
17ed09be2e
|
@ -0,0 +1,84 @@
|
||||||
|
--TEST--
|
||||||
|
Updating an aliased package where the old alias matches the new package should not fail
|
||||||
|
--COMPOSER--
|
||||||
|
{
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "package",
|
||||||
|
"package": [
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "1.10.x-dev",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
|
||||||
|
"source": { "type": "git", "url": "", "reference": "downgradedref" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "dev-master",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "2.x-dev" } },
|
||||||
|
"source": { "type": "git", "url": "", "reference": "newref" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"a/a": "^1.0"
|
||||||
|
},
|
||||||
|
"minimum-stability": "dev"
|
||||||
|
}
|
||||||
|
--LOCK--
|
||||||
|
{
|
||||||
|
"_": "outdated lock file, should not have to be loaded in an update",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "dev-master",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
|
||||||
|
"source": { "type": "git", "url": "", "reference": "installedref" }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false
|
||||||
|
}
|
||||||
|
--INSTALLED--
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "dev-master",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
|
||||||
|
"source": { "type": "git", "url": "", "reference": "installedref" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
--RUN--
|
||||||
|
update
|
||||||
|
--EXPECT-LOCK--
|
||||||
|
{
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "1.10.x-dev",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
|
||||||
|
"source": { "type": "git", "url": "", "reference": "downgradedref" },
|
||||||
|
"type": "library"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "dev",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": [],
|
||||||
|
"platform-dev": []
|
||||||
|
}
|
||||||
|
--EXPECT-INSTALLED--
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "a/a", "version": "1.10.x-dev",
|
||||||
|
"source": { "type": "git", "url": "", "reference": "downgradedref" },
|
||||||
|
"type": "library",
|
||||||
|
"extra": { "branch-alias": { "dev-master": "1.10.x-dev" } }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
--EXPECT--
|
||||||
|
Marking a/a (1.10.x-dev installedref) as uninstalled, alias of a/a (dev-master installedref)
|
||||||
|
Downgrading a/a (dev-master installedref => 1.10.x-dev downgradedref)
|
|
@ -66,8 +66,10 @@ class InstallationManagerMock extends InstallationManager
|
||||||
$this->updated[] = array($operation->getInitialPackage(), $operation->getTargetPackage());
|
$this->updated[] = array($operation->getInitialPackage(), $operation->getTargetPackage());
|
||||||
$this->trace[] = strip_tags((string) $operation);
|
$this->trace[] = strip_tags((string) $operation);
|
||||||
$repo->removePackage($operation->getInitialPackage());
|
$repo->removePackage($operation->getInitialPackage());
|
||||||
|
if (!$repo->hasPackage($operation->getTargetPackage())) {
|
||||||
$repo->addPackage(clone $operation->getTargetPackage());
|
$repo->addPackage(clone $operation->getTargetPackage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function uninstall(RepositoryInterface $repo, UninstallOperation $operation)
|
public function uninstall(RepositoryInterface $repo, UninstallOperation $operation)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue