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
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)
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))
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]
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
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
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)
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
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)