| 
|   | 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.
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;
 
 
 
 
◆ 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().
  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);
 
 
 
 
◆ 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(), and ILIAS\Filesystem\Util\ZipTest\recurseRmdir().
  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)
 
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: