def test_reviews_section(self, mozwebqa):
        """https://moztrap.mozilla.org/runtests/run/243/env/112/ - Verify details page for an app - Reviews section"""

        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        # click first app and load its Details Page
        details_page = home_page.go_to_first_free_app_page()

        # This takes the number of reviews on the details page and based on that number it treats 3 different scenarios:
        # when the app has reviews, when it has 1 review and when the app isn't rated.
        if details_page.is_app_rated:
            reviews_count = details_page.reviews_count
            reviews = details_page.reviews
            if reviews_count >= 2:
                if len(reviews) == 2:
                    for review in reviews:
                        Assert.true(review.is_visible)
            elif reviews_count == 1:
                Assert.true(reviews[0].is_visible)
        else:
            Assert.equal(details_page.app_not_rated_text, 'App not yet rated')

        Assert.true(details_page.is_write_a_review_button_visible)

        for support_button in details_page.support_buttons_list:
            Assert.true(details_page.is_element_visible(*support_button))
    def test_that_after_writing_a_review_clicking_back_goes_to_app_page(
            self, mozwebqa, new_user):
        """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()

        details_page = home_page.go_to_first_free_app_page()
        assert details_page.is_product_details_visible
        app_name = details_page.title

        # Write a review.
        review_box = details_page.click_write_review()
        details_page.login(new_user['email'], new_user['password'])

        review_box.write_a_review(mock_review['rating'], mock_review['body'])

        assert 'Your review was successfully posted. Thanks!' == details_page.notification_message
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()
        reviews_page.header.click_back()
        assert details_page.is_product_details_visible
        assert app_name == details_page.title
示例#3
0
    def test_that_checks_the_addition_of_a_review(self, mozwebqa, new_user):
        mock_review = MockReview()
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()
        home_page.nav_menu.click_sign_in()
        home_page.login(new_user['email'], new_user['password'])

        details_page = home_page.go_to_first_free_app_page()
        Assert.true(details_page.is_product_details_visible)

        # Write a review
        review_box = details_page.click_write_review()
        review_box.write_a_review(mock_review['rating'], mock_review['body'])

        Assert.equal(details_page.notification_message, "Your review was successfully posted. Thanks!")
        details_page.wait_notification_box_not_visible()

        # 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.contains(review.text, mock_review['body'])
    def test_that_after_writing_a_review_clicking_back_goes_to_app_page(self, mozwebqa, new_user):
        """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()

        details_page = home_page.go_to_first_free_app_page()
        assert details_page.is_product_details_visible
        app_name = details_page.title

        # Write a review.
        review_box = details_page.click_write_review()
        details_page.login(new_user["email"], new_user["password"])

        review_box.write_a_review(mock_review["rating"], mock_review["body"])

        assert "Your review was successfully posted. Thanks!" == details_page.notification_message
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()
        reviews_page.header.click_back()
        assert details_page.is_product_details_visible
        assert app_name == details_page.title
    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()

        details_page = home_page.go_to_first_free_app_page()
        Assert.true(details_page.is_product_details_visible)
        app_name = details_page.title

        # Write a review.
        review_box = details_page.click_write_review()
        acct = self.create_new_user(mozwebqa)
        details_page.login(acct)

        review_box.write_a_review(mock_review['rating'], mock_review['body'])

        Assert.equal(details_page.notification_message, "Your review was successfully posted. Thanks!")
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()
        reviews_page.header.click_back()

        Assert.true(details_page.is_product_details_visible)
        Assert.equal(app_name, details_page.title)
