mirror of
https://github.com/Ne-Lexa/php-zip.git
synced 2025-08-02 05:30:09 +02:00
Add tests
This commit is contained in:
@@ -498,8 +498,7 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
|||||||
} else {
|
} else {
|
||||||
$compressionMethod = self::METHOD_STORED;
|
$compressionMethod = self::METHOD_STORED;
|
||||||
}
|
}
|
||||||
}
|
} elseif (!in_array($compressionMethod, self::$allowCompressionMethods, true)) {
|
||||||
elseif (!in_array($compressionMethod, self::$allowCompressionMethods, true)) {
|
|
||||||
throw new ZipUnsupportMethod('Unsupported method ' . $compressionMethod);
|
throw new ZipUnsupportMethod('Unsupported method ' . $compressionMethod);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -860,12 +859,12 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
|||||||
$filename = (string)$filename;
|
$filename = (string)$filename;
|
||||||
|
|
||||||
$tempFilename = $filename . '.temp' . uniqid();
|
$tempFilename = $filename . '.temp' . uniqid();
|
||||||
if (!($handle = fopen($tempFilename, 'w+b'))) {
|
if (!($handle = @fopen($tempFilename, 'w+b'))) {
|
||||||
throw new InvalidArgumentException("File " . $tempFilename . ' can not open from write.');
|
throw new InvalidArgumentException("File " . $tempFilename . ' can not open from write.');
|
||||||
}
|
}
|
||||||
$this->saveAsStream($handle);
|
$this->saveAsStream($handle);
|
||||||
|
|
||||||
if (!rename($tempFilename, $filename)) {
|
if (!@rename($tempFilename, $filename)) {
|
||||||
throw new ZipException('Can not move ' . $tempFilename . ' to ' . $filename);
|
throw new ZipException('Can not move ' . $tempFilename . ' to ' . $filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -999,6 +998,10 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
|||||||
if ($entryName === null) {
|
if ($entryName === null) {
|
||||||
throw new InvalidArgumentException('entryName is null');
|
throw new InvalidArgumentException('entryName is null');
|
||||||
}
|
}
|
||||||
|
$entryName = (string)$entryName;
|
||||||
|
if (strlen($entryName) === 0) {
|
||||||
|
throw new InvalidArgumentException('entryName is empty');
|
||||||
|
}
|
||||||
if ($entryName[strlen($entryName) - 1] === '/') {
|
if ($entryName[strlen($entryName) - 1] === '/') {
|
||||||
$this->addEmptyDir($entryName);
|
$this->addEmptyDir($entryName);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -531,6 +531,24 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->close();
|
$zipFile->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage Glob pattern is empty
|
||||||
|
*/
|
||||||
|
public function testDeleteFromGlobFailNull(){
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->deleteFromGlob(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage Glob pattern is empty
|
||||||
|
*/
|
||||||
|
public function testDeleteFromGlobFailEmpty(){
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->deleteFromGlob('');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete entries from regex pattern
|
* Delete entries from regex pattern
|
||||||
*/
|
*/
|
||||||
@@ -558,6 +576,24 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->close();
|
$zipFile->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage Regex pattern is empty.
|
||||||
|
*/
|
||||||
|
public function testDeleteFromRegexFailNull(){
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->deleteFromRegex(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage Regex pattern is empty.
|
||||||
|
*/
|
||||||
|
public function testDeleteFromRegexFailEmpty(){
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->deleteFromRegex('');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete all entries
|
* Delete all entries
|
||||||
*/
|
*/
|
||||||
@@ -1015,6 +1051,26 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->close();
|
$zipFile->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage entryName is null
|
||||||
|
*/
|
||||||
|
public function testAddFromArrayAccessNullName()
|
||||||
|
{
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile[null] = 'content';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage entryName is empty
|
||||||
|
*/
|
||||||
|
public function testAddFromArrayAccessEmptyName()
|
||||||
|
{
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile[''] = 'content';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
* @expectedExceptionMessage Contents is null
|
* @expectedExceptionMessage Contents is null
|
||||||
@@ -1191,6 +1247,35 @@ class ZipFileTest extends ZipTestCase
|
|||||||
$zipFile->addFile($this->outputFilename);
|
$zipFile->addFile($this->outputFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage handle is not resource
|
||||||
|
*/
|
||||||
|
public function testSaveAsStreamBadStream()
|
||||||
|
{
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->saveAsStream("bad stream");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
|
* @expectedExceptionMessage can not open from write
|
||||||
|
*/
|
||||||
|
public function testSaveAsFileNotWritable()
|
||||||
|
{
|
||||||
|
$this->outputFilename = sys_get_temp_dir() . '/zipExtractTest';
|
||||||
|
if (is_dir($this->outputFilename)) {
|
||||||
|
FilesUtil::removeDir($this->outputFilename);
|
||||||
|
}
|
||||||
|
self::assertTrue(mkdir($this->outputFilename, 0444, true));
|
||||||
|
self::assertTrue(chmod($this->outputFilename, 0444));
|
||||||
|
|
||||||
|
$this->outputFilename .= '/' . uniqid() . '.zip';
|
||||||
|
|
||||||
|
$zipFile = new ZipFile();
|
||||||
|
$zipFile->saveAsFile($this->outputFilename);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test `ZipFile` implemented \ArrayAccess, \Countable and |iterator.
|
* Test `ZipFile` implemented \ArrayAccess, \Countable and |iterator.
|
||||||
*/
|
*/
|
||||||
@@ -1280,7 +1365,8 @@ class ZipFileTest extends ZipTestCase
|
|||||||
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
* @expectedExceptionMessage DirName empty
|
* @expectedExceptionMessage DirName empty
|
||||||
*/
|
*/
|
||||||
public function testAddEmptyDirNullName(){
|
public function testAddEmptyDirNullName()
|
||||||
|
{
|
||||||
$zipFile = new ZipFile();
|
$zipFile = new ZipFile();
|
||||||
$zipFile->addEmptyDir(null);
|
$zipFile->addEmptyDir(null);
|
||||||
}
|
}
|
||||||
@@ -1289,7 +1375,8 @@ class ZipFileTest extends ZipTestCase
|
|||||||
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||||
* @expectedExceptionMessage DirName empty
|
* @expectedExceptionMessage DirName empty
|
||||||
*/
|
*/
|
||||||
public function testAddEmptyDirEmptyName(){
|
public function testAddEmptyDirEmptyName()
|
||||||
|
{
|
||||||
$zipFile = new ZipFile();
|
$zipFile = new ZipFile();
|
||||||
$zipFile->addEmptyDir("");
|
$zipFile->addEmptyDir("");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user