diff --git a/app/code/Magento/Theme/Model/Design/Backend/File.php b/app/code/Magento/Theme/Model/Design/Backend/File.php index 8d1884671c3fb..095a8aaf178ab 100644 --- a/app/code/Magento/Theme/Model/Design/Backend/File.php +++ b/app/code/Magento/Theme/Model/Design/Backend/File.php @@ -21,6 +21,7 @@ use Magento\Framework\UrlInterface; use Magento\MediaStorage\Model\File\UploaderFactory; use Magento\Theme\Model\Design\Config\FileUploader\FileProcessor; +use Magento\MediaStorage\Helper\File\Storage\Database; /** * File Backend @@ -39,6 +40,11 @@ class File extends BackendFile */ private $mime; + /** + * @var Database + */ + private $databaseHelper; + /** * @param Context $context * @param Registry $registry @@ -48,6 +54,7 @@ class File extends BackendFile * @param RequestDataInterface $requestData * @param Filesystem $filesystem * @param UrlInterface $urlBuilder + * @param Database $databaseHelper * @param AbstractResource|null $resource * @param AbstractDb|null $resourceCollection * @param array $data @@ -62,6 +69,7 @@ public function __construct( RequestDataInterface $requestData, Filesystem $filesystem, UrlInterface $urlBuilder, + Database $databaseHelper, AbstractResource $resource = null, AbstractDb $resourceCollection = null, array $data = [] @@ -79,6 +87,7 @@ public function __construct( $data ); $this->urlBuilder = $urlBuilder; + $this->databaseHelper = $databaseHelper; } /** @@ -258,6 +267,10 @@ private function updateMediaDirectory(string $filename, string $url) $mediaPath, $destinationMediaPath ); + $this->databaseHelper->renameFile( + $mediaPath, + $destinationMediaPath + ); } if ($result) { if ($mediaPath === $tmpMediaPath) { diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/FileTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/FileTest.php index b49b3cb797651..ab82c6a78f592 100644 --- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/FileTest.php +++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/FileTest.php @@ -28,6 +28,11 @@ class FileTest extends \PHPUnit\Framework\TestCase */ private $mime; + /** + * @var \Magento\MediaStorage\Helper\File\Storage\Database|\PHPUnit_Framework_MockObject_MockObject + */ + private $databaseHelper; + public function setUp() { $context = $this->getMockObject(\Magento\Framework\Model\Context::class); @@ -55,6 +60,10 @@ public function setUp() ->disableOriginalConstructor() ->getMock(); + $this->databaseHelper = $this->getMockBuilder(\Magento\MediaStorage\Helper\File\Storage\Database::class) + ->disableOriginalConstructor() + ->getMock(); + $this->fileBackend = new File( $context, $registry, @@ -63,7 +72,8 @@ public function setUp() $uploaderFactory, $requestData, $filesystem, - $this->urlBuilder + $this->urlBuilder, + $this->databaseHelper ); $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); @@ -196,6 +206,11 @@ public function testBeforeSave($fileName) ] ); + $this->databaseHelper->expects($this->once()) + ->method('renameFile') + ->with($expectedTmpMediaPath, '/' . $expectedFileName) + ->willReturn(true); + $this->mediaDirectory->expects($this->once()) ->method('copyFile') ->with($expectedTmpMediaPath, '/' . $expectedFileName)