예제 #1
0
 /**
  * @covers ::setOutput
  * @covers ::addFile
  * @covers ::closeArchive
  */
 public function testUnArchiveFiles()
 {
     $output_file = tempnam('/tmp', 'test');
     $file = new WritableStreamBackupFile($output_file);
     $this->archiver->setArchive($file);
     $file_names = array_keys($this->file_list);
     foreach ($file_names as $filename) {
         $this->archiver->addFile('vfs://root/files/' . $filename, $filename);
     }
     $this->archiver->closeArchive();
     $output_dir = tempnam(sys_get_temp_dir(), '');
     if (file_exists($output_dir)) {
         unlink($output_dir);
     }
     mkdir($output_dir);
     $this->reader->setArchive($file);
     $this->reader->extractTo($output_dir);
     // Recursively read the output directory.
     $objects = new RecursiveDirectoryIterator($output_dir, FilesystemIterator::SKIP_DOTS);
     $file_list = [];
     foreach (new RecursiveIteratorIterator($objects) as $filename => $cur) {
         $file_list[] = substr($filename, strlen($output_dir) + 1);
     }
     sort($file_names);
     sort($file_list);
     // Make sure the files all exist with the correct names.
     $this->assertEquals($file_names, $file_list);
     foreach ($this->file_list as $file_name => $contents) {
         $output = file_get_contents($output_dir . '/' . $file_name);
         $this->assertEquals($contents, $output);
     }
 }
예제 #2
0
 /**
  * @covers ::setOutput
  * @covers ::addFile
  * @covers ::closeArchive
  */
 public function testArchiveFiles()
 {
     $output_file = tempnam('/tmp', 'test');
     $file = new WritableStreamBackupFile($output_file);
     $this->archiver->setArchive($file);
     $file_names = array_keys($this->file_list);
     foreach ($file_names as $filename) {
         $this->archiver->addFile('vfs://root/files/' . $filename, $filename);
     }
     $this->archiver->closeArchive();
     $tar_list = null;
     exec('tar tf ' . $output_file, $tar_list);
     // Make sure the files all exist with the correct names.
     $this->assertEquals($file_names, $tar_list);
     foreach ($this->file_list as $file_name => $contents) {
         $output = null;
         $output = exec('tar xfO ' . $output_file . ' ' . $file_name);
         $this->assertEquals($contents, $output);
     }
 }