/** * Assert that created widget displayed on frontent in Catalog. * * @param CmsIndex $cmsIndex * @param CatalogCategoryView $catalogCategoryView * @param Widget $widget * @param AdminCache $adminCache * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogCategoryView $catalogCategoryView, Widget $widget, AdminCache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getActionsBlock()->flushMagentoCache(); $adminCache->getMessagesBlock()->waitSuccessMessage(); $cmsIndex->open(); if (isset($widget->getWidgetInstance()[0]['entities'])) { $categoryName = $widget->getWidgetInstance()[0]['entities']->getName(); } else { $categoryName = $widget->getParameters()['entities']->getCategoyId()[0]; } if ($widget->getCode() == 'CMS Static Block') { $widgetText = $widget->getParameters()['entities'][0]->getContent(); } else { $widgetText = $widget->getParameters()['anchor_text']; } $cmsIndex->getTopmenu()->selectCategoryByName($categoryName); \PHPUnit_Framework_Assert::assertTrue($catalogCategoryView->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget is absent on Category page.'); }
/** * Get widget type based on widget code. * * @param Widget $widget * @return string */ protected function getWidgetType(Widget $widget) { return lcfirst(str_replace(' ', '', ucwords(strtolower($widget->getCode())))); }