Zip: ignore mac osx specific folder when searching for composer.json
parent
472f78bff1
commit
d97c37f103
|
@ -82,6 +82,11 @@ class Zip
|
||||||
$name = $zip->getNameIndex($i);
|
$name = $zip->getNameIndex($i);
|
||||||
$dirname = dirname($name);
|
$dirname = dirname($name);
|
||||||
|
|
||||||
|
// ignore OSX specific resource fork folder
|
||||||
|
if (strpos($name, '__MACOSX') !== false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// handle archives with proper TOC
|
// handle archives with proper TOC
|
||||||
if ($dirname === '.') {
|
if ($dirname === '.') {
|
||||||
$topLevelPaths[$name] = true;
|
$topLevelPaths[$name] = true;
|
||||||
|
|
Binary file not shown.
|
@ -125,16 +125,4 @@ class ZipTest extends TestCase
|
||||||
|
|
||||||
$this->assertEquals("{\n \"name\": \"foo/bar\"\n}\n", $result);
|
$this->assertEquals("{\n \"name\": \"foo/bar\"\n}\n", $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testThrowsExceptionIfMultipleComposerInSubFoldersWereFound()
|
|
||||||
{
|
|
||||||
if (!extension_loaded('zip')) {
|
|
||||||
$this->markTestSkipped('The PHP zip extension is not loaded.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->setExpectedException('\RuntimeException', 'Archive has more than one top level directories, and no composer.json was found on the top level, so it\'s an invalid archive. Top level paths found were: foo3/,__MACOSX/');
|
|
||||||
|
|
||||||
Zip::getComposerJson(__DIR__.'/Fixtures/Zip/multiple_subfolders.zip');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue