def test_that_checks_the_addition_of_a_review(self, mozwebqa): mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Create new user and login. new_user = home_page.create_new_user() home_page.login(user=new_user) # Search for an app and go to it's details page. search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() add_review_page = AddReview(mozwebqa) review_page = add_review_page.write_a_review(mock_review['rating'], mock_review['body']) review_page.wait_for_ajax_on_page_finish() review_page.wait_for_reviews_visible() # Check review Assert.true(review_page.is_successful_message, "Review not added: %s" % review_page.notification_message) Assert.equal(review_page.notification_message, "Your review was successfully added!") review = review_page.reviews[0] Assert.equal(review.rating, mock_review['rating']) Assert.contains(review.author, new_user['email']) Assert.equal(review.text, mock_review['body'])
def test_that_checks_the_addition_of_a_review(self, mozwebqa): new_user = PersonaTestUser().create_user() mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Create new user and login. settings_page = home_page.header.click_settings() settings_page.login(user=new_user) # Search for an app and go to it's details page. home_page.go_to_homepage() search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() add_review_box = AddReview(mozwebqa) details_page = add_review_box.write_a_review(mock_review['rating'], mock_review['body']) details_page.wait_for_page_to_load() Assert.true(details_page.is_success_message_visible, "Review not added: %s" % details_page.success_message) Assert.equal(details_page.success_message, "Your review was posted") # Go to the reviews page reviews_page = details_page.click_view_reviews() # Check review review = reviews_page.reviews[0] Assert.equal(review.rating, mock_review['rating']) Assert.contains(review.author, new_user['email']) Assert.equal(review.text, mock_review['body'])
def test_that_after_writing_a_review_clicking_back_goes_to_app_page(self, mozwebqa): """Logged out, click "Write a Review" on an app page, sign in, submit a review, click Back, test that the current page is the app page. """ mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Search for an app and go to it's details page. search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() details_page.login_with_user_from_other_pages(user="******") add_review_page = AddReview(mozwebqa) review_page = add_review_page.write_a_review(mock_review['rating'], mock_review['body']) review_page.wait_for_ajax_on_page_finish() review_page.wait_for_reviews_visible() Assert.true(review_page.is_successful_message, "Review not added: %s" % review_page.notification_message) # After clicking back, current page is the app's details page. review_page.header.click_back() Assert.true(details_page.is_product_details_visible) Assert.equal(self.app_name, details_page.title)
def click_write_review(self): write_review_button = self.selenium.find_element( *self._write_review_locator) WebDriverWait( self.selenium, self.timeout).until(lambda s: write_review_button.is_displayed()) self.scroll_to_element(write_review_button) write_review_button.click() from pages.mobile.add_review import AddReview return AddReview(self.testsetup)
def test_that_after_writing_a_review_clicking_back_goes_to_app_page( self, mozwebqa): """Logged out, click "Write a Review" on an app page, sign in, submit a review, click Back, test that the current page is the app page. """ mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Search for an app and go to it's details page. search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() details_page.login_with_user_from_other_pages(user="******") add_review_box = AddReview(mozwebqa) add_review_box.write_a_review(mock_review['rating'], mock_review['body']) Assert.true(details_page.is_success_message_visible, "Review not added: %s" % details_page.success_message) Assert.equal(details_page.success_message, "Your review was posted") # Go to the reviews page and delete the review reviews_page = details_page.click_view_reviews() reviews = reviews_page.reviews[0] reviews.delete() Assert.true(reviews_page.is_success_message_visible, "Review not deleted: %s" % details_page.success_message) # After clicking back, current page is the app's details page. reviews_page.header.click_back() Assert.true(details_page.is_product_details_visible) Assert.equal(self.app_name, details_page.title)
def test_that_checks_the_addition_of_a_review(self, mozwebqa): new_user = PersonaTestUser().create_user() mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Create new user and login. settings_page = home_page.header.click_settings() settings_page.login(user=new_user) # Search for an app and go to it's details page. home_page.go_to_homepage() search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() add_review_box = AddReview(mozwebqa) details_page = add_review_box.write_a_review(mock_review['rating'], mock_review['body']) details_page.wait_for_ajax_on_page_finish() Assert.true(details_page.is_success_message_visible, "Review not added: %s" % details_page.success_message) Assert.equal(details_page.success_message, "Your review was posted") # Go to the reviews page reviews_page = details_page.click_view_reviews() # Check review review = reviews_page.reviews[0] Assert.equal(review.rating, mock_review['rating']) Assert.contains(review.author, new_user['email']) Assert.equal(review.text, mock_review['body'])
def test_that_after_writing_a_review_clicking_back_goes_to_app_page(self, mozwebqa): """Logged out, click "Write a Review" on an app page, sign in, submit a review, click Back, test that the current page is the app page. """ mock_review = MockReview() home_page = Home(mozwebqa) home_page.go_to_homepage() # Search for an app and go to it's details page. search_page = home_page.search_for(self.app_name) details_page = search_page.results[0].click_app() Assert.true(details_page.is_product_details_visible) # Write a review. details_page.click_write_review() details_page.login_with_user_from_other_pages(user="******") add_review_box = AddReview(mozwebqa) add_review_box.write_a_review(mock_review['rating'], mock_review['body']) Assert.true(details_page.is_success_message_visible, "Review not added: %s" % details_page.success_message) Assert.equal(details_page.success_message, "Your review was posted") # Go to the reviews page and delete the review reviews_page = details_page.click_view_reviews() reviews = reviews_page.reviews[0] reviews.delete() Assert.true(reviews_page.is_success_message_visible, "Review not deleted: %s" % details_page.success_message) # After clicking back, current page is the app's details page. reviews_page.header.click_back() Assert.true(details_page.is_product_details_visible) Assert.equal(self.app_name, details_page.title)
def click_write_review(self): self.scroll_to_element(*self._write_review_locator) self.selenium.find_element(*self._write_review_locator).click() from pages.mobile.add_review import AddReview return AddReview(self.testsetup)