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->trace[] = strip_tags((string) $operation);
|
||||
$repo->removePackage($operation->getInitialPackage());
|
||||
if (!$repo->hasPackage($operation->getTargetPackage())) {
|
||||
$repo->addPackage(clone $operation->getTargetPackage());
|
||||
}
|
||||
}
|
||||
|
||||
public function uninstall(RepositoryInterface $repo, UninstallOperation $operation)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue