/**
  * Delete Widget Entity test.
  *
  * @param Widget $widget
  * @return void
  */
 public function test(Widget $widget)
 {
     // Precondition
     $widget->persist();
     // Steps
     $filter = ['title' => $widget->getTitle()];
     $this->widgetInstanceIndex->open();
     $this->widgetInstanceIndex->getWidgetGrid()->searchAndOpen($filter);
     $this->widgetInstanceEdit->getPageActionsBlock()->delete();
 }
 /**
  * Assert that created widget is absent on frontend on Home page
  *
  * @param CmsIndex $cmsIndex
  * @param Widget $widget
  * @param AdminCache $adminCache
  * @return void
  */
 public function processAssert(CmsIndex $cmsIndex, Widget $widget, AdminCache $adminCache)
 {
     // Flush cache
     $adminCache->open();
     $adminCache->getActionsBlock()->flushMagentoCache();
     $adminCache->getMessagesBlock()->waitSuccessMessage();
     $cmsIndex->open();
     $widgetText = $widget->getParameters()['anchor_text'];
     \PHPUnit_Framework_Assert::assertFalse($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget is present on Home page.');
 }
 /**
  * Assert that created widget displayed on frontend on Product page.
  *
  * @param CatalogProductView $productView
  * @param BrowserInterface $browser
  * @param Widget $widget
  * @param AdminCache $adminCache
  * @return void
  */
 public function processAssert(CatalogProductView $productView, BrowserInterface $browser, Widget $widget, AdminCache $adminCache)
 {
     // Flush cache
     $adminCache->open();
     $adminCache->getActionsBlock()->flushMagentoCache();
     $adminCache->getMessagesBlock()->waitSuccessMessage();
     $urlKey = $widget->getWidgetInstance()[0]['entities']['url_key'];
     $browser->open($_ENV['app_frontend_url'] . $urlKey . '.html');
     $widgetText = $widget->getParameters()['link_text'];
     \PHPUnit_Framework_Assert::assertTrue($productView->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget is absent on Product page.');
 }
 /**
  * Assert that after click on widget link on frontend system redirects you to Product page defined in widget.
  *
  * @param CmsIndex $cmsIndex
  * @param CatalogProductView $productView
  * @param Widget $widget
  * @param AdminCache $adminCache
  * @return void
  */
 public function processAssert(CmsIndex $cmsIndex, CatalogProductView $productView, Widget $widget, AdminCache $adminCache)
 {
     // Flush cache
     $adminCache->open();
     $adminCache->getActionsBlock()->flushMagentoCache();
     $adminCache->getMessagesBlock()->waitSuccessMessage();
     $cmsIndex->open();
     $cmsIndex->getTopmenu()->selectCategoryByName($widget->getWidgetInstance()[0]['entities']->getName());
     $cmsIndex->getWidgetView()->clickToWidget($widget, $widget->getParameters()['anchor_text']);
     $title = $productView->getTitleBlock()->getTitle();
     \PHPUnit_Framework_Assert::assertEquals($widget->getParameters()['entities'][0]->getName(), $title, 'Wrong product title.');
 }
 /**
  * Assert that created widget displayed on frontend on Home page and on Advanced Search and
  * after click on widget link on frontend system redirects you to catalog page.
  *
  * @param CmsIndex $cmsIndex
  * @param CatalogCategoryView $categoryView
  * @param Widget $widget
  * @param AdminCache $adminCache
  * @return void
  */
 public function processAssert(CmsIndex $cmsIndex, CatalogCategoryView $categoryView, Widget $widget, AdminCache $adminCache)
 {
     // Flush cache
     $adminCache->open();
     $adminCache->getActionsBlock()->flushMagentoCache();
     $adminCache->getMessagesBlock()->waitSuccessMessage();
     $cmsIndex->open();
     $widgetText = $widget->getParameters()['anchor_text'];
     \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type catalog category link is absent on Home page.');
     $cmsIndex->getWidgetView()->clickToWidget($widget, $widgetText);
     $title = $categoryView->getTitleBlock()->getTitle();
     \PHPUnit_Framework_Assert::assertEquals($widget->getParameters()['entities'][0]->getName(), $title, 'Wrong category title.');
     $cmsIndex->getFooterBlock()->openAdvancedSearch();
     \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type catalog category link is absent on Advanced Search page.');
 }
 /**
  * Assert that created widget displayed on frontent on Home page and on Advanced Search and
  * after click on widget link on frontend system redirects you to cms page.
  *
  * @param CmsIndex $cmsIndex
  * @param Widget $widget
  * @param AdminCache $adminCache
  * @return void
  */
 public function processAssert(CmsIndex $cmsIndex, Widget $widget, AdminCache $adminCache)
 {
     // Flush cache
     $adminCache->open();
     $adminCache->getActionsBlock()->flushMagentoCache();
     $adminCache->getMessagesBlock()->waitSuccessMessage();
     $cmsIndex->open();
     $widgetText = $widget->getParameters()['anchor_text'];
     \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type CmsPageLink is absent on Home page.');
     $title = isset($widget->getParameters()['node']) ? $widget->getParameters()['entities'][0]->getLabel() : $widget->getParameters()['entities'][0]->getContentHeading();
     $cmsIndex->getWidgetView()->clickToWidget($widget, $widgetText);
     $pageTitle = $cmsIndex->getCmsPageBlock()->getPageTitle();
     \PHPUnit_Framework_Assert::assertEquals($title, $pageTitle, 'Wrong page title on Cms page.');
     $cmsIndex->getFooterBlock()->openAdvancedSearch();
     \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type CmsPageLink is absent on Advanced Search page.');
 }
 /**
  * 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()))));
 }
 /**
  * Assert widget availability in widget grid
  *
  * @param Widget $widget
  * @param WidgetInstanceIndex $widgetInstanceIndex
  * @return void
  */
 public function processAssert(Widget $widget, WidgetInstanceIndex $widgetInstanceIndex)
 {
     $filter = ['title' => $widget->getTitle()];
     $widgetInstanceIndex->open();
     \PHPUnit_Framework_Assert::assertTrue($widgetInstanceIndex->getWidgetGrid()->isRowVisible($filter), 'Widget with title \'' . $widget->getTitle() . '\' is absent in Widget grid.');
 }