Skip to content

Commit 9c60400

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-58354-block-cache-exploit' into pr
2 parents 5d6fb08 + fc2d4f7 commit 9c60400

File tree

4 files changed

+136
-9
lines changed

4 files changed

+136
-9
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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\CmsPage as FrontCmsPage;
11+
use Magento\Mtf\Client\BrowserInterface;
12+
use Magento\Mtf\Constraint\AbstractConstraint;
13+
14+
/**
15+
* Assert that created CMS page with expected contents displayed on Frontend.
16+
*/
17+
class AssertCmsPageOnFrontend extends AbstractConstraint
18+
{
19+
/**
20+
* Assert that created CMS page with expected contents displayed on Frontend.
21+
*
22+
* @param CmsPage $cms
23+
* @param FrontCmsPage $frontCmsPage,
24+
* @param BrowserInterface $browser
25+
* @param string $displayContent
26+
* @return void
27+
*/
28+
public function processAssert(
29+
CmsPage $cms,
30+
FrontCmsPage $frontCmsPage,
31+
BrowserInterface $browser,
32+
$displayContent = null
33+
) {
34+
$browser->open($_ENV['app_frontend_url'] . $cms->getIdentifier());
35+
$fixtureContent = $cms->getContent();
36+
\PHPUnit_Framework_Assert::assertContains(
37+
$displayContent != null ? $displayContent : $fixtureContent['content'],
38+
$frontCmsPage->getCmsPageBlock()->getPageContent(),
39+
'Wrong content is displayed.'
40+
);
41+
}
42+
43+
/**
44+
* CMS Page content equals to data from fixture.
45+
*
46+
* @return string
47+
*/
48+
public function toString()
49+
{
50+
return 'CMS Page content equals to data from fixture.';
51+
}
52+
}

dev/tests/functional/tests/app/Magento/Cms/Test/Constraint/AssertCmsPagePreview.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@ class AssertCmsPagePreview extends AbstractConstraint
3030
* @param FrontCmsPage $frontCmsPage
3131
* @param CmsPage $cms
3232
* @param BrowserInterface $browser
33+
* @param string $displayContent
3334
* @return void
3435
*/
3536
public function processAssert(
3637
CmsPageIndex $cmsIndex,
3738
FrontCmsIndex $frontCmsIndex,
3839
FrontCmsPage $frontCmsPage,
3940
CmsPage $cms,
40-
BrowserInterface $browser
41+
BrowserInterface $browser,
42+
$displayContent = null
4143
) {
4244
$cmsIndex->open();
4345
$filter = ['title' => $cms->getTitle()];
@@ -46,7 +48,7 @@ public function processAssert(
4648

4749
$fixtureContent = $cms->getContent();
4850
\PHPUnit_Framework_Assert::assertContains(
49-
$fixtureContent['content'],
51+
$displayContent != null ? $displayContent : $fixtureContent['content'],
5052
$frontCmsPage->getCmsPageBlock()->getPageContent(),
5153
'Wrong content is displayed.'
5254
);

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,18 @@
5454
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" />
5555
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend" />
5656
</variation>
57+
<variation name="CreateCmsPageEntityTestVariation5" summary="Block Cache Exploit" ticketId="MAGETWO-48017">
58+
<data name="tag" xsi:type="string">severity:S2</data>
59+
<data name="fixtureType" xsi:type="string">cmsPage</data>
60+
<data name="data/title" xsi:type="string">NewCmsPage%isolation%</data>
61+
<data name="data/identifier" xsi:type="string">identifier-%isolation%</data>
62+
<data name="data/store_id" xsi:type="string">Main Website/Main Website Store/Default Store View</data>
63+
<data name="data/is_active" xsi:type="string">Yes</data>
64+
<data name="data/content/content" xsi:type="string">\\{{block class=&apos;Magento\Framework\View\Element\Text&apos; text=&apos;bla bla bla&apos; cache_key=&apos;BACKEND_ACL_RESOURCES&apos; cache_lifetime=999\}}</data>
65+
<data name="displayContent" xsi:type="string">bla bla bla</data>
66+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage" />
67+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPagePreview" />
68+
<constraint name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend" />
69+
</variation>
5770
</testCase>
5871
</config>

dev/tests/functional/tests/app/Magento/Cms/Test/etc/di.xml

Lines changed: 67 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,84 @@
66
*/
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
9-
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage">
9+
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockDeleteMessage">
1010
<arguments>
11-
<argument name="severity" xsi:type="string">high</argument>
11+
<argument name="severity" xsi:type="string">S1</argument>
1212
</arguments>
1313
</type>
14-
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage">
14+
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockInGrid">
15+
<arguments>
16+
<argument name="severity" xsi:type="string">S2</argument>
17+
</arguments>
18+
</type>
19+
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockNotInGrid">
1520
<arguments>
16-
<argument name="severity" xsi:type="string">high</argument>
21+
<argument name="severity" xsi:type="string">S3</argument>
1722
</arguments>
1823
</type>
1924
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockNotOnCategoryPage">
2025
<arguments>
21-
<argument name="severity" xsi:type="string">high</argument>
26+
<argument name="severity" xsi:type="string">S3</argument>
2227
</arguments>
2328
</type>
24-
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockDeleteMessage">
29+
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockOnCategoryPage">
30+
<arguments>
31+
<argument name="severity" xsi:type="string">S1</argument>
32+
</arguments>
33+
</type>
34+
<type name="Magento\Cms\Test\Constraint\AssertCmsBlockSuccessSaveMessage">
35+
<arguments>
36+
<argument name="severity" xsi:type="string">S1</argument>
37+
</arguments>
38+
</type>
39+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageDeleteMessage">
40+
<arguments>
41+
<argument name="severity" xsi:type="string">S1</argument>
42+
</arguments>
43+
</type>
44+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageDisabledOnFrontend">
45+
<arguments>
46+
<argument name="severity" xsi:type="string">S2</argument>
47+
</arguments>
48+
</type>
49+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageDuplicateErrorMessage">
50+
<arguments>
51+
<argument name="severity" xsi:type="string">S1</argument>
52+
</arguments>
53+
</type>
54+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageForm">
55+
<arguments>
56+
<argument name="severity" xsi:type="string">S2</argument>
57+
</arguments>
58+
</type>
59+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageInGrid">
60+
<arguments>
61+
<argument name="severity" xsi:type="string">S2</argument>
62+
</arguments>
63+
</type>
64+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageNotInGrid">
65+
<arguments>
66+
<argument name="severity" xsi:type="string">S3</argument>
67+
</arguments>
68+
</type>
69+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageOnFrontend">
70+
<arguments>
71+
<argument name="severity" xsi:type="string">S1</argument>
72+
</arguments>
73+
</type>
74+
<type name="Magento\Cms\Test\Constraint\AssertCmsPagePreview">
75+
<arguments>
76+
<argument name="severity" xsi:type="string">S1</argument>
77+
</arguments>
78+
</type>
79+
<type name="Magento\Cms\Test\Constraint\AssertCmsPageSuccessSaveMessage">
80+
<arguments>
81+
<argument name="severity" xsi:type="string">S1</argument>
82+
</arguments>
83+
</type>
84+
<type name="Magento\Cms\Test\Constraint\AssertUrlRewriteCmsPageRedirect">
2585
<arguments>
26-
<argument name="severity" xsi:type="string">high</argument>
86+
<argument name="severity" xsi:type="string">S1</argument>
2787
</arguments>
2888
</type>
2989
</config>

0 commit comments

Comments
 (0)