/** * 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.'); } }
/** * Add review to product via frontend. * * @return array */ public function run() { $product = $this->review->getDataFieldConfig('entity_id')['source']->getEntity(); $this->browser->open($_ENV['app_frontend_url'] . $product->getUrlKey() . '.html'); if ($this->isFirstReview) { $this->assertProductReviewIsAbsentOnProductPage->processAssert(); } $this->catalogProductView->getViewBlock()->openCustomInformationTab('Reviews'); $this->catalogProductView->getReviewsBlock()->clickAddReviewLink(); $reviewForm = $this->reviewProductList->getReviewFormBlock(); $reviewForm->fill($this->review); $reviewForm->submit(); return ['product' => $product, 'review' => $this->review]; }