Skip to content

Commit 68f56ba

Browse files
author
Bryant Luk
committed
Merge remote-tracking branch 'api/MAGETWO-34527' into Bug-Fixes
2 parents ce6d85c + 00b2022 commit 68f56ba

File tree

3 files changed

+90
-1
lines changed

3 files changed

+90
-1
lines changed

app/code/Magento/Config/Model/Config/Backend/Image/Logo.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,14 @@ protected function _addWhetherScopeInfo()
3737
{
3838
return true;
3939
}
40+
41+
/**
42+
* Getter for allowed extensions of uploaded files.
43+
*
44+
* @return string[]
45+
*/
46+
protected function _getAllowedExtensions()
47+
{
48+
return ['jpg', 'jpeg', 'gif', 'png', 'svg'];
49+
}
4050
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Config\Test\Unit\Model\Config\Backend\Image;
7+
8+
class LogoTest extends \PHPUnit_Framework_TestCase
9+
{
10+
/**
11+
* @var \Magento\Config\Model\Config\Backend\Image\Logo
12+
*/
13+
private $model;
14+
15+
/**
16+
* @var \PHPUnit_Framework_MockObject_MockObject
17+
*/
18+
private $uploaderFactoryMock;
19+
20+
/**
21+
* @var \PHPUnit_Framework_MockObject_MockObject
22+
*/
23+
private $uploaderMock;
24+
25+
/**
26+
* @var \PHPUnit_Framework_MockObject_MockObject
27+
*/
28+
private $requestDataMock;
29+
30+
public function setUp()
31+
{
32+
$helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
33+
$this->uploaderFactoryMock = $this->getMockBuilder('\Magento\MediaStorage\Model\File\UploaderFactory')
34+
->setMethods(['create'])
35+
->disableOriginalConstructor()
36+
->getMock();
37+
$this->uploaderMock = $this->getMockBuilder('\Magento\MediaStorage\Model\File\Uploader')
38+
->setMethods(['setAllowedExtensions', 'save'])
39+
->disableOriginalConstructor()
40+
->getMock();
41+
$this->uploaderFactoryMock
42+
->expects($this->once())
43+
->method('create')
44+
->will($this->returnValue($this->uploaderMock));
45+
$this->requestDataMock = $this
46+
->getMockBuilder('\Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface')
47+
->setMethods(['getTmpName'])
48+
->getMockForAbstractClass();
49+
$mediaDirectoryMock = $this->getMockBuilder('\Magento\Framework\Filesystem\Directory\WriteInterface')
50+
->disableOriginalConstructor()
51+
->getMockForAbstractClass();
52+
$filesystemMock = $this->getMockBuilder('\Magento\Framework\Filesystem')
53+
->disableOriginalConstructor()
54+
->setMethods(['getDirectoryWrite'])
55+
->getMock();
56+
$filesystemMock->expects($this->once())
57+
->method('getDirectoryWrite')
58+
->will($this->returnValue($mediaDirectoryMock));
59+
$this->model = $helper->getObject(
60+
'Magento\Config\Model\Config\Backend\Image\Logo',
61+
[
62+
'uploaderFactory' => $this->uploaderFactoryMock,
63+
'requestData' => $this->requestDataMock,
64+
'filesystem' => $filesystemMock,
65+
]
66+
);
67+
}
68+
69+
public function testBeforeSave()
70+
{
71+
$this->requestDataMock->expects($this->once())
72+
->method('getTmpName')
73+
->will($this->returnValue('/tmp/val'));
74+
$this->uploaderMock->expects($this->once())
75+
->method('setAllowedExtensions')
76+
->with($this->equalTo(['jpg', 'jpeg', 'gif', 'png', 'svg']));
77+
$this->model->beforeSave();
78+
}
79+
}

app/code/Magento/Theme/etc/adminhtml/system.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
<label>Header</label>
6262
<field id="logo_src" translate="label" type="image" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
6363
<label>Logo Image</label>
64-
<comment>Allowed file types:PNG, GIF, JPG, JPEG.</comment>
64+
<comment>Allowed file types:PNG, GIF, JPG, JPEG, SVG.</comment>
6565
<backend_model>Magento\Config\Model\Config\Backend\Image\Logo</backend_model>
6666
<base_url type="media" scope_info="1">logo</base_url>
6767
</field>

0 commit comments

Comments
 (0)