Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertCustomVariableInPage.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Cms\Test\Page\CmsIndex;
10 use Magento\Variable\Test\Fixture\SystemVariable;
12 use Magento\Mtf\Client\BrowserInterface;
13 use Magento\Mtf\Constraint\AbstractConstraint;
14 use Magento\Mtf\Fixture\FixtureFactory;
15 
19 class AssertCustomVariableInPage extends AbstractConstraint
20 {
34  public function processAssert(
35  SystemVariable $customVariable,
36  CmsIndex $cmsIndex,
37  SystemVariable $variable,
38  FixtureFactory $fixtureFactory,
39  BrowserInterface $browser,
40  Store $storeOrigin = null,
41  SystemVariable $customVariableOrigin = null
42  ) {
43  $cmsPage = $fixtureFactory->createByCode(
44  'cmsPage',
45  [
46  'dataset' => 'default',
47  'data' => [
48  'content' => [
49  'content' => '{{customVar code=' . $customVariable->getCode() . '}}',
50  ],
51  ],
52  ]
53  );
54  $cmsPage->persist();
55  $browser->open($_ENV['app_frontend_url'] . $cmsPage->getIdentifier());
56 
57  $cmsIndex->getStoreSwitcherBlock()->selectStoreView('Default Store View');
58 
59  $htmlValue = $customVariableOrigin
60  ? $this->getHtmlValue($customVariable, $customVariableOrigin)
61  : strip_tags($customVariable->getHtmlValue());
62  $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent();
63  $this->checkVariable($htmlValue, $pageContent);
64 
65  if ($storeOrigin !== null) {
66  $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeOrigin->getName());
67  $htmlValue = strip_tags($customVariable->getHtmlValue());
68  if ($htmlValue === '') {
69  $htmlValue = strip_tags($variable->getHtmlValue());
70  }
71  $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent();
72  $this->checkVariable($htmlValue, $pageContent);
73  }
74  }
75 
83  protected function getHtmlValue(SystemVariable $customVariable, SystemVariable $customVariableOrigin)
84  {
85  $data = array_merge($customVariableOrigin->getData(), $customVariable->getData());
86  if ($customVariable->getHtmlValue() == "" && $customVariableOrigin->getHtmlValue() == "") {
87  $htmlValue = ($data['plain_value'] == "")
88  ? $customVariableOrigin->getPlainValue()
89  : $data['plain_value'];
90  } else {
91  $htmlValue = ($customVariableOrigin == null)
92  ? $customVariable->getHtmlValue()
93  : $customVariableOrigin->getHtmlValue();
94  $htmlValue = strip_tags($htmlValue);
95  }
96  return $htmlValue;
97  }
98 
106  protected function checkVariable($htmlValue, $pageContent)
107  {
108  \PHPUnit\Framework\Assert::assertEquals(
109  $htmlValue,
110  $pageContent,
111  'Wrong content is displayed on frontend page'
112  . "\nExpected: " . $htmlValue
113  . "\nActual: " . $pageContent
114  );
115  }
116 
122  public function toString()
123  {
124  return 'Custom Variable is displayed on frontend page';
125  }
126 }
getHtmlValue(SystemVariable $customVariable, SystemVariable $customVariableOrigin)
processAssert(SystemVariable $customVariable, CmsIndex $cmsIndex, SystemVariable $variable, FixtureFactory $fixtureFactory, BrowserInterface $browser, Store $storeOrigin=null, SystemVariable $customVariableOrigin=null)
$variable
Definition: variable.php:7