1
0
mirror of https://github.com/Ne-Lexa/php-zip.git synced 2025-08-02 13:37:25 +02:00

added an additional test of the encrypted archive

This commit is contained in:
Ne-Lexa
2017-12-06 15:28:17 +03:00
parent c34f90ac18
commit aa09b24d02
5 changed files with 28 additions and 3 deletions

View File

@@ -224,7 +224,7 @@ class ZipModel implements \Countable
if (isset($this->outEntries[$entryName])) { if (isset($this->outEntries[$entryName])) {
return $this->outEntries[$entryName]; return $this->outEntries[$entryName];
} }
throw new ZipNotFoundEntry('Zip entry ' . $entryName . ' not found'); throw new ZipNotFoundEntry('Zip entry "' . $entryName . '" not found');
} }
/** /**

View File

@@ -239,7 +239,6 @@ class ZipOutputStream implements ZipOutputStreamInterface
$field = $extraFieldsCollection->get(WinZipAesEntryExtraField::getHeaderId()); $field = $extraFieldsCollection->get(WinZipAesEntryExtraField::getHeaderId());
if (null !== $field) { if (null !== $field) {
$method = $field->getMethod(); $method = $field->getMethod();
$entry->setMethod($method);
} }
} }

View File

@@ -1672,7 +1672,7 @@ class ZipFileTest extends ZipTestCase
/** /**
* @expectedException \PhpZip\Exception\ZipNotFoundEntry * @expectedException \PhpZip\Exception\ZipNotFoundEntry
* @expectedExceptionMessage Zip entry bad entry name not found * @expectedExceptionMessage Zip entry "bad entry name" not found
*/ */
public function testNotFoundEntry() public function testNotFoundEntry()
{ {

View File

@@ -370,4 +370,30 @@ class ZipPasswordTest extends ZipFileAddDirTest
$this->assertEquals($zipFile['codes.csv'], $contents); $this->assertEquals($zipFile['codes.csv'], $contents);
$zipFile->close(); $zipFile->close();
} }
public function testReadAesEncryptedAndRewriteArchive()
{
$file = __DIR__ . '/resources/aes_password_archive.zip';
$password = '1234567890';
$zipFile = new ZipFile();
$zipFile->openFile($file);
$zipFile->setReadPassword($password);
$zipFile->setEntryComment('contents.txt', 'comment'); // change entry, but not changed contents
$zipFile->saveAsFile($this->outputFilename);
$zipFile2 = new ZipFile();
$zipFile2->openFile($this->outputFilename);
$zipFile2->setReadPassword($password);
$this->assertEquals($zipFile2->getListFiles(), $zipFile->getListFiles());
foreach ($zipFile as $name => $contents) {
$this->assertNotEmpty($name);
$this->assertNotEmpty($contents);
$this->assertContains('test contents', $contents);
$this->assertEquals($zipFile2[$name], $contents);
}
$zipFile2->close();
$zipFile->close();
}
} }

Binary file not shown.