1
0
Fork 0

Fix CS issues, refs #6159

pull/6314/head
Jordi Boggiano 2017-03-30 09:24:48 +02:00
parent 0a337e7c75
commit 61511cfed6
2 changed files with 44 additions and 44 deletions

View File

@ -29,10 +29,11 @@ use ZipArchive;
*/
class ZipDownloader extends ArchiveDownloader
{
private static $hasSystemUnzip;
private static $hasZipArchive;
private static $isWindows;
protected $process;
public static $hasSystemUnzip;
public static $hasZipArchive;
public static $isWindows;
private $zipArchiveObject;
public function __construct(IOInterface $io, Config $config, EventDispatcher $eventDispatcher = null, Cache $cache = null, ProcessExecutor $process = null, RemoteFilesystem $rfs = null)
@ -80,12 +81,12 @@ class ZipDownloader extends ArchiveDownloader
*/
protected function extractWithSystemUnzip($file, $path, $isLastChance)
{
if (! self::$hasZipArchive) {
if (!self::$hasZipArchive) {
// Force Exception throwing if the Other alternative is not available
$isLastChance = true;
}
if (! self::$hasSystemUnzip && ! $isLastChance) {
if (!self::$hasSystemUnzip && !$isLastChance) {
// This was call as the favorite extract way, but is not available
// We switch to the alternative
return $this->extractWithZipArchive($file, $path, true);
@ -107,17 +108,14 @@ class ZipDownloader extends ArchiveDownloader
$processError = $e;
}
if (! self::$hasZipArchive) {
$isLastChance = true;
}
if ($isLastChance) {
throw $processError;
} else {
$this->io->write($processError->getMessage());
$this->io->write('Unzip with unzip command failed, falling back to ZipArchive class');
return $this->extractWithZipArchive($file, $path, true);
}
$this->io->writeError(' '.$processError->getMessage());
$this->io->writeError(' Unzip with unzip command failed, falling back to ZipArchive class');
return $this->extractWithZipArchive($file, $path, true);
}
/**
@ -130,12 +128,12 @@ class ZipDownloader extends ArchiveDownloader
*/
protected function extractWithZipArchive($file, $path, $isLastChance)
{
if (! self::$hasSystemUnzip) {
if (!self::$hasSystemUnzip) {
// Force Exception throwing if the Other alternative is not available
$isLastChance = true;
}
if (! self::$hasZipArchive && ! $isLastChance) {
if (!self::$hasZipArchive && !$isLastChance) {
// This was call as the favorite extract way, but is not available
// We switch to the alternative
return $this->extractWithSystemUnzip($file, $path, true);
@ -150,10 +148,11 @@ class ZipDownloader extends ArchiveDownloader
if (true === $extractResult) {
$zipArchive->close();
return true;
} else {
$processError = new \RuntimeException(rtrim("There was an error extracting the ZIP file, it is either corrupted or using an invalid format.\n"));
}
$processError = new \RuntimeException(rtrim("There was an error extracting the ZIP file, it is either corrupted or using an invalid format.\n"));
} else {
$processError = new \UnexpectedValueException(rtrim($this->getErrorMessage($retval, $file)."\n"), $retval);
}
@ -163,11 +162,12 @@ class ZipDownloader extends ArchiveDownloader
if ($isLastChance) {
throw $processError;
} else {
$this->io->write($processError->getMessage());
$this->io->write('Unzip with ZipArchive class failed, falling back to unzip command');
return $this->extractWithSystemUnzip($file, $path, true);
}
$this->io->writeError(' '.$processError->getMessage());
$this->io->writeError(' Unzip with ZipArchive class failed, falling back to unzip command');
return $this->extractWithSystemUnzip($file, $path, true);
}
/**

View File

@ -37,8 +37,8 @@ class ZipDownloaderTest extends TestCase
{
$fs = new Filesystem;
$fs->removeDirectory($this->testDir);
ZipDownloader::$hasSystemUnzip = null;
ZipDownloader::$hasZipArchive = null;
$this->setPrivateProperty('hasSystemUnzip', null);
$this->setPrivateProperty('hasZipArchive', null);
}
public function setPrivateProperty($name, $value, $obj = null)
@ -95,7 +95,7 @@ class ZipDownloaderTest extends TestCase
$downloader = new ZipDownloader($this->io, $this->config);
ZipDownloader::$hasSystemUnzip = false;
$this->setPrivateProperty('hasSystemUnzip', false);
try {
$downloader->download($packageMock, sys_get_temp_dir().'/composer-zip-test');
@ -111,8 +111,8 @@ class ZipDownloaderTest extends TestCase
*/
public function testZipArchiveOnlyFailed()
{
MockedZipDownloader::$hasSystemUnzip = false;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('hasSystemUnzip', false);
$this->setPrivateProperty('hasZipArchive', true);
$downloader = new MockedZipDownloader($this->io, $this->config);
$zipArchive = $this->getMock('ZipArchive');
@ -132,8 +132,8 @@ class ZipDownloaderTest extends TestCase
*/
public function testZipArchiveOnlyGood()
{
MockedZipDownloader::$hasSystemUnzip = false;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('hasSystemUnzip', false);
$this->setPrivateProperty('hasZipArchive', true);
$downloader = new MockedZipDownloader($this->io, $this->config);
$zipArchive = $this->getMock('ZipArchive');
@ -154,8 +154,8 @@ class ZipDownloaderTest extends TestCase
*/
public function testSystemUnzipOnlyFailed()
{
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = false;
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', false);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->at(0))
->method('execute')
@ -167,8 +167,8 @@ class ZipDownloaderTest extends TestCase
public function testSystemUnzipOnlyGood()
{
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = false;
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', false);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->at(0))
->method('execute')
@ -180,9 +180,9 @@ class ZipDownloaderTest extends TestCase
public function testNonWindowsFallbackGood()
{
MockedZipDownloader::$isWindows = false;
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('isWindows', false);
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', true);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->at(0))
@ -208,9 +208,9 @@ class ZipDownloaderTest extends TestCase
*/
public function testNonWindowsFallbackFailed()
{
MockedZipDownloader::$isWindows = false;
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('isWindows', false);
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', true);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->at(0))
@ -232,9 +232,9 @@ class ZipDownloaderTest extends TestCase
public function testWindowsFallbackGood()
{
MockedZipDownloader::$isWindows = true;
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('isWindows', true);
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', true);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->atLeastOnce())
@ -260,9 +260,9 @@ class ZipDownloaderTest extends TestCase
*/
public function testWindowsFallbackFailed()
{
MockedZipDownloader::$isWindows = true;
MockedZipDownloader::$hasSystemUnzip = true;
MockedZipDownloader::$hasZipArchive = true;
$this->setPrivateProperty('isWindows', true);
$this->setPrivateProperty('hasSystemUnzip', true);
$this->setPrivateProperty('hasZipArchive', true);
$processExecutor = $this->getMock('Composer\Util\ProcessExecutor');
$processExecutor->expects($this->atLeastOnce())