mirror of
https://github.com/Ne-Lexa/php-zip.git
synced 2025-03-21 06:59:40 +01:00
Add tests
This commit is contained in:
parent
6691858b95
commit
08c890ba24
@ -498,8 +498,7 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
||||
} else {
|
||||
$compressionMethod = self::METHOD_STORED;
|
||||
}
|
||||
}
|
||||
elseif (!in_array($compressionMethod, self::$allowCompressionMethods, true)) {
|
||||
} elseif (!in_array($compressionMethod, self::$allowCompressionMethods, true)) {
|
||||
throw new ZipUnsupportMethod('Unsupported method ' . $compressionMethod);
|
||||
}
|
||||
|
||||
@ -860,12 +859,12 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
||||
$filename = (string)$filename;
|
||||
|
||||
$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.');
|
||||
}
|
||||
$this->saveAsStream($handle);
|
||||
|
||||
if (!rename($tempFilename, $filename)) {
|
||||
if (!@rename($tempFilename, $filename)) {
|
||||
throw new ZipException('Can not move ' . $tempFilename . ' to ' . $filename);
|
||||
}
|
||||
}
|
||||
@ -999,6 +998,10 @@ class ZipFile implements \Countable, \ArrayAccess, \Iterator
|
||||
if ($entryName === 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] === '/') {
|
||||
$this->addEmptyDir($entryName);
|
||||
} else {
|
||||
|
@ -531,6 +531,24 @@ class ZipFileTest extends ZipTestCase
|
||||
$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
|
||||
*/
|
||||
@ -558,6 +576,24 @@ class ZipFileTest extends ZipTestCase
|
||||
$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
|
||||
*/
|
||||
@ -1015,6 +1051,26 @@ class ZipFileTest extends ZipTestCase
|
||||
$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
|
||||
* @expectedExceptionMessage Contents is null
|
||||
@ -1191,6 +1247,35 @@ class ZipFileTest extends ZipTestCase
|
||||
$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.
|
||||
*/
|
||||
@ -1280,7 +1365,8 @@ class ZipFileTest extends ZipTestCase
|
||||
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||
* @expectedExceptionMessage DirName empty
|
||||
*/
|
||||
public function testAddEmptyDirNullName(){
|
||||
public function testAddEmptyDirNullName()
|
||||
{
|
||||
$zipFile = new ZipFile();
|
||||
$zipFile->addEmptyDir(null);
|
||||
}
|
||||
@ -1289,7 +1375,8 @@ class ZipFileTest extends ZipTestCase
|
||||
* @expectedException \PhpZip\Exception\InvalidArgumentException
|
||||
* @expectedExceptionMessage DirName empty
|
||||
*/
|
||||
public function testAddEmptyDirEmptyName(){
|
||||
public function testAddEmptyDirEmptyName()
|
||||
{
|
||||
$zipFile = new ZipFile();
|
||||
$zipFile->addEmptyDir("");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user