ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Filesystem\Util\UnzipTest Class Reference
+ Inheritance diagram for ILIAS\Filesystem\Util\UnzipTest:
+ Collaboration diagram for ILIAS\Filesystem\Util\UnzipTest:

Public Member Functions

 testWrongZip ()
 
 testLegacyUnzip (string $zip, bool $has_multiple_root_entries, int $expected_amount_directories, array $expected_directories, int $expected_amount_files, array $expected_files)
 
 testEnsureTopDirectory ()
 
 testFlatLegacyUnzip ()
 

Static Public Member Functions

static getZips ()
 

Protected Member Functions

 tearDown ()
 

Protected Attributes

string $zips_dir = __DIR__ . '/zips/'
 
string $unzips_dir = __DIR__ . '/unzips/'
 

Static Protected Attributes

static array $files_mixed
 
static array $directories_mixed
 
static array $files_three
 
static array $top_directory_tree
 

Private Member Functions

 recurseRmdir (string $path_to_directory)
 
 directoryToArray (string $path_to_directory)
 

Static Private Attributes

static array $expected_flat_files
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 40 of file UnzipTest.php.

Member Function Documentation

◆ directoryToArray()

ILIAS\Filesystem\Util\UnzipTest::directoryToArray ( string  $path_to_directory)
private
Returns
string[]|string[][]

Definition at line 197 of file UnzipTest.php.

197 : array
198 {
199 $iterator = new \RecursiveIteratorIterator(
200 new \RecursiveDirectoryIterator($path_to_directory, \RecursiveDirectoryIterator::SKIP_DOTS),
201 \RecursiveIteratorIterator::SELF_FIRST,
202 \RecursiveIteratorIterator::CATCH_GET_CHILD
203 );
204 $paths = [];
205 foreach ($iterator as $item) {
206 $relative_path = str_replace($path_to_directory . '/', '', $item->getPathname());
207 $paths[] = $item->isDir() ? $relative_path . '/' : $relative_path;
208 }
209
210 sort($paths);
211
212 return $paths;
213 }

References ILIAS\UI\examples\Symbol\Glyph\Sort\sort().

+ Here is the call graph for this function:

◆ getZips()

static ILIAS\Filesystem\Util\UnzipTest::getZips ( )
static

Definition at line 217 of file UnzipTest.php.

217 : \Iterator
218 {
219 yield ['1_folder_mac.zip', false, 10, self::$directories_one, 15, self::$files_one];
220 yield ['1_folder_win.zip', false, 10, self::$directories_one, 15, self::$files_one];
221 yield ['3_folders_mac.zip', true, 9, self::$directories_three, 12, self::$files_three];
222 yield ['3_folders_win.zip', true, 9, self::$directories_three, 12, self::$files_three];
223 yield ['1_folder_1_file_mac.zip', true, 3, self::$directories_mixed, 5, self::$files_mixed];
224 }

◆ recurseRmdir()

ILIAS\Filesystem\Util\UnzipTest::recurseRmdir ( string  $path_to_directory)
private

Definition at line 183 of file UnzipTest.php.

183 : bool
184 {
185 $files = array_diff(scandir($path_to_directory), ['.', '..']);
186 foreach ($files as $file) {
187 (is_dir("$path_to_directory/$file") && !is_link("$path_to_directory/$file")) ? $this->recurseRmdir(
188 "$path_to_directory/$file"
189 ) : unlink("$path_to_directory/$file");
190 }
191 return rmdir($path_to_directory);
192 }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:183

◆ tearDown()

ILIAS\Filesystem\Util\UnzipTest::tearDown ( )
protected

Definition at line 45 of file UnzipTest.php.

45 : void
46 {
47 if (file_exists($this->unzips_dir)) {
48 rmdir($this->unzips_dir);
49 }
50 }

◆ testEnsureTopDirectory()

ILIAS\Filesystem\Util\UnzipTest::testEnsureTopDirectory ( )

Definition at line 136 of file UnzipTest.php.

