84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace Magento\Framework\Archive;
 | 
						|
 | 
						|
use Magento\Framework\App\Filesystem\DirectoryList;
 | 
						|
use Magento\Framework\Exception\FileSystemException;
 | 
						|
use Magento\Framework\Filesystem;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * Tests for Zip packing and unpacking
 | 
						|
 */
 | 
						|
class ZipTest extends TestCase
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @var Zip
 | 
						|
     */
 | 
						|
    private $zip;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var Filesystem\Directory\WriteInterface
 | 
						|
     */
 | 
						|
    private $directory;
 | 
						|
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $this->zip = Bootstrap::getObjectManager()->get(Zip::class);
 | 
						|
        $filesystem = Bootstrap::getObjectManager()->get(Filesystem::class);
 | 
						|
        $this->directory = $filesystem->getDirectoryWrite(DirectoryList::VAR_IMPORT_EXPORT);
 | 
						|
    }
 | 
						|
 | 
						|
    protected function tearDown(): void
 | 
						|
    {
 | 
						|
        foreach (['test.txt', 'test.zip'] as $file) {
 | 
						|
            $this->directory->delete($file);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @throws FileSystemException
 | 
						|
     */
 | 
						|
    public function testPack()
 | 
						|
    {
 | 
						|
        $driver = $this->directory->getDriver();
 | 
						|
        $driver->filePutContents(
 | 
						|
            $this->directory->getAbsolutePath('test.txt'),
 | 
						|
            file_get_contents(__DIR__ . '/_files/test.txt')
 | 
						|
        );
 | 
						|
 | 
						|
        $this->zip->pack(
 | 
						|
            $this->directory->getAbsolutePath('test.txt'),
 | 
						|
            $this->directory->getAbsolutePath('test.zip')
 | 
						|
        );
 | 
						|
 | 
						|
        self::assertTrue($this->directory->isFile('test.zip'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @throws FileSystemException
 | 
						|
     */
 | 
						|
    public function testUnpack()
 | 
						|
    {
 | 
						|
        $driver = $this->directory->getDriver();
 | 
						|
        $driver->filePutContents(
 | 
						|
            $this->directory->getAbsolutePath('test.zip'),
 | 
						|
            file_get_contents(__DIR__ . '/_files/test.zip')
 | 
						|
        );
 | 
						|
 | 
						|
        $this->zip->unpack(
 | 
						|
            $this->directory->getAbsolutePath('test.zip'),
 | 
						|
            $this->directory->getAbsolutePath('test.txt')
 | 
						|
        );
 | 
						|
 | 
						|
        self::assertTrue($this->directory->isFile('test.txt'));
 | 
						|
        self::assertEquals("test file\n", $this->directory->readFile('test.txt'));
 | 
						|
    }
 | 
						|
}
 |