def test_that_new_review_is_saved(self, mozwebqa): """ Litmus 22921 https://litmus.mozilla.org/show_test.cgi?id=22921 """ # Step 1 - Login into AMO amo_home_page = AddonsHomePage(mozwebqa) amo_home_page.login() Assert.true(amo_home_page.is_the_current_page) Assert.true(amo_home_page.header.is_user_logged_in) # Step 2 - Load any addon detail page details_page = AddonsDetailsPage(mozwebqa, 'Adblock Plus') # Step 3 - Click on "Write review" button write_review_block = details_page.click_to_write_review() # Step 4 - Write a review body = 'Automatic addon review by Selenium tests' write_review_block.enter_review_with_text(body) write_review_block.set_review_rating(1) review_page = write_review_block.click_to_save_review() # Step 5 - Assert review review = review_page.review() Assert.equal(review.rating, 1) Assert.equal(review.author, mozwebqa.credentials['default']['name']) date = datetime.now().strftime("%B %d, %Y") # there are no leading zero-signs on day so we need to remove them too date = date.replace(' 0', ' ') Assert.equal(review.date, date) Assert.equal(review.text, body)
def test_that_clicking_info_link_slides_down_page_to_version_info(self, mozwebqa): """ Test for Litmus 25725 https://litmus.mozilla.org/show_test.cgi?id=25725 """ amo_details_page = AddonsDetailsPage(mozwebqa, 'firebug') Assert.true(amo_details_page.is_version_info_link_visible) amo_details_page.click_version_info_link() Assert.equal(amo_details_page.version_info_link, amo_details_page.version_information) Assert.true(amo_details_page.is_version_information_section_expanded) Assert.true(amo_details_page.does_page_scroll_to_version_information_section)
def test_that_external_link_leads_to_addon_website(self, mozwebqa): """ Litmus 11809 https://litmus.mozilla.org/show_test.cgi?id=11809 """ # Step 1 - Open AMO homepage # Step 2 - Open Adblock Plus details page details_page = AddonsDetailsPage(mozwebqa, 'Adblock Plus') website_link = details_page.website Assert.true(website_link != '') # Step 3 - Follow external website link details_page.click_website_link() Assert.true(website_link in details_page.get_url_current_page())
def test_that_review_usernames_are_clickable(self, mozwebqa): """ Litmus 4842 https://litmus.mozilla.org/show_test.cgi?id=4842 """ addon_name = 'firebug' amo_detail_page = AddonsDetailsPage(mozwebqa, addon_name) for review in amo_detail_page.reviews(): username = review.username amo_user_page = review.click_username() Assert.equal(username, amo_user_page.username) AddonsDetailsPage(mozwebqa, addon_name)
def test_navigating_to_other_addons(self, mozwebqa): """ Litmus 11926 https://litmus.mozilla.org/show_test.cgi?id=11926""" addon_name = 'firebug' amo_detail_page = AddonsDetailsPage(mozwebqa, addon_name) addons = amo_detail_page.other_addons() for addon in addons: name = addon.name addon.click_addon_link() Assert.contains(name, amo_detail_page.name) amo_detail_page = AddonsDetailsPage(mozwebqa, addon_name)
def test_that_add_a_review_button_works(self, mozwebqa): """ Litmus 25729 https://litmus.mozilla.org/show_test.cgi?searchType=by_id&id=25729 """ #Step 1: Addons Home Page loads and Addons Details loads amo_home_page = AddonsHomePage(mozwebqa) #Step 2:user logs in to submit a review amo_home_page.login() Assert.true(amo_home_page.header.is_user_logged_in) #Step 3: user loads an addon details page and clicks write a review button amo_details_page = AddonsDetailsPage(mozwebqa, 'Firebug') addon_review_box = amo_details_page.click_to_write_review() Assert.true(addon_review_box.is_review_box_visible)
def test_that_all_reviews_hyperlink_works(self, mozwebqa): """ Test for litmus 4843 https://litmus.mozilla.org/show_test.cgi?id=4843 """ #Open details page for Adblock Plus amo_details_page = AddonsDetailsPage(mozwebqa, 'Adblock Plus') Assert.true(amo_details_page.has_reviews) amo_details_page.click_all_reviews_link() Assert.equal(amo_details_page.review_count, 20) #Go to the last page and check that the next button is not present amo_details_page.go_to_last_page() Assert.true(amo_details_page.is_next_link_disabled) #Go one page back, check that it has 20 reviews #that the page number decreases and that the next link is visible page_number = amo_details_page.current_page amo_details_page.page_back() Assert.true(amo_details_page.is_next_link_visible) Assert.equal(amo_details_page.review_count, 20) Assert.equal(amo_details_page.current_page, page_number - 1) #Go to the first page and check that the prev button is not present amo_details_page.go_to_first_page() Assert.true(amo_details_page.is_prev_link_disabled) #Go one page forward, check that it has 20 reviews, #that the page number increases and that the prev link is visible page_number = amo_details_page.current_page amo_details_page.page_forward() Assert.true(amo_details_page.is_prev_link_visible) Assert.equal(amo_details_page.review_count, 20) Assert.equal(amo_details_page.current_page, page_number + 1)
def test_that_whats_this_link_for_source_license_links_to_an_answer_in_faq(self, mozwebqa): """ Test for Litmus 11530""" amo_details_page = AddonsDetailsPage(mozwebqa, "Firebug") user_faq_page = amo_details_page.click_whats_this_license() Assert.not_none(re.match('(\w+\s*){3,}', user_faq_page.license_question)) Assert.not_none(re.match('(\w+\s*){3,}', user_faq_page.license_answer))