/** * Assert that result page contains product, according to search request from fixture. * * @param CatalogSearchQuery $catalogSearch * @param AdvancedResult $resultPage * @return void */ public function processAssert(CatalogSearchQuery $catalogSearch, AdvancedResult $resultPage) { $product = $catalogSearch->getDataFieldConfig('query_text')['source']->getProduct(); $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) { $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); } \PHPUnit_Framework_Assert::assertTrue($isProductVisible, "A product with name '" . $product->getName() . "' was not found."); }
/** * Assert product can be opened from search results page. * * @param CatalogSearchQuery $catalogSearch * @param AdvancedResult $resultPage * @param CatalogProductView $catalogProductViewPage * @return void */ public function processAssert(CatalogSearchQuery $catalogSearch, AdvancedResult $resultPage, CatalogProductView $catalogProductViewPage) { $product = $catalogSearch->getDataFieldConfig('query_text')['source']->getProduct(); $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) { $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); } $productName = $product->getName(); \PHPUnit_Framework_Assert::assertTrue($isProductVisible, "A product with name {$productName} was not found."); $resultPage->getListProductBlock()->getProductItem($product)->open(); \PHPUnit_Framework_Assert::assertEquals($productName, $catalogProductViewPage->getViewBlock()->getProductName(), 'Wrong product page has been opened.'); }
/** * Assert that result page contains all products, according to search request, from fixture * * @param array $products * @param AdvancedResult $resultPage * @return void */ public function processAssert(array $products, AdvancedResult $resultPage) { $errors = []; foreach ($products as $product) { $name = $product->getName(); $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name); while (!$isProductVisible && $resultPage->getToolbar()->nextPage()) { $isProductVisible = $resultPage->getListProductBlock()->isProductVisible($name); } if ($isProductVisible === false) { $errors[] = '- ' . $name; } } \PHPUnit_Framework_Assert::assertTrue(empty($errors), 'Were not found the following products:' . implode("\n", $errors)); }
/** * Assert that Advanced Search result page contains only product(s) according to requested from fixture * * @param array $products * @param AdvancedResult $resultPage * @param array $productsSearch * @param CatalogProductSimple $productSearch * @return void */ public function processAssert(array $products, AdvancedResult $resultPage, array $productsSearch, CatalogProductSimple $productSearch) { $this->resultPage = $resultPage; $searchResult = []; foreach ($products as $key => $value) { if ($value === 'Yes') { /** @var CatalogProductSimple $productsSearch [$key] */ $searchResult[$productsSearch[$key]->getSku()] = $productsSearch[$key]; } } $errors = $this->checkSearchData($searchResult, $productSearch); foreach ($searchResult as $sku => $product) { /** @var CatalogProductSimple $product */ $name = $product->getName(); $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); while (!$isProductVisible && $resultPage->getBottomToolbar()->nextPage()) { $isProductVisible = $resultPage->getListProductBlock()->getProductItem($product)->isVisible(); } if (!$isProductVisible) { $errors[] = '- failed to find the product (SKU - "' . $sku . '", name - "' . $name . '") according to the search parameters'; } } \PHPUnit_Framework_Assert::assertTrue(empty($errors), "The following errors occurred:\n" . implode("\n", $errors)); }