Skip to content

Commit 515f27c

Browse files
committed
MAGETWO-90531: WYSIWYG shows special character button in toolbar on product page - when test module is enabled
- modifying integration test to customize toolbar
1 parent fd076ae commit 515f27c

File tree

3 files changed

+72
-2
lines changed

3 files changed

+72
-2
lines changed

dev/tests/integration/_files/Magento/TestModuleWysiwygConfig/Model/Config.php

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,64 @@ class Config implements \Magento\Framework\Data\Wysiwyg\ConfigProviderInterface
1919
*/
2020
const CONFIG_CONTENT_CSS = 'something_else.css';
2121

22+
/** @var \Magento\Cms\Model\Wysiwyg\DefaultConfigProvider */
23+
private $cmsConfigProvider;
24+
25+
/**
26+
* @param \Magento\Cms\Model\Wysiwyg\DefaultConfigProvider $cmsConfigProvider
27+
*/
28+
public function __construct(\Magento\Cms\Model\Wysiwyg\DefaultConfigProvider $cmsConfigProvider)
29+
{
30+
$this->cmsConfigProvider = $cmsConfigProvider;
31+
}
32+
2233
/**
2334
* @inheritdoc
2435
*/
2536
public function getConfig(\Magento\Framework\DataObject $config): \Magento\Framework\DataObject
2637
{
27-
$config->addData(
38+
//get default config
39+
$config = $this->cmsConfigProvider->getConfig($config);
40+
41+
$config = $this->removeSpecialCharacterFromToolbar($config);
42+
43+
$config = $this->modifyHeightAndContentCss($config);
44+
return $config;
45+
}
46+
47+
/**
48+
* Modify height and content_css in the config
49+
*
50+
* @param \Magento\Framework\DataObject $config
51+
* @return \Magento\Framework\DataObject
52+
*/
53+
private function modifyHeightAndContentCss(\Magento\Framework\DataObject $config) : \Magento\Framework\DataObject
54+
{
55+
return $config->addData(
2856
[
2957
'height' => self::CONFIG_HEIGHT,
3058
'content_css' => self::CONFIG_CONTENT_CSS
3159
]
3260
);
61+
}
62+
63+
/**
64+
* Modify height and content_css in the config
65+
*
66+
* @param \Magento\Framework\DataObject $config
67+
* @return \Magento\Framework\DataObject
68+
*/
69+
private function removeSpecialCharacterFromToolbar(
70+
\Magento\Framework\DataObject $config
71+
) : \Magento\Framework\DataObject {
72+
$tinymce4 = $config->getData('tinymce4');
73+
if (isset($tinymce4['toolbar']) && isset($tinymce4['plugins'])) {
74+
$toolbar = $tinymce4['toolbar'];
75+
$plugins = $tinymce4['plugins'];
76+
$tinymce4['toolbar'] = str_replace('charmap', '', $toolbar);
77+
$tinymce4['plugins'] = str_replace('charmap', '', $plugins);
78+
$config->setData('tinymce4', $tinymce4);
79+
}
3380
return $config;
3481
}
3582
}

dev/tests/integration/_files/Magento/TestModuleWysiwygConfig/etc/adminhtml/di.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
<argument name="wysiwygConfigPostProcessor" xsi:type="array">
1212
<item name="testAdapter" xsi:type="string">Magento\TestModuleWysiwygConfig\Model\Config</item>
1313
</argument>
14+
<argument name="wysiwygConfigPostProcessor" xsi:type="array">
15+
<item name="mage/adminhtml/wysiwyg/tiny_mce/tinymce4Adapter" xsi:type="string">Magento\TestModuleWysiwygConfig\Model\Config</item>
16+
</argument>
17+
<argument name="wysiwygConfigPostProcessor" xsi:type="array">
18+
<item name="default" xsi:type="string">Magento\TestModuleWysiwygConfig\Model\Config</item>
19+
</argument>
1420
<argument name="variablePluginConfigProvider" xsi:type="array">
1521
<item name="testAdapter" xsi:type="string">Magento\Variable\Model\Variable\ConfigProvider</item>
1622
</argument>
@@ -22,4 +28,14 @@
2228
</argument>
2329
</arguments>
2430
</type>
31+
<type name="Magento\Cms\Model\Config\Source\Wysiwyg\Editor">
32+
<arguments>
33+
<argument name="adapterOptions" xsi:type="array">
34+
<item name="testAdapter" xsi:type="array">
35+
<item name="value" xsi:type="string">mage/adminhtml/wysiwyg/tiny_mce/tinymce4Adapter</item>
36+
<item name="label" xsi:type="string" translatable="true">Test Adapter</item>
37+
</item>
38+
</argument>
39+
</arguments>
40+
</type>
2541
</config>

dev/tests/integration/testsuite/Magento/Cms/Model/Wysiwyg/ConfigTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public function testGetConfigCssUrls()
5757
*
5858
* @magentoConfigFixture default/cms/wysiwyg/editor testAdapter
5959
*/
60-
public function testEnabledModuleIsAbleToModifyConfig()
60+
public function testTestModuleEnabledModuleIsAbleToModifyConfig()
6161
{
6262
$objectManager = Bootstrap::getObjectManager();
6363
$compositeConfigProvider = $objectManager->create(\Magento\Cms\Model\Wysiwyg\CompositeConfigProvider::class);
@@ -68,5 +68,12 @@ public function testEnabledModuleIsAbleToModifyConfig()
6868
$config = $model->getConfig();
6969
$this->assertEquals(TestModuleWysiwygConfig::CONFIG_HEIGHT, $config['height']);
7070
$this->assertEquals(TestModuleWysiwygConfig::CONFIG_CONTENT_CSS, $config['content_css']);
71+
$this->assertArrayHasKey('tinymce4', $config);
72+
$this->assertArrayHasKey('toolbar', $config['tinymce4']);
73+
$this->assertNotContains(
74+
'charmap',
75+
$config['tinymce4']['toolbar'],
76+
'Failed to address that the custom test module removes "charmap" button from the toolbar'
77+
);
7178
}
7279
}

0 commit comments

Comments
 (0)