Skip to content

Commit 25dc790

Browse files
committed
MAGETWO-56863: [GitHub] Saving CMS page does not create URL rewrite in Magento 2.1.0 with single-store mode #5923
1 parent 60cc301 commit 25dc790

File tree

4 files changed

+100
-1
lines changed

4 files changed

+100
-1
lines changed

dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,5 +212,21 @@
212212
<item name="inherit" xsi:type="string">1</item>
213213
</field>
214214
</dataset>
215+
<dataset name="enable_single_store_mode">
216+
<field name="general/;/enabled" xsi:type="array">
217+
<item name="scope" xsi:type="string">default</item>
218+
<item name="scope_id" xsi:type="number">0</item>
219+
<item name="label" xsi:type="string">Yes</item>
220+
<item name="value" xsi:type="number">1</item>
221+
</field>
222+
</dataset>
223+
<dataset name="enable_single_store_mode_rollback">
224+
<field name="general/single_store_mode/enabled" xsi:type="array">
225+
<item name="scope" xsi:type="string">default</item>
226+
<item name="scope_id" xsi:type="number">0</item>
227+
<item name="label" xsi:type="string">No</item>
228+
<item name="value" xsi:type="number">0</item>
229+
</field>
230+
</dataset>
215231
</repository>
216232
</config>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. 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\Adminhtml\CmsPageNew;
12+
13+
/**
14+
* Assert that displayed CMS page data on edit page equals passed from fixture.
15+
*/
16+
class AssertCmsPageFormSingleStoreMode extends AssertCmsPageForm
17+
{
18+
/**
19+
* Assert that displayed CMS page data on edit page equals passed from fixture with enabled single store mode.
20+
*
21+
* @param CmsPage $cms
22+
* @param CmsPageIndex $cmsIndex
23+
* @param CmsPageNew $cmsPageNew
24+
* @return void
25+
*/
26+
public function processAssert(
27+
CmsPage $cms,
28+
CmsPageIndex $cmsIndex,
29+
CmsPageNew $cmsPageNew
30+
) {
31+
$cmsIndex->open();
32+
$filter = ['title' => $cms->getTitle()];
33+
$cmsIndex->getCmsPageGridBlock()->searchAndOpen($filter);
34+
35+
$cmsFormData = $cmsPageNew->getPageForm()->getData($cms);
36+
$cmsFixtureData = $cms->getData();
37+
$errors = $this->verifyData($cmsFixtureData, $cmsFormData);
38+
\PHPUnit_Framework_Assert::assertEmpty($errors, $errors);
39+
}
40+
}

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

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

77
namespace Magento\Cms\Test\TestCase;
88

9+
use Magento\Config\Test\Fixture\ConfigData;
910
use Magento\Cms\Test\Fixture\CmsPage as CmsPageFixture;
1011
use Magento\Cms\Test\Page\Adminhtml\CmsPageIndex;
1112
use Magento\Cms\Test\Page\Adminhtml\CmsPageNew;
@@ -53,6 +54,13 @@ class CreateCmsPageEntityTest extends Injectable
5354
*/
5455
protected $fixtureFactory;
5556

57+
/**
58+
* Configuration data.
59+
*
60+
* @var string
61+
*/
62+
protected $configData;
63+
5664
/**
5765
* Inject pages.
5866
*
@@ -73,10 +81,18 @@ public function __inject(CmsPageIndex $cmsIndex, CmsPageNew $cmsPageNew, Fixture
7381
*
7482
* @param array $data
7583
* @param string $fixtureType
84+
* @param string $configData
7685
* @return array
7786
*/
78-
public function test(array $data, $fixtureType)
87+
public function test(array $data, $fixtureType, $configData = '')
7988
{
89+
$this->configData = $configData;
90+
91+
// Preconditions
92+
$this->objectManager->create(
93+
\Magento\Config\Test\TestStep\SetupConfigurationStep::class,
94+
['configData' => $configData]
95+
)->run();
8096
// Steps
8197
$cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]);
8298
$this->cmsIndex->open();
@@ -86,4 +102,19 @@ public function test(array $data, $fixtureType)
86102

87103
return ['cms' => $cms];
88104
}
105+
106+
/**
107+
* Disable MAP on Config level.
108+
*
109+
* @return void
110+
*/
111+
public function tearDown()
112+
{
113+
if ($this->configData) {
114+
$this->objectManager->create(
115+
\Magento\Config\Test\TestStep\SetupConfigurationStep::class,
116+
['configData' => 'enable_single_store_mode', 'rollback' => true]
117+
)->run();
118+
}
119+
}
89120
}

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
@@ -67,5 +67,17 @@
6767
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPagePreview" />
6868
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend" />
6969
</variation>
70+
<variation name="CreateCmsPageEntityTestVariation2" summary="Create page for default store view">
71+
<data name="tag" xsi:type="string">severity:S1</data>
72+
<data name="configData" xsi:type="string">enable_single_store_mode</data>
73+
<data name="fixtureType" xsi:type="string">cmsPage</data>
74+
<data name="data/is_active" xsi:type="string">Yes</data>
75+
<data name="data/title" xsi:type="string">NewCmsPage%isolation%</data>
76+
<data name="data/identifier" xsi:type="string">identifier-%isolation%</data>
77+
<data name="data/content/content" xsi:type="string">cms_page_text_content%isolation%</data>
78+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" />
79+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageFormSingleStoreMode" />
80+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend" />
81+
</variation>
7082
</testCase>
7183
</config>

0 commit comments

Comments
 (0)