Skip to content

Commit ba8b855

Browse files
author
Yuri Kovsher
committed
Merge remote-tracking branch 'tango-ce/MAGETWO-48529-Clean' into MAGETWO-48529
2 parents fdc06a4 + a06d012 commit ba8b855

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

app/code/Magento/Cms/Model/Wysiwyg/Config.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Cms\Model\Wysiwyg;
77

8+
use Magento\Framework\Filesystem;
9+
use Magento\Framework\App\Filesystem\DirectoryList;
810
use Magento\Ui\Component\Wysiwyg\ConfigInterface;
911

1012
/**
@@ -91,6 +93,11 @@ class Config extends \Magento\Framework\DataObject implements ConfigInterface
9193
*/
9294
protected $_storeManager;
9395

96+
/**
97+
* @var Filesystem
98+
*/
99+
protected $filesystem;
100+
94101
/**
95102
* @param \Magento\Backend\Model\UrlInterface $backendUrl
96103
* @param \Magento\Framework\Event\ManagerInterface $eventManager
@@ -100,6 +107,7 @@ class Config extends \Magento\Framework\DataObject implements ConfigInterface
100107
* @param \Magento\Widget\Model\Widget\Config $widgetConfig
101108
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
102109
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
110+
* @param Filesystem $filesystem
103111
* @param array $windowSize
104112
* @param array $data
105113
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
@@ -113,6 +121,7 @@ public function __construct(
113121
\Magento\Widget\Model\Widget\Config $widgetConfig,
114122
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
115123
\Magento\Store\Model\StoreManagerInterface $storeManager,
124+
Filesystem $filesystem,
116125
array $windowSize = [],
117126
array $data = []
118127
) {
@@ -125,6 +134,7 @@ public function __construct(
125134
$this->_widgetConfig = $widgetConfig;
126135
$this->_windowSize = $windowSize;
127136
$this->_storeManager = $storeManager;
137+
$this->filesystem = $filesystem;
128138
parent::__construct($data);
129139
}
130140

@@ -157,6 +167,9 @@ public function getConfig($data = [])
157167
'add_widgets' => true,
158168
'no_display' => false,
159169
'encode_directives' => true,
170+
'baseStaticUrl' => $this->_assetRepo->getStaticViewFileContext()->getBaseUrl(),
171+
'baseStaticDefaultUrl' => str_replace('index.php/', '', $this->_backendUrl->getBaseUrl())
172+
. $this->filesystem->getUri(DirectoryList::STATIC_VIEW) . '/',
160173
'directives_url' => $this->_backendUrl->getUrl('cms/wysiwyg/directive'),
161174
'popup_css' => $this->_assetRepo->getUrl(
162175
'mage/adminhtml/wysiwyg/tiny_mce/themes/advanced/skins/default/dialog.css'

app/code/Magento/Cms/Test/Unit/Model/Wysiwyg/ConfigTest.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
/**
99
* @covers \Magento\Cms\Model\Wysiwyg\Config
10+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1011
*/
1112
class ConfigTest extends \PHPUnit_Framework_TestCase
1213
{
@@ -60,13 +61,19 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
6061
*/
6162
protected $assetFileMock;
6263

64+
/**
65+
* @var \Magento\Framework\Filesystem|\PHPUnit_Framework_MockObject_MockObject
66+
*/
67+
protected $filesystemMock;
68+
6369
/**
6470
* @var array
6571
*/
6672
protected $windowSize = [];
6773

6874
protected function setUp()
6975
{
76+
$this->filesystemMock = $this->getMock(\Magento\Framework\Filesystem::class, [], [], '', false);
7077
$this->backendUrlMock = $this->getMockBuilder('Magento\Backend\Model\UrlInterface')
7178
->disableOriginalConstructor()
7279
->getMock();
@@ -110,7 +117,8 @@ protected function setUp()
110117
'widgetConfig' => $this->widgetConfigMock,
111118
'scopeConfig' => $this->scopeConfigMock,
112119
'windowSize' => $this->windowSize,
113-
'storeManager' => $this->storeManagerMock
120+
'storeManager' => $this->storeManagerMock,
121+
'filesystem' => $this->filesystemMock,
114122
]
115123
);
116124
}
@@ -139,12 +147,26 @@ public function testGetConfig($data, $isAuthorizationAllowed, $expectedResults)
139147
['cms/wysiwyg/directive'],
140148
['cms/wysiwyg_images/index']
141149
);
150+
$this->backendUrlMock->expects($this->once())
151+
->method('getBaseUrl')
152+
->willReturn('localhost/index.php/');
142153
$this->assetRepoMock->expects($this->atLeastOnce())
143154
->method('getUrl')
144155
->withConsecutive(
145156
['mage/adminhtml/wysiwyg/tiny_mce/themes/advanced/skins/default/dialog.css'],
146157
['mage/adminhtml/wysiwyg/tiny_mce/themes/advanced/skins/default/content.css']
147158
);
159+
$this->filesystemMock->expects($this->once())
160+
->method('getUri')
161+
->willReturn('pub/static');
162+
/** @var \Magento\Framework\View\Asset\ContextInterface|\PHPUnit_Framework_MockObject_MockObject $contextMock */
163+
$contextMock = $this->getMock(\Magento\Framework\View\Asset\ContextInterface::class);
164+
$contextMock->expects($this->once())
165+
->method('getBaseUrl')
166+
->willReturn('localhost/pub/static/');
167+
$this->assetRepoMock->expects($this->once())
168+
->method('getStaticViewFileContext')
169+
->willReturn($contextMock);
148170
$this->authorizationMock->expects($this->atLeastOnce())
149171
->method('isAllowed')
150172
->with('Magento_Cms::media_gallery')
@@ -161,6 +183,8 @@ public function testGetConfig($data, $isAuthorizationAllowed, $expectedResults)
161183
$this->assertEquals($expectedResults[0], $config->getData('someData'));
162184
$this->assertEquals($expectedResults[1], $config->getData('wysiwygPluginSettings'));
163185
$this->assertEquals($expectedResults[2], $config->getData('pluginSettings'));
186+
$this->assertEquals('localhost/pub/static/', $config->getData('baseStaticUrl'));
187+
$this->assertEquals('localhost/pub/static/', $config->getData('baseStaticDefaultUrl'));
164188
}
165189

166190
public function getConfigDataProvider()

lib/web/mage/adminhtml/wysiwyg/tiny_mce/setup.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ define([
1919
mediaBrowserTargetElementId: null,
2020

2121
initialize: function(htmlId, config) {
22+
if (config.baseStaticUrl && config.baseStaticDefaultUrl) {
23+
tinyMCE.baseURL = tinyMCE.baseURL.replace(config.baseStaticUrl, config.baseStaticDefaultUrl);
24+
}
25+
2226
this.id = htmlId;
2327
this.config = config;
2428

@@ -352,4 +356,4 @@ define([
352356
}
353357
};
354358

355-
});
359+
});

0 commit comments

Comments
 (0)