class ZipTest
Same name and namespace in other branches
- 11.x core/tests/Drupal/KernelTests/Core/Archiver/ZipTest.php \Drupal\KernelTests\Core\Archiver\ZipTest
@coversDefaultClass \Drupal\Core\Archiver\Zip
@group zip
Hierarchy
- class \Drupal\KernelTests\Core\Archiver\ArchiverTestBase
- class \Drupal\KernelTests\Core\Archiver\ZipTest implements \Drupal\KernelTests\Core\Archiver\ArchiverTestBase
Expanded class hierarchy of ZipTest
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Archiver/ ZipTest.php, line 13
Namespace
Drupal\KernelTests\Core\ArchiverView source
class ZipTest extends ArchiverTestBase {
/**
* {@inheritdoc}
*/
protected $archiverPluginId = 'Zip';
/**
* Tests that the Zip archive is created if it does not exist.
*/
public function testCreateArchive() : void {
$textFile = current($this->getTestFiles('text'));
$archiveFilename = $this->fileSystem
->realpath('public://' . $this->randomMachineName() . '.zip');
$zip = new Zip($archiveFilename, [
'flags' => \ZipArchive::CREATE,
]);
$zip->add($this->fileSystem
->realPath($textFile->uri));
// Close the archive and make sure it is written to disk.
$this->assertTrue($zip->getArchive()
->close(), 'Successfully closed archive.');
$this->assertFileExists($archiveFilename, 'Archive is automatically created if the file does not exist.');
$this->assertArchiveContainsFile($archiveFilename, $this->fileSystem
->realPath($textFile->uri));
}
/**
* Tests that the Zip archiver is created and overwritten.
*/
public function testOverwriteArchive() : void {
// Create an archive similarly to how it's done in ::testCreateArchive.
$files = $this->getTestFiles('text');
$textFile = current($files);
$archiveFilename = $this->fileSystem
->realpath('public://' . $this->randomMachineName() . '.zip');
$zip = new Zip($archiveFilename, [
'flags' => \ZipArchive::CREATE,
]);
$zip->add($this->fileSystem
->realPath($textFile->uri));
$zip->getArchive()
->close();
$this->assertArchiveContainsFile($archiveFilename, $this->fileSystem
->realPath($textFile->uri));
// Overwrite the zip with just a new text file.
$secondTextFile = next($files);
$zip = new Zip($archiveFilename, [
'flags' => \ZipArchive::OVERWRITE,
]);
$zip->add($this->fileSystem
->realpath($secondTextFile->uri));
$zip->getArchive()
->close();
$this->assertArchiveNotContainsFile($archiveFilename, $this->fileSystem
->realPath($textFile->uri));
$this->assertArchiveContainsFile($archiveFilename, $this->fileSystem
->realPath($secondTextFile->uri));
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
ArchiverTestBase::$fileSystem | protected | property | The file system service. | |
ArchiverTestBase::assertArchiveContainsFile | protected | function | Asserts an archive contains a given file. | |
ArchiverTestBase::assertArchiveNotContainsFile | protected | function | Asserts an archive does not contain a given file. | |
ArchiverTestBase::setUp | protected | function | ||
ZipTest::$archiverPluginId | protected | property | The archiver plugin identifier. | Overrides ArchiverTestBase::$archiverPluginId |
ZipTest::testCreateArchive | public | function | Tests that the Zip archive is created if it does not exist. | |
ZipTest::testOverwriteArchive | public | function | Tests that the Zip archiver is created and overwritten. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.