![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Framework/Filesystem/Driver/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Filesystem\Driver; use Magento\Framework\Exception\FileSystemException; use PHPUnit\Framework\TestCase; /** * Test for \Magento\Framework\Filesystem\Driver\File * Verify File class */ class FileTest extends TestCase { /** * @var File */ private $driver; /** * @var String */ private $absolutePath; /** * @var String */ private $generatedPath; /** * Returns relative path for the test. * * @param $relativePath * @return string */ protected function getTestPath($relativePath) { return $this->absolutePath . $relativePath; } /** * @inheritdoc */ protected function setUp(): void { $this->driver = new File(); $this->absolutePath = dirname(__DIR__) . '/_files/'; $this->generatedPath = $this->getTestPath('generated'); $this->removeGeneratedDirectory(); } /** * @inheritdoc * * @return void */ protected function tearDown(): void { $this->removeGeneratedDirectory(); } /** * Tests read directory with symlynked folders. * * @return void */ public function testReadDirectoryRecursivelyWithSymlinkedFolders(): void { $sourceDirectory = $this->generatedPath . '/source'; $destinationDirectory = $this->generatedPath . '/destination'; $this->driver->createDirectory($sourceDirectory); $this->driver->createDirectory($sourceDirectory . '/directory1'); $this->driver->createDirectory($destinationDirectory); $linkName = $destinationDirectory . '/link'; $this->driver->symlink($sourceDirectory, $linkName); $paths = [ $destinationDirectory . '/link' . '/directory1', $destinationDirectory . '/link' ]; $actual = $this->driver->readDirectoryRecursively($destinationDirectory); $this->assertEquals($paths, $actual); } /** * Tests directory recursive read. * * @return void */ public function testReadDirectoryRecursively(): void { $paths = [ 'foo/bar', 'foo/bar/baz', 'foo/bar/baz/file_one.txt', 'foo/bar/file_two.txt', 'foo/file_three.txt', ]; $expected = array_map([self::class, 'getTestPath'], $paths); $actual = $this->driver->readDirectoryRecursively($this->getTestPath('foo')); sort($actual); $this->assertEquals($expected, $actual); } /** * Tests directory reading exception. * * @return void */ public function testReadDirectoryRecursivelyFailure(): void { $this->expectException(\Magento\Framework\Exception\FileSystemException::class); $this->driver->readDirectoryRecursively($this->getTestPath('not-existing-directory')); } /** * Tests of directory creating. * * @throws FileSystemException * @return void */ public function testCreateDirectory(): void { $generatedPath = $this->getTestPath('generated/roo/bar/baz/foo'); $generatedPathBase = $this->getTestPath('generated'); // Delete the generated directory if it already exists if (is_dir($generatedPath)) { $this->assertTrue($this->driver->deleteDirectory($generatedPathBase)); } $this->assertTrue($this->driver->createDirectory($generatedPath)); $this->assertTrue(is_dir($generatedPath)); } /** * Tests creation and removing of symlinks. * * @throws FileSystemException * @return void */ public function testSymlinks(): void { $sourceDirectory = $this->generatedPath . '/source'; $destinationDirectory = $this->generatedPath . '/destination'; $this->driver->createDirectory($sourceDirectory); $this->driver->createDirectory($destinationDirectory); $linkName = $destinationDirectory . '/link'; self::assertTrue($this->driver->isWritable($destinationDirectory)); self::assertTrue($this->driver->symlink($sourceDirectory, $linkName)); self::assertTrue($this->driver->isExists($linkName)); self::assertTrue($this->driver->deleteDirectory($linkName)); } /** * Verify file put content without content. * * @return void * @throws FileSystemException */ public function testFilePutWithoutContents(): void { $path = $this->absolutePath . 'foo/file_three.txt'; $this->assertEquals(0, $this->driver->filePutContents($path, '')); } /** * Remove generated directories. * * @throws FileSystemException * @return void */ private function removeGeneratedDirectory(): void { if (is_dir($this->generatedPath)) { $this->driver->deleteDirectory($this->generatedPath); } } }