Example #1
0
 /**
  * Assert product data on category and product pages
  *
  * @param Product $product
  * @return void
  */
 protected function assertOnCategory($product)
 {
     //Pages
     $frontendHomePage = Factory::getPageFactory()->getCmsIndexIndex();
     $categoryPage = Factory::getPageFactory()->getCatalogCategoryView();
     $productPage = Factory::getPageFactory()->getCatalogProductView();
     //Steps
     $frontendHomePage->open();
     $frontendHomePage->getTopmenu()->selectCategoryByName($product->getCategoryName());
     //Verification on category product list
     $productListBlock = $categoryPage->getListProductBlock();
     $this->assertTrue($productListBlock->isProductVisible($product->getName()));
     $productListBlock->openProductViewPage($product->getName());
     //Verification on product detail page
     $productViewBlock = $productPage->getViewBlock();
     $this->assertEquals($product->getName(), $productViewBlock->getProductName());
     $price = $productViewBlock->getPriceBlock()->getPrice();
     $this->assertEquals(number_format($product->getProductPrice(), 2), $price);
     $productOptionsBlock = $productPage->getViewBlock()->getCustomOptionsBlock();
     $fixture = $product->getData('fields/custom_options/value');
     $actualOptions = $productOptionsBlock->getOptions($product);
     $this->assertCount(count($fixture), $actualOptions);
     $this->assertTrue(isset($actualOptions['custom_options'][$fixture[0]['title']]['options'][0]['title']));
     $this->assertEquals($fixture[0]['title'], $actualOptions['custom_options'][$fixture[0]['title']]['title']);
 }
 /**
  * Assert absence product on category page (frontend)
  *
  * @param Product $product
  * @return void
  */
 protected function assertAbsenceOnCategory(Product $product)
 {
     //Pages
     $frontendHomePage = Factory::getPageFactory()->getCmsIndexIndex();
     $categoryPage = Factory::getPageFactory()->getCatalogCategoryView();
     //Steps
     $frontendHomePage->open();
     $frontendHomePage->getTopmenu()->selectCategoryByName($product->getCategoryName());
     //Verification on category product list
     $productListBlock = $categoryPage->getListProductBlock();
     $this->assertFalse($productListBlock->isProductVisible($product->getName()));
 }
Example #3
0
 /**
  * Retrieve category name to which the product is assigned
  *
  * @return string
  */
 public function getCategoryName()
 {
     return $this->product->getCategoryName();
 }