/** * Assert that product is not displayed in cross-sell section. * * @param BrowserInterface $browser * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param CheckoutCart $checkoutCart * @param InjectableFixture[]|null $promotedProducts * @return void */ public function processAssert(BrowserInterface $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, CheckoutCart $checkoutCart, array $promotedProducts = null) { if (!$promotedProducts) { $promotedProducts = $product->hasData('cross_sell_products') ? $product->getDataFieldConfig('cross_sell_products')['source']->getProducts() : []; } $checkoutCart->open(); $checkoutCart->getCartBlock()->clearShoppingCart(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); $checkoutCart->open(); foreach ($promotedProducts as $promotedProduct) { \PHPUnit_Framework_Assert::assertFalse($checkoutCart->getCrosssellBlock()->getItemBlock($promotedProduct)->isVisible(), 'Product \'' . $promotedProduct->getName() . '\' is exist in cross-sell section.'); } }
/** * Assert that products are displayed in cross-sell section. * * @param Browser $browser * @param CheckoutCart $checkoutCart * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param InjectableFixture[] $crossSellProducts * @return void */ public function processAssert(Browser $browser, CheckoutCart $checkoutCart, CatalogProductSimple $product, CatalogProductView $catalogProductView, array $crossSellProducts) { $checkoutCart->open()->getCartBlock()->clearShoppingCart(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); $errors = []; $crosssellBlock = $checkoutCart->getCrosssellBlock(); foreach ($crossSellProducts as $crossSellProduct) { if (!$crosssellBlock->getItemBlock($crossSellProduct)->isVisible()) { $errors[] = "Product {$crossSellProduct->getName()} is absent in cross-sell section."; } } \PHPUnit_Framework_Assert::assertEmpty($errors, implode(" ", $errors)); }
/** * Assert that product is displayed in cross-sell section. * * @param BrowserInterface $browser * @param CheckoutCart $checkoutCart * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param InjectableFixture[]|null $promotedProducts * @return void */ public function processAssert(BrowserInterface $browser, CheckoutCart $checkoutCart, CatalogProductSimple $product, CatalogProductView $catalogProductView, array $promotedProducts = null) { $errors = []; if (!$promotedProducts) { $promotedProducts = $product->hasData('cross_sell_products') ? $product->getDataFieldConfig('cross_sell_products')['source']->getProducts() : []; } $checkoutCart->open(); $checkoutCart->getCartBlock()->clearShoppingCart(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); $checkoutCart->open(); foreach ($promotedProducts as $promotedProduct) { if (!$checkoutCart->getCrosssellBlock()->verifyProductCrosssell($promotedProduct)) { $errors[] = 'Product \'' . $promotedProduct->getName() . '\' is absent in cross-sell section.'; } } \PHPUnit_Framework_Assert::assertEmpty($errors, implode(" ", $errors)); }
/** * Assert that product is displayed in cross-sell section for customer segment. * * @param Browser $browser * @param Customer $customer * @param CheckoutCart $checkoutCart * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param CustomerAccountLogout $customerAccountLogout * @param InjectableFixture[] $promotedProducts * @return void */ public function processAssert(Browser $browser, Customer $customer, CheckoutCart $checkoutCart, CatalogProductSimple $product, CatalogProductView $catalogProductView, CustomerAccountLogout $customerAccountLogout, array $promotedProducts) { // Create customer, logout and login to frontend $customer->persist(); $customerAccountLogout->open(); $this->objectManager->create('Mage\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $customer])->run(); // Clear cart $checkoutCart->open(); $checkoutCart->getCartBlock()->clearShoppingCart(); // Check display cross sell products $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); $catalogProductView->getMessagesBlock()->waitSuccessMessage(); $checkoutCart->open(); $errors = []; foreach ($promotedProducts as $promotedProduct) { if (!$checkoutCart->getCrosssellBlock()->getItemBlock($promotedProduct)->isVisible()) { $errors[] = "Product '{$promotedProduct->getName()}' is absent in cross-sell section."; } } \PHPUnit_Framework_Assert::assertEmpty($errors, implode(" ", $errors)); }
/** * Check that crossSell section is absent. * * @param CheckoutCart $checkoutCart * @return void */ protected function assertCrossSellSectionAbsent(CheckoutCart $checkoutCart) { \PHPUnit_Framework_Assert::assertFalse($checkoutCart->getCrosssellBlock()->isVisible()); }