136 : void
137 {
138 $legacy = new LegacyArchives();
139 $zip_path = $this->zips_dir . '3_folders_mac.zip';
140 $this->assertFileExists($zip_path);
141
142 $temp_unzip_path = $this->unzips_dir . uniqid('unzip', true);
143
144 $return = $legacy->unzip(
145 $zip_path,
146 $temp_unzip_path,
147 false,
148 false,
149 true
150 );
151
152 $this->assertTrue($return);
153
154 $unzipped_files = $this->directoryToArray($temp_unzip_path);
155
156 $this->assertSame(self::$top_directory_tree, $unzipped_files);
157 $this->assertTrue($this->recurseRmdir($temp_unzip_path));
158 }
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:197

◆ testFlatLegacyUnzip()

ILIAS\Filesystem\Util\UnzipTest::testFlatLegacyUnzip ( )

Definition at line 160 of file UnzipTest.php.

160 : void
161 {
162 $legacy = new LegacyArchives();
163 $zip_path = $this->zips_dir . '3_folders_mac.zip';
164 $this->assertFileExists($zip_path);
165
166 $temp_unzip_path = $this->unzips_dir . uniqid('unzip', true);
167
168 $return = $legacy->unzip(
169 $zip_path,
170 $temp_unzip_path,
171 false,
172 true
173 );
174
175 $this->assertTrue($return);
176
177 $unzipped_files = $this->directoryToArray($temp_unzip_path);
178
179 $this->assertSame(self::$expected_flat_files, $unzipped_files);
180 $this->assertTrue($this->recurseRmdir($temp_unzip_path));
181 }

◆ testLegacyUnzip()

ILIAS\Filesystem\Util\UnzipTest::testLegacyUnzip ( string  $zip,
bool  $has_multiple_root_entries,
int  $expected_amount_directories,
array  $expected_directories,
int  $expected_amount_files,
array  $expected_files 
)
Parameters
mixed[]$expected_directories
mixed[]$expected_files

Definition at line 106 of file UnzipTest.php.

113 : void {
114 $legacy = new LegacyArchives();
115
116 $this->assertStringContainsString('.zip', $zip);
117 $zip_path = $this->zips_dir . $zip;
118 $this->assertFileExists($zip_path);
119
120 $temp_unzip_path = $this->unzips_dir . uniqid('unzip', true);
121
122 $return = $legacy->unzip(
123 $zip_path,
124 $temp_unzip_path
125 );
126
127 $this->assertTrue($return);
128
129 $unzipped_files = $this->directoryToArray($temp_unzip_path);
130 $expected_paths = array_merge($expected_directories, $expected_files);
131 sort($expected_paths);
132 $this->assertEquals($expected_paths, $unzipped_files);
133 $this->assertTrue($this->recurseRmdir($temp_unzip_path));
134 }

◆ testWrongZip()

ILIAS\Filesystem\Util\UnzipTest::testWrongZip ( )

Definition at line 87 of file UnzipTest.php.

87 : void
88 {
89 $stream = Streams::ofResource(fopen(__FILE__, 'rb'));
90 $options = new UnzipOptions();
91 $unzip = new Unzip($options, $stream);
92 $this->assertTrue($unzip->hasZipReadingError());
93 $this->assertFalse($unzip->hasMultipleRootEntriesInZip());
94 $this->assertCount(0, iterator_to_array($unzip->getFiles()));
95 $this->assertCount(0, iterator_to_array($unzip->getDirectories()));
96 $this->assertCount(0, iterator_to_array($unzip->getPaths()));
97 $this->assertSame([], iterator_to_array($unzip->getDirectories()));
98 $this->assertSame([], iterator_to_array($unzip->getFiles()));
99 }
static ofResource($resource)
Wraps an already created resource with the stream abstraction.
Definition: Streams.php:64

References ILIAS\Filesystem\Stream\Streams\ofResource().

+ Here is the call graph for this function:

Field Documentation

◆ $directories_mixed

array ILIAS\Filesystem\Util\UnzipTest::$directories_mixed
staticprotected

Definition at line 234 of file UnzipTest.php.

◆ $expected_flat_files

