9 use Magento\Catalog\Test\Page\Product\CatalogProductView;
10 use Magento\Checkout\Test\Page\CheckoutCart;
11 use Magento\Cms\Test\Page\CmsIndex;
12 use Magento\Mtf\Client\BrowserInterface;
13 use Magento\Mtf\Fixture\FixtureFactory;
14 use Magento\Mtf\TestStep\TestStepInterface;
33 private $catalogProductView;
40 private $checkoutCart;
61 private $fixtureFactory;
68 private $loadingSelector =
'.loading-mask';
75 private $isValidationFailed;
87 CatalogProductView $catalogProductView,
90 BrowserInterface $browser,
91 FixtureFactory $fixtureFactory,
93 $isValidationFailed =
false 95 $this->catalogProductView = $catalogProductView;
96 $this->checkoutCart = $checkoutCart;
97 $this->cmsIndex = $cmsIndex;
98 $this->browser = $browser;
99 $this->fixtureFactory = $fixtureFactory;
101 $this->isValidationFailed = $isValidationFailed;
112 $this->checkoutCart->open()->getCartBlock()->clearShoppingCart();
114 foreach ($this->products as
$product) {
115 $this->browser->open($_ENV[
'app_frontend_url'] .
$product->getUrlKey() .
'.html');
116 $this->catalogProductView->getViewBlock()->waitForElementNotVisible($this->loadingSelector);
117 $this->catalogProductView->getViewBlock()->addToCart(
$product);
119 if ($this->isValidationFailed) {
120 $this->catalogProductView->getCustomOptionsBlock()->waitValidationErrorMessage();
122 $this->catalogProductView->getMessagesBlock()->waitSuccessMessage();
125 $cart[
'data'][
'items'] = [
'products' => $this->products];
127 return [
'cart' => $this->fixtureFactory->createByCode(
'cart',
$cart)];
__construct(CatalogProductView $catalogProductView, CheckoutCart $checkoutCart, CmsIndex $cmsIndex, BrowserInterface $browser, FixtureFactory $fixtureFactory, array $products, $isValidationFailed=false)