/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
dev/tests/integration/testsuite/Magento/Framework/File/UploaderTest.php
111 строк
3 KB
Deepk Tiwari
Merge branch '2.4.9-develop' into cia-2.4.9-develop-bugfix-03302026
01 апр 2026, 09:24
Не верифицирован
01 апр 2026, 09:24
01ee181
Код
Авторство
О чём код?
<?php /** * Copyright 2019 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\File; use Magento\Framework\App\Filesystem\DirectoryList; use PHPUnit\Framework\TestCase; use Magento\TestFramework\Helper\Bootstrap; use Magento\Framework\Filesystem; use PHPUnit\Framework\Attributes\DataProvider; /** * Test for \Magento\Framework\File\Uploader */ class UploaderTest extends TestCase { /** * @var UploaderFactory */ private $uploaderFactory; /** * @var Filesystem\File\WriteInterface */ private $mediaDirectory; /** * @inheritDoc */ protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->uploaderFactory = $objectManager->get(UploaderFactory::class); $filesystem = $objectManager->get(Filesystem::class); $this->mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA); } /** * @inheritDoc */ public function tearDown(): void { $this->mediaDirectory->delete('customer_address'); } /** * @throws \Magento\Framework\Exception\FileSystemException */ #[DataProvider('uploadDataProvider')] public function testUpload(string $expectedFile, ?string $newImageName = null): void { $this->mediaDirectory->delete('customer_address'); $this->mediaDirectory->create($this->mediaDirectory->getRelativePath('customer_address/tmp/')); $tmpFilePath = $this->mediaDirectory->getAbsolutePath('customer_address/tmp/magento.jpg'); $this->mediaDirectory->getDriver()->filePutContents( $tmpFilePath, file_get_contents(__DIR__ . '/_files/magento.jpg') ); $fileData = [ 'name' => 'magento.jpg', 'type' => 'image/jpeg', 'tmp_name' => $tmpFilePath, 'error' => 0, 'size' => 139416, ]; $uploader = $this->uploaderFactory->create(['fileId' => $fileData]); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(false); $uploader->save($this->mediaDirectory->getAbsolutePath('customer_address'), $newImageName); self::assertEquals($newImageName ?? 'magento.jpg', $uploader->getUploadedFileName()); self::assertTrue($this->mediaDirectory->isExist($expectedFile)); } /** * @return array */ public static function uploadDataProvider(): array { return [ [ 'customer_address/magento.jpg', null, ], [ 'customer_address/new_magento.jpg', 'new_magento.jpg', ] ]; } } /** * Mocking of std function to test validation * * @param string $name * @return bool */ if (!function_exists(__NAMESPACE__ . '\is_uploaded_file')) { function is_uploaded_file($name) { return ($name == 'magento.jpg') ? false : true; } }