Skip to content

Commit 90b928f

Browse files
ENGCOM-4802: [2.3] Database Media Storage - Design Config Save functions to be Database Media Storage aware #21675
- Merge Pull Request #21675 from gwharton/magento2:2.3-develop-dbmediastorage4 - Merged commits: 1. 76e74ca 2. f33b038 3. a22a736
2 parents f7d4822 + a22a736 commit 90b928f

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

app/code/Magento/Theme/Model/Design/Backend/File.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use Magento\Framework\UrlInterface;
2222
use Magento\MediaStorage\Model\File\UploaderFactory;
2323
use Magento\Theme\Model\Design\Config\FileUploader\FileProcessor;
24+
use Magento\MediaStorage\Helper\File\Storage\Database;
2425

2526
/**
2627
* File Backend
@@ -39,6 +40,11 @@ class File extends BackendFile
3940
*/
4041
private $mime;
4142

43+
/**
44+
* @var Database
45+
*/
46+
private $databaseHelper;
47+
4248
/**
4349
* @param Context $context
4450
* @param Registry $registry
@@ -51,6 +57,7 @@ class File extends BackendFile
5157
* @param AbstractResource|null $resource
5258
* @param AbstractDb|null $resourceCollection
5359
* @param array $data
60+
* @param Database $databaseHelper
5461
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
5562
*/
5663
public function __construct(
@@ -64,7 +71,8 @@ public function __construct(
6471
UrlInterface $urlBuilder,
6572
AbstractResource $resource = null,
6673
AbstractDb $resourceCollection = null,
67-
array $data = []
74+
array $data = [],
75+
Database $databaseHelper = null
6876
) {
6977
parent::__construct(
7078
$context,
@@ -79,6 +87,7 @@ public function __construct(
7987
$data
8088
);
8189
$this->urlBuilder = $urlBuilder;
90+
$this->databaseHelper = $databaseHelper ?: ObjectManager::getInstance()->get(Database::class);
8291
}
8392

8493
/**
@@ -258,6 +267,10 @@ private function updateMediaDirectory(string $filename, string $url)
258267
$mediaPath,
259268
$destinationMediaPath
260269
);
270+
$this->databaseHelper->renameFile(
271+
$mediaPath,
272+
$destinationMediaPath
273+
);
261274
}
262275
if ($result) {
263276
if ($mediaPath === $tmpMediaPath) {

app/code/Magento/Theme/Test/Unit/Model/Design/Backend/FileTest.php

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ class FileTest extends \PHPUnit\Framework\TestCase
2828
*/
2929
private $mime;
3030

31+
/**
32+
* @var \Magento\MediaStorage\Helper\File\Storage\Database|\PHPUnit_Framework_MockObject_MockObject
33+
*/
34+
private $databaseHelper;
35+
3136
public function setUp()
3237
{
3338
$context = $this->getMockObject(\Magento\Framework\Model\Context::class);
@@ -55,6 +60,17 @@ public function setUp()
5560
->disableOriginalConstructor()
5661
->getMock();
5762

63+
$this->databaseHelper = $this->getMockBuilder(\Magento\MediaStorage\Helper\File\Storage\Database::class)
64+
->disableOriginalConstructor()
65+
->getMock();
66+
67+
$abstractResource = $this->getMockBuilder(\Magento\Framework\Model\ResourceModel\AbstractResource::class)
68+
->getMockForAbstractClass();
69+
70+
$abstractDb = $this->getMockBuilder(\Magento\Framework\Data\Collection\AbstractDb::class)
71+
->disableOriginalConstructor()
72+
->getMockForAbstractClass();
73+
5874
$this->fileBackend = new File(
5975
$context,
6076
$registry,
@@ -63,7 +79,11 @@ public function setUp()
6379
$uploaderFactory,
6480
$requestData,
6581
$filesystem,
66-
$this->urlBuilder
82+
$this->urlBuilder,
83+
$abstractResource,
84+
$abstractDb,
85+
[],
86+
$this->databaseHelper
6787
);
6888

6989
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
@@ -196,6 +216,11 @@ public function testBeforeSave($fileName)
196216
]
197217
);
198218

219+
$this->databaseHelper->expects($this->once())
220+
->method('renameFile')
221+
->with($expectedTmpMediaPath, '/' . $expectedFileName)
222+
->willReturn(true);
223+
199224
$this->mediaDirectory->expects($this->once())
200225
->method('copyFile')
201226
->with($expectedTmpMediaPath, '/' . $expectedFileName)

0 commit comments

Comments
 (0)