Skip to content

Commit 08fef81

Browse files
author
Yuri Kovsher
committed
Merge remote-tracking branch 'tango-ce/MAGETWO-32989' into MAGETWO-32571
2 parents 0f51ee5 + 8eb8ae3 commit 08fef81

File tree

3 files changed

+72
-0
lines changed

3 files changed

+72
-0
lines changed

app/code/Magento/Widget/Model/Template/Filter.php

100644100755
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,17 @@ public function widgetDirective($construction)
110110

111111
return $widget->toHtml();
112112
}
113+
114+
/**
115+
* Retrieve media file URL directive
116+
*
117+
* @param string[] $construction
118+
* @return string
119+
*/
120+
public function mediaDirective($construction)
121+
{
122+
$params = $this->_getIncludeParameters($construction[2]);
123+
return $this->_storeManager->getStore()
124+
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . $params['url'];
125+
}
113126
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Widget\Model\Template;
7+
8+
class FilterTest extends \PHPUnit_Framework_TestCase
9+
{
10+
public function testMediaDirective()
11+
{
12+
$image = 'wysiwyg/VB.png';
13+
$construction = ['{{media url="' . $image . '"}}', 'media', ' url="' . $image . '"'];
14+
$baseUrl = 'http://localhost/pub/media/';
15+
16+
/** @var \Magento\Widget\Model\Template\Filter $filter */
17+
$filter = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
18+
'Magento\Widget\Model\Template\Filter'
19+
);
20+
$result = $filter->mediaDirective($construction);
21+
$this->assertEquals($baseUrl . $image, $result);
22+
}
23+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Widget\Model\Template;
7+
8+
use Magento\Framework\Store\StoreManagerInterface;
9+
10+
class FilterTest extends \PHPUnit_Framework_TestCase
11+
{
12+
public function testMediaDirective()
13+
{
14+
$image = 'wysiwyg/VB.png';
15+
$construction = ['{{media url="' . $image . '"}}', 'media', ' url="' . $image . '"'];
16+
$baseUrl = 'http://localhost/pub/media/';
17+
18+
/** @var \Magento\Store\Model\Store|\PHPUnit_Framework_MockObject_MockObject $storeMock */
19+
$storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false);
20+
$storeMock->expects($this->once())->method('getBaseUrl')->with(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA)
21+
->willReturn($baseUrl);
22+
23+
/** @var StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject $storeManagerMock */
24+
$storeManagerMock = $this->getMock('Magento\Framework\Store\StoreManagerInterface', [], [], '', false);
25+
$storeManagerMock->expects($this->once())->method('getStore')->will($this->returnValue($storeMock));
26+
27+
/** @var \Magento\Widget\Model\Template\Filter $filter */
28+
$filter = (new \Magento\TestFramework\Helper\ObjectManager($this))
29+
->getObject(
30+
'Magento\Widget\Model\Template\Filter',
31+
['storeManager' => $storeManagerMock]
32+
);
33+
$result = $filter->mediaDirective($construction);
34+
$this->assertEquals($baseUrl . $image, $result);
35+
}
36+
}

0 commit comments

Comments
 (0)