/** * Assert that product is displayed in related products section. * * @param Browser $browser * @param CatalogProductSimple $product * @param InjectableFixture[] $relatedProducts * @param CatalogProductView $catalogProductView * @return void */ public function processAssert(Browser $browser, CatalogProductSimple $product, array $relatedProducts, CatalogProductView $catalogProductView) { $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); foreach ($relatedProducts as $relatedProduct) { \PHPUnit_Framework_Assert::assertTrue($catalogProductView->getRelatedProductBlock()->getItemBlock($relatedProduct)->isVisible(), "Product {$relatedProduct->getName()} is absent in related products."); } }
/** * Assert that gift card usable in frontend. * * @param CatalogProductView $catalogProductView * @param CheckoutCart $checkoutCart * @param CatalogProductSimple $product * @param Browser $browser * @param string $code * @return void */ public function processAssert(CatalogProductView $catalogProductView, CheckoutCart $checkoutCart, CatalogProductSimple $product, Browser $browser, $code) { $this->checkoutCart = $checkoutCart; $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->clickAddToCart(); $checkoutCart->getGiftCardAccountBlock()->addGiftCard($code); $this->assert(); }
/** * Assert that price stored in fixture equals to product price on product page. * * @param CatalogProductSimple $productSimple * @param Browser $browser * @param CatalogProductView $catalogProductView * @return void */ public function processAssert(CatalogProductSimple $productSimple, Browser $browser, CatalogProductView $catalogProductView) { $productSimple->persist(); $browser->open($_ENV['app_frontend_url'] . $productSimple->getUrlKey() . '.html'); $productPriceFromFixture = $productSimple->getPrice(); $productPrice = number_format($catalogProductView->getViewBlock()->getPriceBlock()->getPrice(), 2); \PHPUnit_Framework_Assert::assertEquals($productPrice, $productPriceFromFixture); }
/** * Assert that banner is absent on Shopping Cart page. * * @param Browser $browser * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param Banner $banner * @param CheckoutCart $checkoutCart * @param Cache $adminCache * @return void */ public function processAssert(Browser $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, Banner $banner, CheckoutCart $checkoutCart, Cache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getPageActions()->flushCacheStorage(); $adminCache->getMessagesBlock()->waitSuccessMessage(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); \PHPUnit_Framework_Assert::assertFalse($checkoutCart->getBannerViewBlock()->checkWidgetBanners($banner), 'Banner is present on Shopping Cart page.'); }
/** * Assert that created gift card account can be verified on the frontend in Shopping Cart. * * @param Customer $customer * @param Browser $browser * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param GiftCardAccount $giftCardAccount * @param CheckoutCart $checkoutCart * @param string $code * @return void */ public function processAssert(Customer $customer, Browser $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, GiftCardAccount $giftCardAccount, CheckoutCart $checkoutCart, $code) { $this->objectManager->create('Mage\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $customer])->run(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->clickAddToCart(); $data = $giftCardAccount->getData(); $checkoutCart->getGiftCardAccountBlock()->checkStatusAndBalance($code); $fixtureData = ['code' => $code, 'balance' => $data['balance'], 'date_expires' => $data['date_expires']]; \PHPUnit_Framework_Assert::assertEquals($fixtureData, $checkoutCart->getCheckBlock()->getGiftCardAccountData($fixtureData)); }
/** * Assert that sitemap.xml file contains correct content according to dataset: * - product url * - category url * - CMS page url * * @param CatalogProductSimple $product * @param CatalogCategory $category * @param CmsPage $cmsPage * @param Sitemap $sitemap * @param SitemapIndex $sitemapIndex * @return void */ public function processAssert(CatalogProductSimple $product, CatalogCategory $category, CmsPage $cmsPage, Sitemap $sitemap, SitemapIndex $sitemapIndex) { $sitemapIndex->open()->getSitemapGrid()->sortGridByField('sitemap_id'); $filter = ['sitemap_filename' => $sitemap->getSitemapFilename(), 'sitemap_path' => $sitemap->getSitemapPath()]; $sitemapIndex->getSitemapGrid()->search($filter); $content = file_get_contents($sitemapIndex->getSitemapGrid()->getLinkForGoogle()); $frontendUrl = str_replace('index.php/', '', $_ENV['app_frontend_url']); $urls = [$frontendUrl . $product->getUrlKey() . '.html', $frontendUrl . $category->getUrlKey() . '.html', $frontendUrl . $cmsPage->getIdentifier()]; \PHPUnit_Framework_Assert::assertTrue($this->checkContent($content, $urls), "File '{$sitemap->getSitemapFilename()}' does not contains correct content."); }
/** * Assert that product is not displayed in up-sell section. * * @param BrowserInterface $browser * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param InjectableFixture[]|null $promotedProducts * @return void */ public function processAssert(BrowserInterface $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, array $promotedProducts = null) { if (!$promotedProducts) { $promotedProducts = $product->hasData('up_sell_products') ? $product->getDataFieldConfig('up_sell_products')['source']->getProducts() : []; } $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); foreach ($promotedProducts as $promotedProduct) { \PHPUnit_Framework_Assert::assertFalse($catalogProductView->getUpsellBlock()->isUpsellProductVisible($promotedProduct), 'Product \'' . $promotedProduct->getName() . '\' is exist in up-sells products.'); } }
/** * Assert that product is not displayed in related products section. * * @param BrowserInterface $browser * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param InjectableFixture[]|null $promotedProducts * @return void */ public function processAssert(BrowserInterface $browser, CatalogProductSimple $product, CatalogProductView $catalogProductView, array $promotedProducts = null) { if (!$promotedProducts) { $promotedProducts = $product->hasData('related_products') ? $product->getDataFieldConfig('related_products')['source']->getProducts() : []; } $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); foreach ($promotedProducts as $promotedProduct) { \PHPUnit_Framework_Assert::assertFalse($catalogProductView->getRelatedProductBlock()->getItemBlock($promotedProduct)->isVisible(), "Product {$promotedProduct->getName()} is exist in related products."); } }
/** * Assert that after applying changes, currency symbol changed on Catalog page. * * @param CmsIndex $cmsIndex * @param CatalogCategoryView $catalogCategoryView * @param CatalogProductSimple $product * @param CurrencySymbolEntity $currencySymbol * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogCategoryView $catalogCategoryView, CatalogProductSimple $product, CurrencySymbolEntity $currencySymbol) { $categoryName = $product->getCategoryIds()[0]; $cmsIndex->open(); $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); $cmsIndex->getTopmenu()->selectCategory($categoryName); $price = $catalogCategoryView->getListProductBlock()->getPrice($product->getId()); preg_match('`(.*?)\\d`', $price, $matches); $symbolOnPage = isset($matches[1]) ? $matches[1] : null; \PHPUnit_Framework_Assert::assertEquals($currencySymbol->getCustomCurrencySymbol(), $symbolOnPage, 'Wrong Currency Symbol is displayed on Category page.'); }
/** * Assert that product available by new URL on the frontend. * * @param Browser $browser * @param UrlRewrite $urlRewrite * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param CmsIndex $cmsIndex * @param Cache $cachePage * @return void */ public function processAssert(Browser $browser, UrlRewrite $urlRewrite, CatalogProductSimple $product, CatalogProductView $catalogProductView, CmsIndex $cmsIndex, Cache $cachePage) { $cachePage->open()->getPageActions()->flushCacheStorage(); if ($urlRewrite->hasData('store_id')) { $storePath = explode('/', $urlRewrite->getStoreId()); $cmsIndex->open(); $cmsIndex->getHeaderBlock()->selectStore($storePath[2]); } $browser->open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); \PHPUnit_Framework_Assert::assertEquals($catalogProductView->getViewBlock()->getProductName(), strtoupper($product->getName()), 'URL rewrite product redirect false.'); }
/** * Assert that product rating is displayed on product review page(frontend). * * @param CatalogProductView $catalogProductView * @param ReviewProductList $reviewProductList * @param BrowserInterface $browser * @param CatalogProductSimple $product * @param Review $review * @return void */ public function processAssert(CatalogProductView $catalogProductView, ReviewProductList $reviewProductList, BrowserInterface $browser, CatalogProductSimple $product, Review $review) { $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->openCustomInformationTab('Reviews'); $catalogProductView->getReviewsBlock()->clickAddReviewLink(); $reviewForm = $reviewProductList->getReviewFormBlock(); $ratings = $review->getDataFieldConfig('ratings')['source']->getRatings(); foreach ($ratings as $rating) { \PHPUnit_Framework_Assert::assertTrue($reviewForm->isVisibleRating($rating), 'Product rating "' . $rating->getRatingCode() . '" is not displayed on review product page.'); } }
/** * Assert that banner presents on specific category page. * * @param CatalogProductSimple $product * @param CmsIndex $cmsIndex * @param Banner $banner * @param CatalogCategoryView $catalogCategoryView * @param Customer $customer[optional] * @param Cache $adminCache * @return void */ public function processAssert(CatalogProductSimple $product, CmsIndex $cmsIndex, Banner $banner, CatalogCategoryView $catalogCategoryView, Customer $customer = null, Cache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getPageActions()->flushCacheStorage(); $adminCache->getMessagesBlock()->waitSuccessMessage(); if ($customer !== null) { $this->objectManager->create('Mage\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $customer])->run(); } else { $cmsIndex->open(); } $cmsIndex->getTopmenu()->selectCategory($product->getCategoryIds()[0]); \PHPUnit_Framework_Assert::assertTrue($catalogCategoryView->getBannerViewBlock()->checkWidgetBanners($banner), 'Banner is absent on Category page.'); }
/** * 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 after applying changes, currency symbol changed on Product Details Page. * * @param CatalogProductSimple $product * @param Browser $browser * @param CmsIndex $cmsIndex * @param CatalogProductView $catalogProductView * @param CurrencySymbolEntity $currencySymbol * @param Cache $adminCache * @return void */ public function processAssert(CatalogProductSimple $product, Browser $browser, CmsIndex $cmsIndex, CatalogProductView $catalogProductView, CurrencySymbolEntity $currencySymbol, Cache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getPageActions()->flushCacheStorage(); $adminCache->getMessagesBlock()->waitSuccessMessage(); $cmsIndex->open(); $cmsIndex->getCurrencyBlock()->switchCurrency($currencySymbol); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $price = $catalogProductView->getViewBlock()->getPriceBlock()->getPrice(); preg_match('`(.*?)\\d`', $price, $matches); $symbolOnPage = isset($matches[1]) ? $matches[1] : null; \PHPUnit_Framework_Assert::assertEquals($currencySymbol->getCustomCurrencySymbol(), $symbolOnPage, 'Wrong Currency Symbol is displayed on Product page.'); }
/** * 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 event block is absent on category/product pages. * * @param CmsIndex $cmsIndex * @param CatalogCategoryView $catalogCategoryView * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @param Cache $adminCache * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogCategoryView $catalogCategoryView, CatalogProductSimple $product, CatalogProductView $catalogProductView, Cache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getPageActions()->flushCacheStorage(); $adminCache->getMessagesBlock()->waitSuccessMessage(); $categoryName = $product->getCategoryIds()[0]; $cmsIndex->open(); $cmsIndex->getTopmenu()->selectCategory($categoryName); \PHPUnit_Framework_Assert::assertFalse($catalogCategoryView->getEventBlock()->isVisible(), "Event block is present on Category page."); $cmsIndex->open(); $cmsIndex->getTopmenu()->selectCategory($categoryName); $catalogCategoryView->getListProductBlock()->openProductViewPage($product->getName()); \PHPUnit_Framework_Assert::assertFalse($catalogProductView->getEventBlock()->isVisible(), "Event block is present on Product page."); }
/** * Assert that catalog event is presented in the "Events" grid. * * @param CatalogEvent $catalogEvent * @param CatalogProductSimple $product * @param CatalogEventIndex $catalogEventIndex * @return void */ public function processAssert(CatalogEvent $catalogEvent, CatalogProductSimple $product, CatalogEventIndex $catalogEventIndex) { $categoryName = $product->getDatafieldConfig('category_ids')['source']->getProductCategory()->getName(); $dateStart = strtotime($catalogEvent->getDateStart()); $dateEnd = strtotime($catalogEvent->getDateEnd()); $this->catalogEvent = $catalogEvent->getData(); if (!empty($this->catalogEvent['sort_order'])) { $sortOrder = $this->catalogEvent['sort_order'] < 0 ? 0 : $this->catalogEvent['sort_order']; } else { $sortOrder = ""; } $filter = ['category_name' => $categoryName, 'start_on' => $this->prepareDate($dateStart), 'end_on' => $this->prepareDate($dateEnd), 'status' => $this->getStatus($dateStart, $dateEnd), 'countdown_ticker' => $this->prepareDisplayStateForFilter(), 'sort_order' => $sortOrder]; $catalogEventIndex->getEventGrid()->search(['category_name' => $filter['category_name']]); \PHPUnit_Framework_Assert::assertTrue($catalogEventIndex->getEventGrid()->isRowVisible($filter, false, false), "Event on Category Name {$categoryName} is absent in Events grid by next filter:\n" . print_r($filter, true)); }
/** * Assert that Gift Wrapping can be found during one page checkout on frontend. * * @param CatalogProductView $catalogProductView * @param CheckoutCart $checkoutCart * @param BrowserInterface $browser * @param CheckoutOnepage $checkoutOnepage * @param GiftWrapping $giftWrapping * @param Address $billingAddress * @param CatalogProductSimple $product * @param Customer $customer * @param CustomerAccountLogout $customerAccountLogout * @return void */ public function processAssert(CatalogProductView $catalogProductView, CheckoutCart $checkoutCart, BrowserInterface $browser, CheckoutOnepage $checkoutOnepage, GiftWrapping $giftWrapping, Address $billingAddress, CatalogProductSimple $product, Customer $customer, CustomerAccountLogout $customerAccountLogout) { // Preconditions $customer->persist(); $product->persist(); // Steps $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $catalogProductView->getViewBlock()->addToCart($product); $checkoutCart->open()->getCartBlock()->getProceedToCheckoutBlock()->proceedToCheckout(); $checkoutOnepage->getLoginBlock()->loginCustomer($customer); $checkoutOnepage->getBillingBlock()->fillBilling($billingAddress); $checkoutOnepage->getBillingBlock()->clickContinue(); \PHPUnit_Framework_Assert::assertContains($giftWrapping->getDesign(), $checkoutOnepage->getGiftOptionsBlock()->getGiftWrappingsAvailable(), "Gift Wrapping '{$giftWrapping->getDesign()}' is not present in one page checkout on frontend."); $customerAccountLogout->open(); }
/** * Event block has $this->eventStatus on Product Page. * * @return void */ protected function checkEventStatusOnProductPage() { $categoryName = $this->product->getDatafieldConfig('category_ids')['source']->getProductCategory()->getName(); $this->cmsIndex->open(); $this->cmsIndex->getTopmenu()->selectCategory($categoryName); $this->catalogCategoryView->getListProductBlock()->openProductViewPage($this->product->getName()); \PHPUnit_Framework_Assert::assertEquals($this->eventStatus, $this->catalogProductView->getEventBlock()->getEventStatus(), 'Wrong event status is displayed.'); }
/** * 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 Event block is visible/invisible on page according to fixture(catalog page/product pages). * * @param CmsIndex $cmsIndex * @param CatalogEvent $catalogEvent * @param CatalogCategoryView $catalogCategoryView * @param CatalogProductSimple $product * @param CatalogProductView $catalogProductView * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogEvent $catalogEvent, CatalogCategoryView $catalogCategoryView, CatalogProductSimple $product, CatalogProductView $catalogProductView) { $this->catalogCategoryView = $catalogCategoryView; $this->cmsIndex = $cmsIndex; $this->catalogProductView = $catalogProductView; $this->categoryName = $product->getDatafieldConfig('category_ids')['source']->getProductCategory()->getName(); $this->productName = $product->getName(); $catalogEventData = $catalogEvent->getData(); $this->checkEvent($catalogEventData['display_state']); }
/** * 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)); }
/** * Run delete Catalog Event test. * * @param CatalogProductSimple $product * @return void */ public function test(CatalogProductSimple $product) { //Steps $this->catalogEventIndex->open(); $this->catalogEventIndex->getEventGrid()->searchAndOpen(['category_name' => $product->getCategoryIds()[0]]); $this->catalogEventNew->getPageActions()->deleteAndAcceptAlert(); }
/** * Open product category. * * @param CatalogProductSimple $product * @return void */ protected function openCategory(CatalogProductSimple $product) { $this->cmsIndex->open(); $this->cmsIndex->getTopmenu()->selectCategory($product->getCategoryIds()[0]); }
/** * Default preconditions for target rules tests. * * @param CatalogProductSimple $product * @param CatalogProductSimple $promotedProduct * @param CustomerSegment $customerSegment * @return void */ protected function defaultPreconditions(CatalogProductSimple $product, CatalogProductSimple $promotedProduct, CustomerSegment $customerSegment = null) { $product->persist(); $promotedProduct->persist(); if ($customerSegment) { $customerSegment->persist(); } }
/** * Login to frontend. Create product. Adding product to shopping cart. * * @param CheckoutCart $checkoutCart * @param CatalogProductSimple $product * @param CmsIndex $cmsIndex * @param CustomerAccountLogout $customerAccountLogout * @param CatalogProductView $catalogProductView * @param Customer $customer * @param CustomerSegment $customerSegment * @param CustomerSegmentIndex $customerSegmentIndex * @param BrowserInterface $browser * @param CustomerSegmentNew $customerSegmentNew * @return void */ public function processAssert(CheckoutCart $checkoutCart, CatalogProductSimple $product, CmsIndex $cmsIndex, CustomerAccountLogout $customerAccountLogout, CatalogProductView $catalogProductView, Customer $customer, CustomerSegment $customerSegment, CustomerSegmentIndex $customerSegmentIndex, BrowserInterface $browser, CustomerSegmentNew $customerSegmentNew) { $this->checkoutCart = $checkoutCart; $this->cmsIndex = $cmsIndex; $this->customerAccountLogout = $customerAccountLogout; $this->catalogProductView = $catalogProductView; $this->customer = $customer; $this->customerSegment = $customerSegment; $this->customerSegmentIndex = $customerSegmentIndex; $this->customerSegmentNew = $customerSegmentNew; $this->cmsIndex->open(); $this->objectManager->create('Mage\\Customer\\Test\\TestStep\\LoginCustomerOnFrontendStep', ['customer' => $this->customer])->run(); $product->persist(); $this->checkoutCart->open()->getCartBlock()->clearShoppingCart(); $browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); $this->catalogProductView->getViewBlock()->clickAddToCart(); $this->checkoutCart->getMessagesBlock()->getSuccessMessages(); $this->assert(); $this->customerAccountLogout->open(); }
/** * Get category. * * @param CatalogProductSimple $initialProduct * @param CatalogProductSimple $product * @return CatalogCategory|null */ protected function getCategory(CatalogProductSimple $initialProduct, CatalogProductSimple $product) { return $product->hasData('category_ids') ? $product->getDataFieldConfig('category_ids')['source']->getProductCategory() : ($initialProduct->hasData('category_ids') ? $initialProduct->getDataFieldConfig('category_ids')['source']->getProductCategory() : null); }
/** * Test product prices with tax. * * @param CatalogProductSimple $product * @param string $config * @param string $salesRule * @param string $catalogRule * @return void */ public function test(CatalogProductSimple $product, $config, $salesRule, $catalogRule) { // Steps: if ($salesRule !== "-") { $salesRule = $this->fixtureFactory->createByCode('salesRule', ['dataSet' => $salesRule]); $salesRule->persist(); $this->salesRule = $salesRule; } if ($catalogRule !== "-") { $catalogRule = $this->fixtureFactory->createByCode('catalogRule', ['dataSet' => $catalogRule]); $catalogRule->persist(); $this->catalogRule = $catalogRule; } $this->objectManager->create('Mage\\Core\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $config])->run(); $product->persist(); }
/** * Update shopping cart. * * @param CatalogProductSimple $product * @return void */ protected function updateShoppingCart(CatalogProductSimple $product) { $qty = $product->getCheckoutData()['qty']; $this->checkoutCart->open(); $this->checkoutCart->getCartBlock()->getCartItem($product)->setQty($qty); $this->checkoutCart->getCartBlock()->updateShoppingCart(); }
/** * Generate sitemap test. * * @param Sitemap $sitemap * @param CatalogProductSimple $product * @param CatalogCategory $category * @param CmsPage $cmsPage * @return void */ public function test(Sitemap $sitemap, CatalogProductSimple $product, CatalogCategory $category, CmsPage $cmsPage) { // Preconditions $product->persist(); $category->persist(); $cmsPage->persist(); // Steps $this->sitemapIndex->open(); $this->sitemapIndex->getGridPageActions()->addNew(); $this->sitemapNew->getSitemapForm()->fill($sitemap); $this->sitemapNew->getFormPageActions()->saveAndGenerate(); }