ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
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)
 getZips More...
 
 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 static array $directories_mixed
 
static array static array static array $directories_one
 
static array static array static array static array $directories_three
 
static array static array static array static array static array $files_one
 
static array static array static array static array static array static array $files_three
 
static array static array static array static array static array static array static array $top_directory_tree
 

Private Member Functions

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

Static Private Attributes

static array static array static array static array static array static array static array static array $expected_flat_files
 

Detailed Description

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 38 of file UnzipTest.php.

Member Function Documentation

◆ directoryToArray()

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

Definition at line 195 of file UnzipTest.php.

Referenced by ILIAS\Filesystem\Util\UnzipTest\testEnsureTopDirectory(), ILIAS\Filesystem\Util\UnzipTest\testFlatLegacyUnzip(), and ILIAS\Filesystem\Util\UnzipTest\testLegacyUnzip().

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

◆ getZips()

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

Definition at line 215 of file UnzipTest.php.

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

◆ recurseRmdir()

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

Definition at line 181 of file UnzipTest.php.

Referenced by ILIAS\Filesystem\Util\UnzipTest\testEnsureTopDirectory(), ILIAS\Filesystem\Util\UnzipTest\testFlatLegacyUnzip(), and ILIAS\Filesystem\Util\UnzipTest\testLegacyUnzip().

181  : bool
182  {
183  $files = array_diff(scandir($path_to_directory), ['.', '..']);
184  foreach ($files as $file) {
185  (is_dir("$path_to_directory/$file") && !is_link("$path_to_directory/$file")) ? $this->recurseRmdir(
186  "$path_to_directory/$file"
187  ) : unlink("$path_to_directory/$file");
188  }
189  return rmdir($path_to_directory);
190  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:181
+ Here is the caller graph for this function:

◆ tearDown()

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

Definition at line 43 of file UnzipTest.php.

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

◆ testEnsureTopDirectory()

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

Definition at line 134 of file UnzipTest.php.

References ILIAS\Filesystem\Util\UnzipTest\directoryToArray(), and ILIAS\Filesystem\Util\UnzipTest\recurseRmdir().

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

◆ testFlatLegacyUnzip()

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

Definition at line 158 of file UnzipTest.php.

References ILIAS\Filesystem\Util\UnzipTest\directoryToArray(), and ILIAS\Filesystem\Util\UnzipTest\recurseRmdir().

158  : void
159  {
160  $legacy = new LegacyArchives();
161  $zip_path = $this->zips_dir . '3_folders_mac.zip';
162  $this->assertFileExists($zip_path);
163 
164  $temp_unzip_path = $this->unzips_dir . uniqid('unzip', true);
165 
166  $return = $legacy->unzip(
167  $zip_path,
168  $temp_unzip_path,
169  false,
170  true
171  );
172 
173  $this->assertTrue($return);
174 
175  $unzipped_files = $this->directoryToArray($temp_unzip_path);
176 
177  $this->assertSame(self::$expected_flat_files, $unzipped_files);
178  $this->assertTrue($this->recurseRmdir($temp_unzip_path));
179  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:181
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:195
+ Here is the call graph for this function:

◆ 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 
)

getZips

Parameters
mixed[]$expected_directories
mixed[]$expected_files

Definition at line 104 of file UnzipTest.php.

References ILIAS\Filesystem\Util\UnzipTest\directoryToArray(), and ILIAS\Filesystem\Util\UnzipTest\recurseRmdir().

111  : void {
112  $legacy = new LegacyArchives();
113 
114  $this->assertStringContainsString('.zip', $zip);
115  $zip_path = $this->zips_dir . $zip;
116  $this->assertFileExists($zip_path);
117 
118  $temp_unzip_path = $this->unzips_dir . uniqid('unzip', true);
119 
120  $return = $legacy->unzip(
121  $zip_path,
122  $temp_unzip_path
123  );
124 
125  $this->assertTrue($return);
126 
127  $unzipped_files = $this->directoryToArray($temp_unzip_path);
128  $expected_paths = array_merge($expected_directories, $expected_files);
129  sort($expected_paths);
130  $this->assertEquals($expected_paths, $unzipped_files);
131  $this->assertTrue($this->recurseRmdir($temp_unzip_path));
132  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:181
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:195
+ Here is the call graph for this function:

◆ testWrongZip()

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

Definition at line 85 of file UnzipTest.php.

85  : void
86  {
87  $stream = Streams::ofResource(fopen(__FILE__, 'rb'));
88  $options = new UnzipOptions();
89  $unzip = new Unzip($options, $stream);
90  $this->assertTrue($unzip->hasZipReadingError());
91  $this->assertFalse($unzip->hasMultipleRootEntriesInZip());
92  $this->assertEquals(0, iterator_count($unzip->getFiles()));
93  $this->assertEquals(0, iterator_count($unzip->getDirectories()));
94  $this->assertEquals(0, iterator_count($unzip->getPaths()));
95  $this->assertEquals([], iterator_to_array($unzip->getDirectories()));
96  $this->assertEquals([], iterator_to_array($unzip->getFiles()));
97  }

Field Documentation

◆ $directories_mixed

array static array ILIAS\Filesystem\Util\UnzipTest::$directories_mixed
staticprotected
Initial value:
= [
0 => 'Ordner A/'

Definition at line 234 of file UnzipTest.php.

◆ $directories_one

array static array static array ILIAS\Filesystem\Util\UnzipTest::$directories_one
staticprotected
Initial value:
= [
0 => 'Ordner 0/'

Definition at line 240 of file UnzipTest.php.

◆ $directories_three

array static array static array static array ILIAS\Filesystem\Util\UnzipTest::$directories_three
staticprotected
Initial value:
= [
0 => 'Ordner A/'

Definition at line 252 of file UnzipTest.php.

◆ $expected_flat_files

array static array static array static array static array static array static array static array ILIAS\Filesystem\Util\UnzipTest::$expected_flat_files
staticprivate
Initial value:
= [
0 => '01_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'

Definition at line 226 of file UnzipTest.php.

◆ $files_one

array static array static array static array static array ILIAS\Filesystem\Util\UnzipTest::$files_one
staticprotected
Initial value:
= [
0 => 'Ordner 0/13_Test.pdf'

Definition at line 264 of file UnzipTest.php.

◆ $files_three

array static array static array static array static array static array ILIAS\Filesystem\Util\UnzipTest::$files_three
staticprotected
Initial value:
= [
0 => 'Ordner A/01_Test.pdf'

Definition at line 282 of file UnzipTest.php.

◆ $top_directory_tree

array static array static array static array static array static array static array ILIAS\Filesystem\Util\UnzipTest::$top_directory_tree
staticprotected
Initial value:
= [
0 => '3_folders_mac/'

Definition at line 297 of file UnzipTest.php.

◆ $unzips_dir

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

Definition at line 41 of file UnzipTest.php.

◆ $zips_dir

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

Definition at line 40 of file UnzipTest.php.


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