/** * Add created variable to page and assert that Custom Variable is displayed on frontend page and has * correct data according to dataset. * * @param SystemVariable $customVariable * @param CmsIndex $cmsIndex * @param SystemVariable $variable * @param FixtureFactory $fixtureFactory * @param Browser $browser * @param Store $storeOrigin * @param SystemVariable $customVariableOrigin * @return void */ public function processAssert(SystemVariable $customVariable, CmsIndex $cmsIndex, SystemVariable $variable, FixtureFactory $fixtureFactory, Browser $browser, Store $storeOrigin = null, SystemVariable $customVariableOrigin = null) { $cmsPage = $fixtureFactory->createByCode('cmsPage', ['dataSet' => 'default', 'data' => ['content' => '{{customVar code=' . $customVariable->getCode() . '}}']]); $cmsPage->persist(); $url = $_ENV['app_frontend_url'] . $cmsPage->getIdentifier(); $browser->open($url); $cmsIndex->getStoreSwitcherBlock()->selectStoreView('Default Store View'); $htmlValue = $customVariableOrigin !== null ? $this->getHtmlValue($customVariable, $customVariableOrigin) : strip_tags($customVariable->getHtmlValue()); $pageContent = $cmsIndex->getMainContentBlock()->getPageContent(); $this->checkVariable($htmlValue, $pageContent); if ($storeOrigin !== null) { $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeOrigin->getName()); $htmlValue = strip_tags($customVariable->getHtmlValue()); if ($htmlValue === '') { $htmlValue = strip_tags($variable->getHtmlValue()); } $pageContent = $cmsIndex->getMainContentBlock()->getPageContent(); $this->checkVariable($htmlValue, $pageContent); } }