|
| | testZip () |
| |
| | testLegacyZip () |
| |
| | LegacyZipWithTop () |
| |
| | testUnzip (string $zip, bool $has_multiple_root_entries, int $expected_amount_directories, array $expected_directories, int $expected_amount_files, array $expected_files) |
| | getZips More...
|
| |
| | testWrongZip () |
| |
| | testLargeZIPs () |
| |
| | testLegacyUnzip (string $zip, bool $has_multiple_root_entries, int $expected_amount_directories, array $expected_directories, int $expected_amount_files, array $expected_files) |
| | getZips More...
|
| |
- Author
- Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s
// This is required for the test to work since we define some constants in the test disabled disabled disabled
Definition at line 37 of file ZipTest.php.
◆ directoryToArray()
| ILIAS\Filesystem\Util\ZipTest::directoryToArray |
( |
string |
$path_to_directory | ) |
|
|
private |
- Returns
- string[]|string[][]
Definition at line 247 of file ZipTest.php.
References ILIAS\UI\examples\Symbol\Glyph\Sort\sort().
Referenced by ILIAS\Filesystem\Util\ZipTest\testLegacyUnzip().
249 $iterator = new \RecursiveIteratorIterator(
251 \RecursiveIteratorIterator::SELF_FIRST,
252 \RecursiveIteratorIterator::CATCH_GET_CHILD
255 foreach ($iterator as $item) {
256 $relative_path = str_replace($path_to_directory .
'/',
'', $item->getPathname());
257 $paths[] = $item->isDir() ? $relative_path .
'/' : $relative_path;
sort()
description: > Example for rendering a Sort Glyph.
◆ getZips()
| static ILIAS\Filesystem\Util\ZipTest::getZips |
( |
| ) |
|
|
static |
Definition at line 267 of file ZipTest.php.
270 [
'1_folder_mac.zip',
false, 10, self::$directories_one, 15, self::$files_one],
271 [
'1_folder_win.zip',
false, 10, self::$directories_one, 15, self::$files_one],
272 [
'3_folders_mac.zip',
true, 9, self::$directories_three, 12, self::$files_three],
273 [
'3_folders_win.zip',
true, 9, self::$directories_three, 12, self::$files_three],
274 [
'1_folder_1_file_mac.zip',
true, 3, self::$directories_mixed, 5, self::$files_mixed]
◆ LegacyZipWithTop()
| ILIAS\Filesystem\Util\ZipTest::LegacyZipWithTop |
( |
| ) |
|
Definition at line 100 of file ZipTest.php.
References $parts, $path, and ILIAS\Filesystem\Util\ZipTest\recurseRmdir().
102 $legacy =
new LegacyArchives();
104 define(
'CLIENT_WEB_DIR', __DIR__);
105 define(
'ILIAS_WEB_DIR',
'public/data');
106 define(
'CLIENT_ID',
'test');
107 define(
'CLIENT_DATA_DIR', __DIR__);
108 define(
'ILIAS_ABSOLUTE_PATH', __DIR__);
110 mkdir($this->unzips_dir);
111 $legacy->zip($this->zips_dir, $this->unzips_dir . self::ZIPPED_ZIP,
true);
112 $this->assertFileExists($this->unzips_dir . self::ZIPPED_ZIP);
114 $unzip_again =
new Unzip(
new UnzipOptions(), Streams::ofResource(fopen($this->unzips_dir . self::ZIPPED_ZIP,
'r')));
115 $this->assertEquals(5, $unzip_again->getAmountOfFiles());
118 foreach ($unzip_again->getPaths() as
$path) {
120 $depth = max($depth, count(
$parts));
122 $this->assertEquals(2, $depth);
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
recurseRmdir(string $path_to_directory)
◆ recurseRmdir()
| ILIAS\Filesystem\Util\ZipTest::recurseRmdir |
( |
string |
$path_to_directory | ) |
|
|
private |
◆ setUp()
| ILIAS\Filesystem\Util\ZipTest::setUp |
( |
| ) |
|
|
protected |
Definition at line 43 of file ZipTest.php.
45 if (file_exists($this->unzips_dir . self::ZIPPED_ZIP)) {
46 unlink($this->unzips_dir . self::ZIPPED_ZIP);
48 if (!file_exists($this->unzips_dir)) {
49 mkdir($this->unzips_dir);
◆ tearDown()
| ILIAS\Filesystem\Util\ZipTest::tearDown |
( |
| ) |
|
|
protected |
◆ testLargeZIPs()
| ILIAS\Filesystem\Util\ZipTest::testLargeZIPs |
( |
| ) |
|
Definition at line 170 of file ZipTest.php.
References ILIAS\Repository\int(), and ILIAS\UI\examples\Symbol\Glyph\Sort\sort().
173 $ulimit = (
int) shell_exec(
'ulimit -n');
175 if ($ulimit >= $limit) {
176 $this->markTestSkipped(
'ulimit is too high and would take too much resources');
178 $this->assertLessThan($limit, $ulimit);
180 $zip =
new Zip(
new ZipOptions());
184 for ($i = 0; $i < $ulimit * 2; $i++) {
185 $path_inside_zip = $file_names[] =
'test' . $i;
186 $zip->addStream(Streams::ofString(
'-'), $path_inside_zip);
188 $this->assertTrue(
true);
191 $unzip =
new Unzip(
new UnzipOptions(), $zip->get());
192 $file_names_in_zip = iterator_to_array($unzip->getFiles());
194 sort($file_names_in_zip);
195 $this->assertEquals($file_names, $file_names_in_zip);
sort()
description: > Example for rendering a Sort Glyph.
◆ testLegacyUnzip()
| ILIAS\Filesystem\Util\ZipTest::testLegacyUnzip |
( |
string |
$zip, |
|
|
bool |
$has_multiple_root_entries, |
|
|
int |
$expected_amount_directories, |
|
|
array |
$expected_directories, |
|
|
int |
$expected_amount_files, |
|
|
array |
$expected_files |
|
) |
| |
getZips
- Parameters
-
| mixed[] | $expected_directories |
| mixed[] | $expected_files |
Definition at line 203 of file ZipTest.php.
References ILIAS\Filesystem\Util\ZipTest\directoryToArray(), ILIAS\Filesystem\Util\ZipTest\recurseRmdir(), and ILIAS\UI\examples\Symbol\Glyph\Sort\sort().
211 $legacy =
new LegacyArchives();
213 $this->assertStringContainsString(
'.zip', $zip);
214 $zip_path = $this->zips_dir . $zip;
215 $this->assertFileExists($zip_path);
217 $temp_unzip_path = $this->unzips_dir . uniqid(
'unzip',
true);
219 $return = $legacy->unzip(
224 $this->assertTrue($return);
227 $expected_paths = array_merge($expected_directories, $expected_files);
228 sort($expected_paths);
229 $this->assertEquals($expected_paths, $unzipped_files);
230 $this->assertTrue($this->
recurseRmdir($temp_unzip_path));
directoryToArray(string $path_to_directory)
sort()
description: > Example for rendering a Sort Glyph.
recurseRmdir(string $path_to_directory)
◆ testLegacyZip()
| ILIAS\Filesystem\Util\ZipTest::testLegacyZip |
( |
| ) |
|
Definition at line 75 of file ZipTest.php.
References $parts, $path, and ILIAS\Filesystem\Util\ZipTest\recurseRmdir().
77 $legacy =
new LegacyArchives();
79 define(
'CLIENT_WEB_DIR', __DIR__);
80 define(
'ILIAS_WEB_DIR',
'public/data');
81 define(
'CLIENT_ID',
'test');
82 define(
'CLIENT_DATA_DIR', __DIR__);
83 define(
'ILIAS_ABSOLUTE_PATH', __DIR__);
85 $legacy->zip($this->zips_dir, $this->unzips_dir . self::ZIPPED_ZIP,
false);
86 $this->assertFileExists($this->unzips_dir . self::ZIPPED_ZIP);
88 $unzip_again =
new Unzip(
new UnzipOptions(), Streams::ofResource(fopen($this->unzips_dir . self::ZIPPED_ZIP,
'r')));
89 $this->assertEquals(5, $unzip_again->getAmountOfFiles());
92 foreach ($unzip_again->getPaths() as
$path) {
94 $depth = max($depth, count(
$parts));
96 $this->assertEquals(2, $depth);
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
recurseRmdir(string $path_to_directory)
◆ testUnzip()
| ILIAS\Filesystem\Util\ZipTest::testUnzip |
( |
string |
$zip, |
|
|
bool |
$has_multiple_root_entries, |
|
|
int |
$expected_amount_directories, |
|
|
array |
$expected_directories, |
|
|
int |
$expected_amount_files, |
|
|
array |
$expected_files |
|
) |
| |
getZips
- Parameters
-
| mixed[] | $expected_directories |
| mixed[] | $expected_files |
Definition at line 131 of file ZipTest.php.
139 $this->assertStringContainsString(
'.zip', $zip);
140 $zip_path = $this->zips_dir . $zip;
141 $this->assertFileExists($zip_path);
143 $stream = Streams::ofResource(fopen($zip_path,
'rb'));
144 $options =
new UnzipOptions();
145 $unzip =
new Unzip($options, $stream);
147 $this->assertFalse($unzip->hasZipReadingError());
148 $this->assertEquals($has_multiple_root_entries, $unzip->hasMultipleRootEntriesInZip());
149 $this->assertEquals($expected_amount_directories, $unzip->getAmountOfDirectories());
150 $this->assertEquals($expected_directories, iterator_to_array($unzip->getDirectories()));
151 $this->assertEquals($expected_amount_files, $unzip->getAmountOfFiles());
152 $this->assertEquals($expected_files, iterator_to_array($unzip->getFiles()));
◆ testWrongZip()
| ILIAS\Filesystem\Util\ZipTest::testWrongZip |
( |
| ) |
|
Definition at line 155 of file ZipTest.php.
157 $stream = Streams::ofResource(fopen(__FILE__,
'rb'));
158 $options =
new UnzipOptions();
159 $unzip =
new Unzip($options, $stream);
160 $this->assertTrue($unzip->hasZipReadingError());
161 $this->assertFalse($unzip->hasMultipleRootEntriesInZip());
162 $this->assertEquals(0, iterator_count($unzip->getFiles()));
163 $this->assertEquals(0, iterator_count($unzip->getDirectories()));
164 $this->assertEquals(0, iterator_count($unzip->getPaths()));
165 $this->assertEquals([], iterator_to_array($unzip->getDirectories()));
166 $this->assertEquals([], iterator_to_array($unzip->getFiles()));
◆ testZip()
| ILIAS\Filesystem\Util\ZipTest::testZip |
( |
| ) |
|
Definition at line 60 of file ZipTest.php.
62 $zip_options =
new ZipOptions();
64 Streams::ofResource(fopen($this->zips_dir .
'1_folder_1_file_mac.zip',
'r')),
65 Streams::ofResource(fopen($this->zips_dir .
'1_folder_win.zip',
'r')),
67 $zip =
new Zip($zip_options, ...$streams);
68 $zip_stream = $zip->get();
69 $this->assertGreaterThan(0, $zip_stream->getSize());
71 $unzip_again =
new Unzip(
new UnzipOptions(), $zip_stream);
72 $this->assertEquals(2, $unzip_again->getAmountOfFiles());
◆ $directories_mixed
| array static array ILIAS\Filesystem\Util\ZipTest::$directories_mixed |
|
staticprotected |
◆ $directories_one
| array static array static array ILIAS\Filesystem\Util\ZipTest::$directories_one |
|
staticprotected |
◆ $directories_three
| array static array static array static array ILIAS\Filesystem\Util\ZipTest::$directories_three |
|
staticprotected |
◆ $files_mixed
| array ILIAS\Filesystem\Util\ZipTest::$files_mixed |
|
staticprotected |
◆ $files_one
| array static array static array static array static array ILIAS\Filesystem\Util\ZipTest::$files_one |
|
staticprotected |
Initial value:= [
0 => 'Ordner 0/13_Test.pdf'
Definition at line 316 of file ZipTest.php.
◆ $files_three
| array static array static array static array static array static array ILIAS\Filesystem\Util\ZipTest::$files_three |
|
staticprotected |
Initial value:= [
0 => 'Ordner A/01_Test.pdf'
Definition at line 334 of file ZipTest.php.
◆ $unzips_dir
| string ILIAS\Filesystem\Util\ZipTest::$unzips_dir = __DIR__ . '/unzips/' |
|
protected |
◆ $zips_dir
| string ILIAS\Filesystem\Util\ZipTest::$zips_dir = __DIR__ . '/zips/' |
|
protected |
◆ ZIPPED_ZIP
| const ILIAS\Filesystem\Util\ZipTest::ZIPPED_ZIP = 'zipped.zip' |
The documentation for this class was generated from the following file: