/** * 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)); }
/** * Validation page displaying the search data * * @param array $searchResult * @param CatalogProductSimple $productSearch * @return array */ protected function checkSearchData(array $searchResult, CatalogProductSimple $productSearch) { $searchBlock = $this->resultPage->getSearchResultBlock(); $errors = []; $textMessage = self::NOTICE_MESSAGE; if (empty($searchResult)) { $textMessage = self::ERROR_MESSAGE; } if (!$searchBlock->isVisibleMessages($textMessage)) { $errors[] = '- message does not match the search script'; } $searchData = $searchBlock->getSearchSummaryItems(); $productData = $this->prepareFixtureData($productSearch); foreach ($productData as $key => $data) { if ($key === 'tax_class' && $data === ['All']) { continue; } if (!isset($searchData[$key])) { $errors[] = '- "' . $key . '" not found on the page'; } elseif ($searchData[$key] !== $data) { $errors[] = '- "' . $key . '" value does not match the page'; } } return $errors; }
/** * Assert that Advanced Search without results. * * @param AdvancedResult $resultPage * @return void */ public function processAssert(AdvancedResult $resultPage) { \PHPUnit_Framework_Assert::assertTrue($resultPage->getSearchResultBlock()->isVisibleMessages(self::ERROR_MESSAGE), "The error message '" . self::ERROR_MESSAGE . "' is not visible."); }