|
@@ -17,6 +17,7 @@ use Composer\Config;
|
|
|
use Composer\Test\TestCase;
|
|
|
use Composer\Util\Filesystem;
|
|
|
use Composer\Util\Platform;
|
|
|
+use Prophecy\Argument;
|
|
|
|
|
|
class GitDownloaderTest extends TestCase
|
|
|
{
|
|
@@ -79,7 +80,10 @@ class GitDownloaderTest extends TestCase
|
|
|
->will($this->returnValue(null));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock();
|
|
|
+ $downloader->download($packageMock, '/path');
|
|
|
+ $downloader->prepare('install', $packageMock, '/path');
|
|
|
$downloader->install($packageMock, '/path');
|
|
|
+ $downloader->cleanup('install', $packageMock, '/path');
|
|
|
}
|
|
|
|
|
|
public function testDownload()
|
|
@@ -130,7 +134,10 @@ class GitDownloaderTest extends TestCase
|
|
|
->will($this->returnValue(0));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock(null, null, $processExecutor);
|
|
|
+ $downloader->download($packageMock, 'composerPath');
|
|
|
+ $downloader->prepare('install', $packageMock, 'composerPath');
|
|
|
$downloader->install($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('install', $packageMock, 'composerPath');
|
|
|
}
|
|
|
|
|
|
public function testDownloadWithCache()
|
|
@@ -195,7 +202,10 @@ class GitDownloaderTest extends TestCase
|
|
|
->will($this->returnValue(0));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock(null, $config, $processExecutor);
|
|
|
+ $downloader->download($packageMock, 'composerPath');
|
|
|
+ $downloader->prepare('install', $packageMock, 'composerPath');
|
|
|
$downloader->install($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('install', $packageMock, 'composerPath');
|
|
|
@rmdir($cachePath);
|
|
|
}
|
|
|
|
|
@@ -265,7 +275,10 @@ class GitDownloaderTest extends TestCase
|
|
|
->will($this->returnValue(0));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock(null, new Config(), $processExecutor);
|
|
|
+ $downloader->download($packageMock, 'composerPath');
|
|
|
+ $downloader->prepare('install', $packageMock, 'composerPath');
|
|
|
$downloader->install($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('install', $packageMock, 'composerPath');
|
|
|
}
|
|
|
|
|
|
public function pushUrlProvider()
|
|
@@ -329,12 +342,12 @@ class GitDownloaderTest extends TestCase
|
|
|
$config->merge(array('config' => array('github-protocols' => $protocols)));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock(null, $config, $processExecutor);
|
|
|
+ $downloader->download($packageMock, 'composerPath');
|
|
|
+ $downloader->prepare('install', $packageMock, 'composerPath');
|
|
|
$downloader->install($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('install', $packageMock, 'composerPath');
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * @expectedException \RuntimeException
|
|
|
- */
|
|
|
public function testDownloadThrowsRuntimeExceptionIfGitCommandFails()
|
|
|
{
|
|
|
$expectedGitCommand = $this->winCompat("git clone --no-checkout 'https://example.com/composer/composer' 'composerPath' && cd 'composerPath' && git remote add composer 'https://example.com/composer/composer' && git fetch composer");
|
|
@@ -359,8 +372,20 @@ class GitDownloaderTest extends TestCase
|
|
|
->with($this->equalTo($expectedGitCommand))
|
|
|
->will($this->returnValue(1));
|
|
|
|
|
|
- $downloader = $this->getDownloaderMock(null, null, $processExecutor);
|
|
|
- $downloader->install($packageMock, 'composerPath');
|
|
|
+ // not using PHPUnit's expected exception because Prophecy exceptions extend from RuntimeException too so it is not safe
|
|
|
+ try {
|
|
|
+ $downloader = $this->getDownloaderMock(null, null, $processExecutor);
|
|
|
+ $downloader->download($packageMock, 'composerPath');
|
|
|
+ $downloader->prepare('install', $packageMock, 'composerPath');
|
|
|
+ $downloader->install($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('install', $packageMock, 'composerPath');
|
|
|
+ $this->fail('This test should throw');
|
|
|
+ } catch (\RuntimeException $e) {
|
|
|
+ if ('RuntimeException' !== get_class($e)) {
|
|
|
+ throw $e;
|
|
|
+ }
|
|
|
+ $this->assertEquals('RuntimeException', get_class($e));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -375,7 +400,10 @@ class GitDownloaderTest extends TestCase
|
|
|
->will($this->returnValue(null));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock();
|
|
|
+ $downloader->download($sourcePackageMock, '/path', $initialPackageMock);
|
|
|
+ $downloader->prepare('update', $sourcePackageMock, '/path', $initialPackageMock);
|
|
|
$downloader->update($initialPackageMock, $sourcePackageMock, '/path');
|
|
|
+ $downloader->cleanup('update', $sourcePackageMock, '/path', $initialPackageMock);
|
|
|
}
|
|
|
|
|
|
public function testUpdate()
|
|
@@ -392,39 +420,22 @@ class GitDownloaderTest extends TestCase
|
|
|
$packageMock->expects($this->any())
|
|
|
->method('getVersion')
|
|
|
->will($this->returnValue('1.0.0.0'));
|
|
|
- $processExecutor = $this->getMockBuilder('Composer\Util\ProcessExecutor')->getMock();
|
|
|
- $processExecutor->expects($this->at(0))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git show-ref --head -d")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(1))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git status --porcelain --untracked-files=no")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(2))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(3))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(4))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat($expectedGitUpdateCommand)), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(5))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo('git branch -r'))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(6))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git checkout 'ref' -- && git reset --hard 'ref' --")), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
- ->will($this->returnValue(0));
|
|
|
+
|
|
|
+ $process = $this->prophesize('Composer\Util\ProcessExecutor');
|
|
|
+ $process->execute($this->winCompat('git --version'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git show-ref --head -d'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git status --porcelain --untracked-files=no'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git remote -v'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git branch -r'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($expectedGitUpdateCommand, null, $this->winCompat($this->workingDir))->willReturn(0)->shouldBeCalled();
|
|
|
+ $process->execute($this->winCompat("git checkout 'ref' -- && git reset --hard 'ref' --"), null, $this->winCompat($this->workingDir))->willReturn(0)->shouldBeCalled();
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
- $downloader = $this->getDownloaderMock(null, new Config(), $processExecutor);
|
|
|
+ $downloader = $this->getDownloaderMock(null, new Config(), $process->reveal());
|
|
|
+ $downloader->download($packageMock, $this->workingDir, $packageMock);
|
|
|
+ $downloader->prepare('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
$downloader->update($packageMock, $packageMock, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
}
|
|
|
|
|
|
public function testUpdateWithNewRepoUrl()
|
|
@@ -444,27 +455,20 @@ class GitDownloaderTest extends TestCase
|
|
|
$packageMock->expects($this->any())
|
|
|
->method('getVersion')
|
|
|
->will($this->returnValue('1.0.0.0'));
|
|
|
+
|
|
|
$processExecutor = $this->getMockBuilder('Composer\Util\ProcessExecutor')->getMock();
|
|
|
$processExecutor->expects($this->at(0))
|
|
|
->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git show-ref --head -d")))
|
|
|
+ ->with($this->equalTo($this->winCompat("git --version")))
|
|
|
->will($this->returnValue(0));
|
|
|
$processExecutor->expects($this->at(1))
|
|
|
->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git status --porcelain --untracked-files=no")))
|
|
|
+ ->with($this->equalTo($this->winCompat("git show-ref --head -d")))
|
|
|
->will($this->returnValue(0));
|
|
|
$processExecutor->expects($this->at(2))
|
|
|
->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnCallback(function ($cmd, &$output, $cwd) {
|
|
|
- $output = 'origin https://github.com/old/url (fetch)
|
|
|
-origin https://github.com/old/url (push)
|
|
|
-composer https://github.com/old/url (fetch)
|
|
|
-composer https://github.com/old/url (push)
|
|
|
-';
|
|
|
-
|
|
|
- return 0;
|
|
|
- }));
|
|
|
+ ->with($this->equalTo($this->winCompat("git status --porcelain --untracked-files=no")))
|
|
|
+ ->will($this->returnValue(0));
|
|
|
$processExecutor->expects($this->at(3))
|
|
|
->method('execute')
|
|
|
->with($this->equalTo($this->winCompat("git remote -v")))
|
|
@@ -482,26 +486,41 @@ composer https://github.com/old/url (push)
|
|
|
->with($this->equalTo($this->winCompat("git checkout 'ref' -- && git reset --hard 'ref' --")), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
->will($this->returnValue(0));
|
|
|
$processExecutor->expects($this->at(7))
|
|
|
+ ->method('execute')
|
|
|
+ ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
+ ->will($this->returnCallback(function ($cmd, &$output, $cwd) {
|
|
|
+ $output = 'origin https://github.com/old/url (fetch)
|
|
|
+origin https://github.com/old/url (push)
|
|
|
+composer https://github.com/old/url (fetch)
|
|
|
+composer https://github.com/old/url (push)
|
|
|
+';
|
|
|
+
|
|
|
+ return 0;
|
|
|
+ }));
|
|
|
+ $processExecutor->expects($this->at(8))
|
|
|
->method('execute')
|
|
|
->with($this->equalTo($this->winCompat("git remote set-url origin 'https://github.com/composer/composer'")), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(8))
|
|
|
+ $processExecutor->expects($this->at(9))
|
|
|
->method('execute')
|
|
|
->with($this->equalTo($this->winCompat("git remote set-url --push origin 'git@github.com:composer/composer.git'")), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
->will($this->returnValue(0));
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
$downloader = $this->getDownloaderMock(null, new Config(), $processExecutor);
|
|
|
+ $downloader->download($packageMock, $this->workingDir, $packageMock);
|
|
|
+ $downloader->prepare('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
$downloader->update($packageMock, $packageMock, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @group failing
|
|
|
- * @expectedException \RuntimeException
|
|
|
*/
|
|
|
public function testUpdateThrowsRuntimeExceptionIfGitCommandFails()
|
|
|
{
|
|
|
$expectedGitUpdateCommand = $this->winCompat("git remote set-url composer 'https://github.com/composer/composer' && git rev-parse --quiet --verify 'ref^{commit}' || (git fetch composer && git fetch --tags composer)");
|
|
|
+ $expectedGitUpdateCommand2 = $this->winCompat("git remote set-url composer 'git@github.com:composer/composer' && git rev-parse --quiet --verify 'ref^{commit}' || (git fetch composer && git fetch --tags composer)");
|
|
|
|
|
|
$packageMock = $this->getMockBuilder('Composer\Package\PackageInterface')->getMock();
|
|
|
$packageMock->expects($this->any())
|
|
@@ -513,36 +532,38 @@ composer https://github.com/old/url (push)
|
|
|
$packageMock->expects($this->any())
|
|
|
->method('getVersion')
|
|
|
->will($this->returnValue('1.0.0.0'));
|
|
|
- $processExecutor = $this->getMockBuilder('Composer\Util\ProcessExecutor')->getMock();
|
|
|
- $processExecutor->expects($this->at(0))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git show-ref --head -d")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(1))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git status --porcelain --untracked-files=no")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(2))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(3))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(4))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($expectedGitUpdateCommand))
|
|
|
- ->will($this->returnValue(1));
|
|
|
+
|
|
|
+ $process = $this->prophesize('Composer\Util\ProcessExecutor');
|
|
|
+ $process->execute($this->winCompat('git --version'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git show-ref --head -d'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git status --porcelain --untracked-files=no'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git remote -v'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git branch -r'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($expectedGitUpdateCommand, null, $this->winCompat($this->workingDir))->willReturn(1)->shouldBeCalled();
|
|
|
+ $process->execute($expectedGitUpdateCommand2, null, $this->winCompat($this->workingDir))->willReturn(1)->shouldBeCalled();
|
|
|
+ $process->getErrorOutput()->willReturn('');
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
- $downloader = $this->getDownloaderMock(null, new Config(), $processExecutor);
|
|
|
- $downloader->update($packageMock, $packageMock, $this->workingDir);
|
|
|
+
|
|
|
+ // not using PHPUnit's expected exception because Prophecy exceptions extend from RuntimeException too so it is not safe
|
|
|
+ try {
|
|
|
+ $downloader = $this->getDownloaderMock(null, new Config(), $process->reveal());
|
|
|
+ $downloader->download($packageMock, $this->workingDir, $packageMock);
|
|
|
+ $downloader->prepare('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
+ $downloader->update($packageMock, $packageMock, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
+ $this->fail('This test should throw');
|
|
|
+ } catch (\RuntimeException $e) {
|
|
|
+ if ('RuntimeException' !== get_class($e)) {
|
|
|
+ throw $e;
|
|
|
+ }
|
|
|
+ $this->assertEquals('RuntimeException', get_class($e));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function testUpdateDoesntThrowsRuntimeExceptionIfGitCommandFailsAtFirstButIsAbleToRecover()
|
|
|
{
|
|
|
- $expectedFirstGitUpdateCommand = $this->winCompat("git remote set-url composer '' && git rev-parse --quiet --verify 'ref^{commit}' || (git fetch composer && git fetch --tags composer)");
|
|
|
+ $expectedFirstGitUpdateCommand = $this->winCompat("git remote set-url composer '".(Platform::isWindows() ? 'C:\\' : '/')."' && git rev-parse --quiet --verify 'ref^{commit}' || (git fetch composer && git fetch --tags composer)");
|
|
|
$expectedSecondGitUpdateCommand = $this->winCompat("git remote set-url composer 'https://github.com/composer/composer' && git rev-parse --quiet --verify 'ref^{commit}' || (git fetch composer && git fetch --tags composer)");
|
|
|
|
|
|
$packageMock = $this->getMockBuilder('Composer\Package\PackageInterface')->getMock();
|
|
@@ -554,52 +575,24 @@ composer https://github.com/old/url (push)
|
|
|
->will($this->returnValue('1.0.0.0'));
|
|
|
$packageMock->expects($this->any())
|
|
|
->method('getSourceUrls')
|
|
|
- ->will($this->returnValue(array('/foo/bar', 'https://github.com/composer/composer')));
|
|
|
- $processExecutor = $this->getMockBuilder('Composer\Util\ProcessExecutor')->getMock();
|
|
|
- $processExecutor->expects($this->at(0))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git show-ref --head -d")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(1))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git status --porcelain --untracked-files=no")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(2))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(3))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(4))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($expectedFirstGitUpdateCommand))
|
|
|
- ->will($this->returnValue(1));
|
|
|
- $processExecutor->expects($this->at(6))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git --version")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(7))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(8))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git remote -v")))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(9))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($expectedSecondGitUpdateCommand))
|
|
|
- ->will($this->returnValue(0));
|
|
|
- $processExecutor->expects($this->at(11))
|
|
|
- ->method('execute')
|
|
|
- ->with($this->equalTo($this->winCompat("git checkout 'ref' -- && git reset --hard 'ref' --")), $this->equalTo(null), $this->equalTo($this->winCompat($this->workingDir)))
|
|
|
- ->will($this->returnValue(0));
|
|
|
+ ->will($this->returnValue(array(Platform::isWindows() ? 'C:\\' : '/', 'https://github.com/composer/composer')));
|
|
|
+
|
|
|
+ $process = $this->prophesize('Composer\Util\ProcessExecutor');
|
|
|
+ $process->execute($this->winCompat('git --version'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git show-ref --head -d'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git status --porcelain --untracked-files=no'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git remote -v'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($this->winCompat('git branch -r'), Argument::cetera())->willReturn(0);
|
|
|
+ $process->execute($expectedFirstGitUpdateCommand, Argument::cetera())->willReturn(1)->shouldBeCalled();
|
|
|
+ $process->execute($expectedSecondGitUpdateCommand, Argument::cetera())->willReturn(0)->shouldBeCalled();
|
|
|
+ $process->execute($this->winCompat("git checkout 'ref' -- && git reset --hard 'ref' --"), null, $this->winCompat($this->workingDir))->willReturn(0)->shouldBeCalled();
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
- $downloader = $this->getDownloaderMock(null, new Config(), $processExecutor);
|
|
|
+ $downloader = $this->getDownloaderMock(null, new Config(), $process->reveal());
|
|
|
+ $downloader->download($packageMock, $this->workingDir, $packageMock);
|
|
|
+ $downloader->prepare('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
$downloader->update($packageMock, $packageMock, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $packageMock, $this->workingDir, $packageMock);
|
|
|
}
|
|
|
|
|
|
public function testDowngradeShowsAppropriateMessage()
|
|
@@ -644,7 +637,10 @@ composer https://github.com/old/url (push)
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
$downloader = $this->getDownloaderMock($ioMock, null, $processExecutor);
|
|
|
+ $downloader->download($newPackage, $this->workingDir, $oldPackage);
|
|
|
+ $downloader->prepare('update', $newPackage, $this->workingDir, $oldPackage);
|
|
|
$downloader->update($oldPackage, $newPackage, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $newPackage, $this->workingDir, $oldPackage);
|
|
|
}
|
|
|
|
|
|
public function testNotUsingDowngradingWithReferences()
|
|
@@ -679,11 +675,14 @@ composer https://github.com/old/url (push)
|
|
|
$ioMock = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
|
|
|
$ioMock->expects($this->at(0))
|
|
|
->method('writeError')
|
|
|
- ->with($this->stringContains('updating'));
|
|
|
+ ->with($this->stringContains('Updating'));
|
|
|
|
|
|
$this->fs->ensureDirectoryExists($this->workingDir.'/.git');
|
|
|
$downloader = $this->getDownloaderMock($ioMock, null, $processExecutor);
|
|
|
+ $downloader->download($newPackage, $this->workingDir, $oldPackage);
|
|
|
+ $downloader->prepare('update', $newPackage, $this->workingDir, $oldPackage);
|
|
|
$downloader->update($oldPackage, $newPackage, $this->workingDir);
|
|
|
+ $downloader->cleanup('update', $newPackage, $this->workingDir, $oldPackage);
|
|
|
}
|
|
|
|
|
|
public function testRemove()
|
|
@@ -703,7 +702,9 @@ composer https://github.com/old/url (push)
|
|
|
->will($this->returnValue(true));
|
|
|
|
|
|
$downloader = $this->getDownloaderMock(null, null, $processExecutor, $filesystem);
|
|
|
+ $downloader->prepare('uninstall', $packageMock, 'composerPath');
|
|
|
$downloader->remove($packageMock, 'composerPath');
|
|
|
+ $downloader->cleanup('uninstall', $packageMock, 'composerPath');
|
|
|
}
|
|
|
|
|
|
public function testGetInstallationSource()
|