示例#6
0
    def test_that_checks_the_addition_of_a_review(self, mozwebqa, new_user):
        mock_review = MockReview()
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()
        home_page.nav_menu.click_sign_in()
        home_page.login(new_user['email'], new_user['password'])

        details_page = home_page.go_to_first_free_app_page()
        Assert.true(details_page.is_product_details_visible)

        # Write a review
        review_box = details_page.click_write_review()
        review_box.write_a_review(mock_review['rating'], mock_review['body'])

        Assert.equal(details_page.notification_message,
                     "Your review was successfully posted. Thanks!")
        details_page.wait_notification_box_not_visible()

        # 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.contains(review.text, mock_review['body'])
    def test_reviews_section(self, mozwebqa):
        """https://moztrap.mozilla.org/runtests/run/243/env/112/ - Verify details page for an app - Reviews section"""

        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        # click first app and load its Details Page
        details_page = home_page.go_to_first_free_app_page()

        # This takes the number of reviews on the details page and based on that number it treats 3 different scenarios:
        # when the app has reviews, when it has 1 review and when the app isn't rated.
        if details_page.is_app_rated:
            reviews_count = details_page.reviews_count
            reviews = details_page.reviews
            if reviews_count >= 2:
                if len(reviews) == 2:
                    for review in reviews:
                        Assert.true(review.is_visible)
            elif reviews_count == 1:
                Assert.true(reviews[0].is_visible)
        else:
            Assert.equal(details_page.app_not_rated_text, 'App not yet rated')

        Assert.true(details_page.is_write_a_review_button_visible)

        for support_button in details_page.support_buttons_list:
            Assert.true(details_page.is_element_visible(*support_button))
示例#8
0
 def test_that_searching_returns_results(self, mozwebqa):
     home_page = Home(mozwebqa)
     home_page.go_to_homepage()
     details_page = home_page.go_to_first_free_app_page()
     search_term = details_page.title
     details_page.header.click_back()
     search_page = home_page.header.search(search_term)
     results = search_page.items()
     assert len(results) > 0
     assert search_term in [result.name for result in results]
 def test_that_searching_returns_results(self, mozwebqa):
     home_page = Home(mozwebqa)
     home_page.go_to_homepage()
     details_page = home_page.go_to_first_free_app_page()
     search_term = details_page.title
     details_page.header.click_back()
     search_page = home_page.header.search(search_term)
     results = search_page.results()
     assert len(results) > 0
     assert search_term in [result.name for result in results]
示例#10
0
 def test_details_page_for_an_app(self, mozwebqa):
     """https://moztrap.mozilla.org/runtests/run/243/env/112/ - Verify details page for an app"""
     home_page = Home(mozwebqa)
     home_page.go_to_homepage()
     details_page = home_page.go_to_first_free_app_page()
     assert details_page.header.is_back_button_visible
     assert details_page.is_author_visible
     assert details_page.is_app_icon_present
     assert details_page.is_rating_visible
     assert details_page.is_product_details_visible
     assert details_page.is_description_visible
示例#11
0
    def test_that_searching_returns_results(self, mozwebqa):
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        details_page = home_page.go_to_first_free_app_page()
        search_term = details_page.title
        search_page = home_page.header.search(search_term)

        results = search_page.results()
        Assert.greater(len(results), 0)

        # Check that the results contains the search term
        for i in range(len(results)):
            if search_term == results[i].name:
                Assert.equal(search_term, results[i].name)
    def test_that_after_viewing_reviews_clicking_back_goes_to_app_page(self, mozwebqa):
        """ Navigate to the reviews listing for an app from the URL (not by clicking through to it),
        click back, test that the current page is the app page.
        """
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        details_page = home_page.go_to_first_free_app_page()
        app_name = details_page.title
        reviews_page = details_page.go_to_reviews_page()
        assert reviews_page.is_the_current_page

        reviews_page.header.click_back()
        assert details_page.is_product_details_visible
        assert app_name in details_page.title
    def test_that_after_viewing_reviews_clicking_back_goes_to_app_page(
            self, mozwebqa):
        """ Navigate to the reviews listing for an app from the URL (not by clicking through to it),
        click back, test that the current page is the app page.
        """
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        details_page = home_page.go_to_first_free_app_page()
        app_name = details_page.title
        reviews_page = details_page.go_to_reviews_page()
        assert reviews_page.is_the_current_page

        reviews_page.header.click_back()
        assert details_page.is_product_details_visible
        assert app_name in details_page.title
示例#14
0
    def test_that_searching_returns_results(self, mozwebqa):
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()

        details_page = home_page.go_to_first_free_app_page()
        search_term = details_page.title
        details_page.header.click_back()
        search_page = home_page.header.search(search_term)

        results = search_page.results()
        Assert.greater(len(results), 0)

        # Check that the results contains the search term
        for i in range(len(results)):
            if search_term == results[i].name:
                return

        Assert.fail('The search results did not include the app: %s' % search_term)
示例#15
0
    def test_that_checks_the_addition_of_a_review(self, base_url, selenium, new_user):
        mock_review = MockReview()
        home_page = Home(base_url, selenium)
        home_page.go_to_homepage()
        home_page.more_menu.click_sign_in()
        home_page.login(new_user['email'], new_user['password'])
        details_page = home_page.go_to_first_free_app_page()
        assert details_page.is_product_details_visible

        # Write a review
        review_box = details_page.click_write_review()
        review_box.write_a_review(mock_review['rating'], mock_review['body'])
        assert 'Your review was successfully posted. Thanks!' == details_page.notification_message
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()

        # Check review
        review = reviews_page.reviews[0]
        assert mock_review['rating'] == review.rating
        assert review.author in new_user['email']
        assert mock_review['body'] in review.text
    def test_that_checks_the_addition_of_a_review(self, mozwebqa, new_user):
        mock_review = MockReview()
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()
        home_page.more_menu.click_sign_in()
        home_page.login(new_user['email'], new_user['password'])
        details_page = home_page.go_to_first_free_app_page()
        assert details_page.is_product_details_visible

        # Write a review
        review_box = details_page.click_write_review()
        review_box.write_a_review(mock_review['rating'], mock_review['body'])
        assert 'Your review was successfully posted. Thanks!' == details_page.notification_message
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()

        # Check review
        review = reviews_page.reviews[0]
        assert mock_review['rating'] == review.rating
        assert review.author in new_user['email']
        assert mock_review['body'] in review.text
    def test_that_checks_the_addition_of_a_review(self, mozwebqa, new_user):
        mock_review = MockReview()
        home_page = Home(mozwebqa)
        home_page.go_to_homepage()
        home_page.more_menu.click_sign_in()
        home_page.login(new_user["email"], new_user["password"])
        details_page = home_page.go_to_first_free_app_page()
        assert details_page.is_product_details_visible

        # Write a review
        review_box = details_page.click_write_review()
        review_box.write_a_review(mock_review["rating"], mock_review["body"])
        assert "Your review was successfully posted. Thanks!" == details_page.notification_message
        details_page.wait_notification_box_not_visible()

        # Go to the reviews page
        reviews_page = details_page.click_view_reviews()

        # Check review
        review = reviews_page.reviews[0]
        assert mock_review["rating"] == review.rating
        assert review.author in new_user["email"]
        assert mock_review["body"] in review.text
示例#18
0
    def test_reviews_section(self, base_url, selenium):
        """https://moztrap.mozilla.org/runtests/run/243/env/112/ - Verify details page for an app - Reviews section"""
        home_page = Home(base_url, selenium)
        home_page.go_to_homepage()
        details_page = home_page.go_to_first_free_app_page()

        # This takes the number of reviews on the details page and based on that number it treats 3 different scenarios:
        # when the app has reviews, when it has 1 review and when the app isn't rated.
        if details_page.is_app_rated:
            reviews_count = details_page.reviews_count
            reviews = details_page.reviews
            if reviews_count >= 2:
                if len(reviews) == 2:
                    for review in reviews:
                        assert review.is_visible
            elif reviews_count == 1:
                assert reviews[0].is_visible
        else:
            assert 'App not yet rated' == details_page.app_not_rated_text

        assert details_page.is_write_a_review_button_visible

        for support_button in details_page.support_buttons_list:
            assert details_page.is_element_visible(*support_button)