Skip to content

Commit 479fbbf

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-57051' into 2.1.8-develop-pr7
2 parents 158a0c6 + e7bdb57 commit 479fbbf

File tree

6 files changed

+110
-6
lines changed

6 files changed

+110
-6
lines changed

dev/tests/functional/tests/app/Magento/Cms/Test/Block/Page.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,18 @@ public function waitPageInit()
122122
$this->waitForElementNotVisible($this->initialScript);
123123
sleep(3); // TODO: remove after resolving an issue with ajax on Frontend.
124124
}
125+
126+
/**
127+
* Get widget title value.
128+
*
129+
* @param string $widgetType
130+
* @param string $widgetText
131+
* @return string
132+
*/
133+
public function getWidgetTitle($widgetType, $widgetText)
134+
{
135+
return $this->_rootElement
136+
->find(sprintf($this->widgetSelectors[$widgetType], $widgetText), Locator::SELECTOR_XPATH)
137+
->getAttribute('title');
138+
}
125139
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Cms\Test\Constraint;
8+
9+
use Magento\Cms\Test\Fixture\CmsPage;
10+
use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex;
11+
use Magento\Cms\Test\Page\CmsPage as FrontCmsPage;
12+
use Magento\Mtf\Client\BrowserInterface;
13+
use Magento\Mtf\Constraint\AbstractConstraint;
14+
15+
/**
16+
* Assert that widget title equals passed from fixture.
17+
*/
18+
class AssertCmsWidgetTitle extends AbstractConstraint
19+
{
20+
/* tags */
21+
const SEVERITY = 'low';
22+
/* end tags */
23+
24+
/**
25+
* Assert that widget title equals passed from fixture.
26+
*
27+
* @param CmsPageIndex $cmsIndex
28+
* @param FrontCmsPage $frontCmsPage
29+
* @param CmsPage $cms
30+
* @param BrowserInterface $browser
31+
* @return void
32+
*/
33+
public function processAssert(
34+
CmsPageIndex $cmsIndex,
35+
FrontCmsPage $frontCmsPage,
36+
CmsPage $cms,
37+
BrowserInterface $browser
38+
) {
39+
$cmsIndex->open();
40+
$filter = ['title' => $cms->getTitle()];
41+
$cmsIndex->getCmsPageGridBlock()->searchAndPreview($filter);
42+
$browser->selectWindow();
43+
44+
$fixtureContent = $cms->getContent();
45+
46+
if (isset($fixtureContent['widget'])) {
47+
foreach ($fixtureContent['widget']['dataset'] as $widget) {
48+
\PHPUnit_Framework_Assert::assertEquals(
49+
$widget['title'],
50+
$frontCmsPage->getCmsPageBlock()->getWidgetTitle($widget['widget_type'], $widget['anchor_text']),
51+
"Widget title wasn't properly saved."
52+
);
53+
}
54+
}
55+
}
56+
57+
/**
58+
* Returns a string representation of the object.
59+
*
60+
* @return string
61+
*/
62+
public function toString()
63+
{
64+
return 'Widget title equals to data from fixture.';
65+
}
66+
}

dev/tests/functional/tests/app/Magento/Cms/Test/Repository/CmsPage/Content.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,17 @@
7474
<item name="template" xsi:type="string">Viewed Products Grid Template</item>
7575
</field>
7676
</dataset>
77+
78+
<dataset name="widget_with_special_characters_in_title">
79+
<field name="widget_1" xsi:type="array">
80+
<item name="widget_type" xsi:type="string">CMS Page Link</item>
81+
<item name="anchor_text" xsi:type="string">CMS Page Link anchor_text_%isolation%</item>
82+
<item name="title" xsi:type="string">glāžšķūņu rūķīši_%isolation%</item>
83+
<item name="template" xsi:type="string">CMS Page Link Block Template</item>
84+
<item name="chosen_option" xsi:type="array">
85+
<item name="filter_url_key" xsi:type="string">home</item>
86+
</item>
87+
</field>
88+
</dataset>
7789
</repository>
7890
</config>

dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/CreateCmsPageEntityTest.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,17 @@
5858
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageInGrid" />
5959
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend" />
6060
</variation>
61+
<variation name="CreateCmsPageEntityTestVariation6" summary="Create page with widget which title contains special characters" ticketId="MAGETWO-64972">
62+
<data name="tag" xsi:type="string">to_maintain:yes</data>
63+
<data name="fixtureType" xsi:type="string">cmsPage</data>
64+
<data name="data/is_active" xsi:type="string">Yes</data>
65+
<data name="data/title" xsi:type="string">NewCmsPage%isolation%</data>
66+
<data name="data/identifier" xsi:type="string">identifier-%isolation%</data>
67+
<data name="data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data>
68+
<data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data>
69+
<data name="data/content/widget/dataset" xsi:type="string">widget_with_special_characters_in_title</data>
70+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" />
71+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsWidgetTitle" />
72+
</variation>
6173
</testCase>
6274
</config>

lib/web/legacy-build.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/web/mage/adminhtml/tools.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,12 @@ var Base64 = {
332332
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
333333
var i = 0;
334334

335+
input = Base64._utf8_encode(input);
336+
335337
if( typeof window.btoa === "function" ){
336338
return window.btoa(input);
337339
}
338340

339-
input = Base64._utf8_encode(input);
340-
341341
while (i < input.length) {
342342

343343
chr1 = input.charCodeAt(i++);
@@ -370,7 +370,7 @@ var Base64 = {
370370
var i = 0;
371371

372372
if( typeof window.atob === "function" ){
373-
return window.atob(input);
373+
return Base64._utf8_decode(window.atob(input));
374374
}
375375

376376
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
@@ -395,8 +395,8 @@ var Base64 = {
395395
output = output + String.fromCharCode(chr3);
396396
}
397397
}
398-
output = Base64._utf8_decode(output);
399-
return output;
398+
399+
return Base64._utf8_decode(output);
400400
},
401401

402402
mageEncode: function(input){

0 commit comments

Comments
 (0)