ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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 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

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.

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

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

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  }
sort()
description: > Example for rendering a Sort Glyph.
Definition: sort.php:41
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getZips()

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

Definition at line 217 of file UnzipTest.php.

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

◆ recurseRmdir()

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

Definition at line 183 of file UnzipTest.php.

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

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
+ Here is the caller graph for this function:

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

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

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  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:183
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:197
+ Here is the call graph for this function:

◆ testFlatLegacyUnzip()

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

Definition at line 160 of file UnzipTest.php.

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

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  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:183
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:197
+ 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 
)
Parameters
mixed[]$expected_directories
mixed[]$expected_files

Definition at line 106 of file UnzipTest.php.

References ILIAS\Filesystem\Util\UnzipTest\directoryToArray(), ILIAS\Filesystem\Util\UnzipTest\recurseRmdir(), and ILIAS\UI\examples\Symbol\Glyph\Sort\sort().

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  }
recurseRmdir(string $path_to_directory)
Definition: UnzipTest.php:183
sort()
description: > Example for rendering a Sort Glyph.
Definition: sort.php:41
directoryToArray(string $path_to_directory)
Definition: UnzipTest.php:197
+ Here is the call graph for this function:

◆ 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->assertEquals(0, iterator_count($unzip->getFiles()));
95  $this->assertEquals(0, iterator_count($unzip->getDirectories()));
96  $this->assertEquals(0, iterator_count($unzip->getPaths()));
97  $this->assertEquals([], iterator_to_array($unzip->getDirectories()));
98  $this->assertEquals([], iterator_to_array($unzip->getFiles()));
99  }

Field Documentation

◆ $directories_mixed

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

Definition at line 236 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 242 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 254 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 324 of file UnzipTest.php.

◆ $files_mixed

array ILIAS\Filesystem\Util\UnzipTest::$files_mixed
staticprotected
Initial value:
= [
0 => '03_Test.pdf'

Definition at line 228 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 266 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 284 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 299 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: