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)
Exemple #8
0
 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)