10 use Magento\Catalog\Test\Page\Product\CatalogProductView;
11 use Magento\Checkout\Test\Page\CheckoutCart;
12 use Magento\Mtf\Client\BrowserInterface;
13 use Magento\Mtf\Constraint\AbstractConstraint;
14 use Magento\Mtf\Fixture\FixtureInterface;
32 BrowserInterface $browser,
35 CatalogProductView $catalogProductView,
36 array $promotedProducts =
null 39 if (!$promotedProducts) {
40 $promotedProducts =
$product->hasData(
'cross_sell_products')
41 ?
$product->getDataFieldConfig(
'cross_sell_products')[
'source']->getProducts()
45 $checkoutCart->open();
46 $checkoutCart->getCartBlock()->clearShoppingCart();
48 $browser->open($_ENV[
'app_frontend_url'] .
$product->getUrlKey() .
'.html');
49 $catalogProductView->getViewBlock()->addToCart(
$product);
50 $catalogProductView->getMessagesBlock()->waitSuccessMessage();
51 $checkoutCart->open();
52 foreach ($promotedProducts as $promotedProduct) {
53 if (!$checkoutCart->getCrosssellBlock()->getProductItem($promotedProduct)->isVisible()) {
54 $errors[] =
'Product \'' . $promotedProduct->getName()
55 .
'\' is absent in cross-sell section of a product \
'' .
$product->getName() .
'\'.
'; 59 \PHPUnit\Framework\Assert::assertEmpty($errors, implode(" ", $errors)); 67 public function toString() 69 return 'Product is displayed in cross-sell section.
'; processAssert(BrowserInterface $browser, CheckoutCart $checkoutCart, CatalogProductSimple $product, CatalogProductView $catalogProductView, array $promotedProducts=null)