Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertProductView.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Catalog\Test\Page\Product\CatalogProductView;
11 use Magento\Mtf\Client\BrowserInterface;
12 use Magento\Mtf\Constraint\AbstractConstraint;
13 
17 class AssertProductView extends AbstractConstraint
18 {
25  public function processAssert(
26  CatalogProductView $catalogProductView,
27  BrowserInterface $browser,
28  CatalogProductSimple $product
29  ) {
30  //Open product view page
31  $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html');
32 
33  //Process assertions
34  $this->assertOnProductView($product, $catalogProductView);
35  }
36 
44  protected function assertOnProductView(CatalogProductSimple $product, CatalogProductView $catalogProductView)
45  {
46  $viewBlock = $catalogProductView->getViewBlock();
47  $price = $viewBlock->getPriceBlock()->getPrice();
48  $name = $viewBlock->getProductName();
49  $sku = $viewBlock->getProductSku();
50 
51  \PHPUnit\Framework\Assert::assertEquals(
52  $product->getName(),
53  $name,
54  'Product name on product view page is not correct.'
55  );
56  \PHPUnit\Framework\Assert::assertEquals(
57  $product->getSku(),
58  $sku,
59  'Product sku on product view page is not correct.'
60  );
61 
62  if (isset($price['price_regular_price'])) {
63  \PHPUnit\Framework\Assert::assertEquals(
64  number_format($product->getPrice(), 2),
65  $price['price_regular_price'],
66  'Product regular price on product view page is not correct.'
67  );
68  }
69 
70  $priceComparing = false;
71  if ($specialPrice = $product->getSpecialPrice()) {
72  $priceComparing = $specialPrice;
73  }
74 
75  if ($priceComparing && isset($price['price_special_price'])) {
76  \PHPUnit\Framework\Assert::assertEquals(
77  number_format($priceComparing, 2),
78  $price['price_special_price'],
79  'Product special price on product view page is not correct.'
80  );
81  }
82  }
83 
89  public function toString()
90  {
91  return 'Product data on product view page is not correct.';
92  }
93 }
$price
assertOnProductView(CatalogProductSimple $product, CatalogProductView $catalogProductView)
processAssert(CatalogProductView $catalogProductView, BrowserInterface $browser, CatalogProductSimple $product)
if(!isset($_GET['name'])) $name
Definition: log.php:14