/** * Assert that product rating is displayed on product review(backend) * * @param ReviewIndex $reviewIndex * @param ReviewEdit $reviewEdit * @param ReviewInjectable $review * @param ReviewInjectable|null $reviewInitial [optional] * @return void */ public function processAssert(ReviewIndex $reviewIndex, ReviewEdit $reviewEdit, ReviewInjectable $review, ReviewInjectable $reviewInitial = null) { $filter = ['title' => $review->getTitle()]; $reviewIndex->open(); $reviewIndex->getReviewGrid()->searchAndOpen($filter); $ratingReview = array_replace($reviewInitial && $reviewInitial->hasData('ratings') ? $reviewInitial->getRatings() : [], $review->hasData('ratings') ? $review->getRatings() : []); $ratingReview = $this->sortDataByPath($ratingReview, '::title'); $ratingForm = $reviewEdit->getReviewForm()->getData(); $ratingForm = $this->sortDataByPath($ratingForm['ratings'], '::title'); $error = $this->verifyData($ratingReview, $ratingForm); \PHPUnit_Framework_Assert::assertTrue(empty($error), $error); }
/** * Assert that review is displayed in grid * * @param ReviewIndex $reviewIndex * @param ReviewInjectable $review * @return void */ public function processAssert(ReviewIndex $reviewIndex, ReviewInjectable $review) { $filter = ['title' => $review->getTitle()]; $reviewIndex->open(); \PHPUnit_Framework_Assert::assertTrue($reviewIndex->getReviewGrid()->isRowVisible($filter), 'Review with ' . 'title "' . $filter['title'] . '"' . 'is absent in Review grid.'); }
/** * Apply for MassActions ProductReviewEntity * * @param string $gridActions * @param string $gridStatus * @return void */ public function test($gridActions, $gridStatus) { // Steps $this->reviewIndex->open(); $this->reviewIndex->getReviewGrid()->massaction([['title' => $this->review->getTitle()]], [$gridActions => $gridStatus], $gridActions == 'Delete' ? true : false); }
/** * Update product review on product page * * @param ReviewInjectable $review * @param int $rating * @return array */ public function test(ReviewInjectable $review, $rating) { // Steps $review = $this->createReview($review, $rating); $this->catalogProductIndex->open(); /** @var CatalogProductSimple $product */ $product = $this->reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity(); $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $this->catalogProductEdit->getForm()->openTab('product_reviews'); $filter = ['title' => $this->reviewInitial->getTitle(), 'sku' => $product->getSku()]; $this->catalogProductEdit->getForm()->getTabElement('product_reviews')->getReviewsGrid()->searchAndOpen($filter); $this->reviewEdit->getReviewForm()->fill($review); $this->reviewEdit->getPageActions()->save(); $productRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0]; return ['product' => $product, 'productRating' => $productRating]; }