Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertWidgetRecentlyComparedProducts.php
Go to the documentation of this file.
1 <?php
8 
11 use Magento\Catalog\Test\Page\Product\CatalogProductCompare;
12 use Magento\Catalog\Test\Page\Product\CatalogProductView;
13 use Magento\Cms\Test\Page\CmsIndex;
15 use Magento\Mtf\Client\BrowserInterface;
16 use Magento\Mtf\Constraint\AbstractConstraint;
17 
21 class AssertWidgetRecentlyComparedProducts extends AbstractConstraint
22 {
28  protected $browser;
29 
36 
43 
49  protected $cmsIndex;
50 
65  public function processAssert(
66  CatalogProductCompare $catalogProductCompare,
67  CmsIndex $cmsIndex,
68  CatalogProductView $catalogProductView,
69  BrowserInterface $browser,
70  Widget $widget,
71  CatalogProductSimple $productSimple1,
72  CatalogProductSimple $productSimple2,
74  ) {
75  // Flush cache
76  $cache->flush();
77 
78  $this->catalogProductCompare = $catalogProductCompare;
79  $this->catalogProductView = $catalogProductView;
80  $this->browser = $browser;
81  $this->cmsIndex = $cmsIndex;
82 
83  $productSimple1->persist();
84  $products[] = $productSimple1;
85  $productSimple2->persist();
86  $products[] = $productSimple2;
87 
88  $cmsIndex->open();
89  $this->addProducts($products);
90  $this->removeCompareProducts();
91 
92  \PHPUnit\Framework\Assert::assertTrue(
93  $this->catalogProductCompare->getWidgetView()->isWidgetVisible($widget, 'Recently Compared'),
94  'Widget is absent on Product Compare page.'
95  );
96  }
97 
104  protected function addProducts(array $products)
105  {
106  foreach ($products as $itemProduct) {
107  $this->browser->open($_ENV['app_frontend_url'] . $itemProduct->getUrlKey() . '.html');
108  $this->catalogProductView->getViewBlock()->clickAddToCompare();
109  $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
110  }
111  }
112 
118  protected function removeCompareProducts()
119  {
120  $this->cmsIndex->open();
121  $this->cmsIndex->getCompareLinkBlock()->waitForCompareProductsLinks();
122  $this->cmsIndex->getLinksBlock()->openLink("Compare Products");
123  $this->catalogProductCompare->getCompareProductsBlock()->removeAllProducts();
124  }
125 
131  public function toString()
132  {
133  return "Widget with type Recently Compared Products is present on Product Compare page";
134  }
135 }
processAssert(CatalogProductCompare $catalogProductCompare, CmsIndex $cmsIndex, CatalogProductView $catalogProductView, BrowserInterface $browser, Widget $widget, CatalogProductSimple $productSimple1, CatalogProductSimple $productSimple2, Cache $cache)