array ILIAS\Filesystem\Util\UnzipTest::$expected_flat_files
staticprivate
Initial value:
= [
0 => '01_Test.pdf',
1 => '02_Test.pdf',
2 => '03_Test.pdf',
3 => '04_Test.pdf',
4 => '05_Test.pdf',
5 => '06_Test.pdf',
6 => '07_Test.pdf',
7 => '08_Test.pdf',
8 => '09_Test.pdf',
9 => '10_Test.pdf',
10 => '11_Test.pdf',
11 => '12_Test.pdf',
]

Definition at line 322 of file UnzipTest.php.

◆ $files_mixed

array ILIAS\Filesystem\Util\UnzipTest::$files_mixed
staticprotected
Initial value:
= [
0 => '03_Test.pdf',
1 => 'Ordner A/01_Test.pdf',
2 => 'Ordner A/02_Test.pdf',
3 => 'Ordner A/Ordner A_2/07_Test.pdf',
4 => 'Ordner A/Ordner A_2/08_Test.pdf'
]

Definition at line 226 of file UnzipTest.php.

◆ $files_three

array ILIAS\Filesystem\Util\UnzipTest::$files_three
staticprotected
Initial value:
= [
0 => 'Ordner A/01_Test.pdf',
1 => 'Ordner A/02_Test.pdf',
2 => 'Ordner A/Ordner A_2/07_Test.pdf',
3 => 'Ordner A/Ordner A_2/08_Test.pdf',
4 => 'Ordner B/03_Test.pdf',
5 => 'Ordner B/04_Test.pdf',
6 => 'Ordner B/Ordner B_2/09_Test.pdf',
7 => 'Ordner B/Ordner B_2/10_Test.pdf',
8 => 'Ordner C/05_Test.pdf',
9 => 'Ordner C/06_Test.pdf',
10 => 'Ordner C/Ordner C_2/11_Test.pdf',
11 => 'Ordner C/Ordner C_2/12_Test.pdf',
]

Definition at line 282 of file UnzipTest.php.

◆ $top_directory_tree

array ILIAS\Filesystem\Util\UnzipTest::$top_directory_tree
staticprotected
Initial value:
= [
0 => '3_folders_mac/',
1 => '3_folders_mac/Ordner A/',
2 => '3_folders_mac/Ordner A/01_Test.pdf',
3 => '3_folders_mac/Ordner A/02_Test.pdf',
4 => '3_folders_mac/Ordner A/Ordner A_1/',
5 => '3_folders_mac/Ordner A/Ordner A_2/',
6 => '3_folders_mac/Ordner A/Ordner A_2/07_Test.pdf',
7 => '3_folders_mac/Ordner A/Ordner A_2/08_Test.pdf',
8 => '3_folders_mac/Ordner B/',
9 => '3_folders_mac/Ordner B/03_Test.pdf',
10 => '3_folders_mac/Ordner B/04_Test.pdf',
11 => '3_folders_mac/Ordner B/Ordner B_1/',
12 => '3_folders_mac/Ordner B/Ordner B_2/',
13 => '3_folders_mac/Ordner B/Ordner B_2/09_Test.pdf',
14 => '3_folders_mac/Ordner B/Ordner B_2/10_Test.pdf',
15 => '3_folders_mac/Ordner C/',
16 => '3_folders_mac/Ordner C/05_Test.pdf',
17 => '3_folders_mac/Ordner C/06_Test.pdf',
18 => '3_folders_mac/Ordner C/Ordner C_1/',
19 => '3_folders_mac/Ordner C/Ordner C_2/',
20 => '3_folders_mac/Ordner C/Ordner C_2/11_Test.pdf',
21 => '3_folders_mac/Ordner C/Ordner C_2/12_Test.pdf',
]

Definition at line 297 of file UnzipTest.php.

◆ $unzips_dir

string ILIAS\Filesystem\Util\UnzipTest::$unzips_dir = __DIR__ . '/unzips/'
protected

Definition at line 43 of file UnzipTest.php.

◆ $zips_dir

string ILIAS\Filesystem\Util\UnzipTest::$zips_dir = __DIR__ . '/zips/'
protected

Definition at line 42 of file UnzipTest.php.


The documentation for this class was generated from the following file: