def test_that_verifies_the_url_of_the_statistics_page(self, mozwebqa): details_page = Details(mozwebqa, "Firebug") statistics_page = details_page.click_view_statistics() Assert.true(statistics_page.is_the_current_page) Assert.contains("/statistics", statistics_page.get_url_current_page())
def test_that_clicking_user_reviews_slides_down_page_to_reviews_section( self, mozwebqa): details_page = Details(mozwebqa, 'firebug') details_page.click_user_reviews_link() Assert.true(details_page.is_reviews_section_visible) Assert.true(details_page.is_reviews_section_in_view)
def test_that_all_reviews_hyperlink_works(self, base_url, selenium): # Open details page for MemChaser details_page = Details(base_url, selenium, "Firebug") assert details_page.has_reviews view_reviews = details_page.click_all_reviews_link() assert 20 == len(view_reviews.reviews) # Go to the last page and check that the next button is not present view_reviews.paginator.click_last_page() assert view_reviews.paginator.is_next_page_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 = view_reviews.paginator.page_number view_reviews.paginator.click_prev_page() assert not view_reviews.paginator.is_next_page_disabled assert 20 == len(view_reviews.reviews) assert page_number - 1 == view_reviews.paginator.page_number # Go to the first page and check that the prev button is not present view_reviews.paginator.click_first_page() assert view_reviews.paginator.is_prev_page_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 = view_reviews.paginator.page_number view_reviews.paginator.click_next_page() assert not view_reviews.paginator.is_prev_page_disabled assert 20 == len(view_reviews.reviews) assert page_number + 1 == view_reviews.paginator.page_number
def test_that_add_to_collection_flyout_for_anonymous_users(self, mozwebqa): details_page = Details(mozwebqa, 'Firebug') details_page.click_add_to_collection_widget() Assert.equal(details_page.collection_widget_button, 'Create an Add-ons Account') Assert.equal(details_page.collection_widget_login_link, 'log in to your current account')
def test_the_developers_comments_section(self, base_url, selenium): details_page = Details(base_url, selenium, 'Firebug') assert u'Developer\u2019s Comments' == details_page.devs_comments_title details_page.expand_devs_comments() assert details_page.is_devs_comments_section_expanded assert re.match('(\w+\s*){3,}', details_page.devs_comments_message) is not None
def test_that_compatible_applications_equal(self, base_url, selenium): # browser firebug_page = Details(base_url, selenium, self.firebug) firebug_page.expand_version_information() browser_compatible_applications = firebug_page.compatible_applications # api addons_xml = AddonsAPI(base_url, self.firebug) xml_compatible_applications = addons_xml.get_compatible_applications() name = xml_compatible_applications[0] min_version = xml_compatible_applications[1] max_version = xml_compatible_applications[2] # E.g.: Works with Firefox 1.0 meta_compat_prefix = 'Works with %s %s ' % (name, min_version) # E.g.: Works with Firefox 1.0 and later meta_compat_abbrev = meta_compat_prefix + 'and later' # E.g.: Works with Firefox 1.0 - 16.0a1 meta_compat_full = "%s- %s" % (meta_compat_prefix, max_version) assert ( browser_compatible_applications == meta_compat_full or browser_compatible_applications == meta_compat_abbrev or browser_compatible_applications.startswith(meta_compat_prefix) ), "Listed compat. versions don't match versions listed in API."
def test_other_addons_label_when_there_is_only_one_author(self, mozwebqa): addon_with_one_authors = 'F1 by Mozilla Labs' detail_page = Details(mozwebqa, addon_with_one_authors) Assert.equal(len(detail_page.authors), 1) Assert.equal(detail_page.other_addons_by_authors_text, "Other add-ons by %s" % detail_page.authors[0])
def test_what_is_this_in_the_version_information(self, base_url, selenium): details_page = Details(base_url, selenium, "Firebug") assert 'Version Information' == details_page.version_information_heading details_page.expand_version_information() assert 'What\'s this?' == details_page.license_faq_text license_faq = details_page.click_whats_this_license() assert 'Frequently Asked Questions' == license_faq.header_text
def test_open_close_functionality_for_image_viewer(self, base_url, selenium): page = Details(base_url, selenium, 'firebug') viewer = page.previews.thumbnails[0].click() assert viewer.is_displayed viewer.close() assert not viewer.is_displayed
def test_that_clicking_info_link_slides_down_page_to_version_info( self, base_url, selenium): details_page = Details(base_url, selenium, 'firebug') details_page.click_version_info_link() assert details_page.version_info_link == details_page.version_information_href assert details_page.is_version_information_section_expanded assert details_page.is_version_information_section_in_view
def test_author_addons_when_there_is_only_one_author( self, base_url, selenium): addon_with_one_author = 'MemChaser' page = Details(base_url, selenium, addon_with_one_author) assert len(page.authors) == 1 assert 'Other add-ons by %s' % page.authors[ 0] == page.author_addons.heading
def test_navigating_to_author_addons(self, base_url, selenium): addon_page = Details(base_url, selenium, 'firebug') for i in range(len(addon_page.author_addons.addons)): author_addon_name = addon_page.author_addons.addons[i].name addon_page.author_addons.addons[i].click() assert author_addon_name in selenium.title selenium.back()
def test_that_all_reviews_hyperlink_works(self, mozwebqa): # Open details page for MemChaser details_page = Details(mozwebqa, "Firebug") Assert.true(details_page.has_reviews) view_reviews = details_page.click_all_reviews_link() Assert.equal(len(view_reviews.reviews), 20) # Go to the last page and check that the next button is not present view_reviews.paginator.click_last_page() Assert.true(view_reviews.paginator.is_next_page_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 = view_reviews.paginator.page_number view_reviews.paginator.click_prev_page() Assert.false(view_reviews.paginator.is_next_page_disabled) Assert.equal(len(view_reviews.reviews), 20) Assert.equal(view_reviews.paginator.page_number, page_number - 1) # Go to the first page and check that the prev button is not present view_reviews.paginator.click_first_page() Assert.true(view_reviews.paginator.is_prev_page_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 = view_reviews.paginator.page_number view_reviews.paginator.click_next_page() Assert.false(view_reviews.paginator.is_prev_page_disabled) Assert.equal(len(view_reviews.reviews), 20) Assert.equal(view_reviews.paginator.page_number, page_number + 1)
def test_open_close_functionality_for_image_viewer(self, base_url, selenium): detail_page = Details(base_url, selenium, 'firebug') image_viewer = detail_page.previewer.click_image() assert image_viewer.is_visible image_viewer.close() assert not image_viewer.is_visible
def test_other_addons_label_when_there_is_only_one_author( self, base_url, selenium): addon_with_one_author = 'MemChaser' detail_page = Details(base_url, selenium, addon_with_one_author) assert len(detail_page.authors) == 1 assert 'Other add-ons by %s' % detail_page.authors[ 0] == detail_page.other_addons_by_authors_text
def test_view_the_source_in_the_version_information(self, base_url, selenium): details_page = Details(base_url, selenium, "Firebug") assert 'Version Information' == details_page.version_information_heading details_page.expand_version_information() assert 'View the source' == details_page.view_source_code_text view_source = details_page.click_view_source_code() assert '/files/browse/' in view_source.get_url_current_page()
def test_view_the_source_in_the_version_information(self, mozwebqa): details_page = Details(mozwebqa, "MemChaser") Assert.equal(details_page.version_information_heading, "Version Information") details_page.click_version_information_header() Assert.equal("View the source", details_page.view_source_code.text) details_page.view_source_code.click() Assert.contains('/files/browse/', details_page.get_url_current_page())
def test_view_the_source_in_the_version_information(self, mozwebqa): details_page = Details(mozwebqa, "Firebug") Assert.equal(details_page.version_information_heading, "Version Information") details_page.expand_version_information() Assert.equal("View the source", details_page.view_source_code_text) view_source = details_page.click_view_source_code() Assert.contains('/files/browse/', view_source.get_url_current_page())
def test_that_the_development_channel_expands(self, mozwebqa): details_page = Details(mozwebqa, 'Firebug') assert 'Development Channel' == details_page.development_channel_text assert '' == details_page.development_channel_content details_page.click_development_channel() assert details_page.development_channel_content is not None details_page.click_development_channel() assert '' == details_page.development_channel_content
def test_what_is_this_in_the_version_information(self, mozwebqa): details_page = Details(mozwebqa, "Firebug") Assert.equal(details_page.version_information_heading, "Version Information") details_page.expand_version_information() Assert.equal("What's this?", details_page.license_faq_text) license_faq = details_page.click_whats_this_license() Assert.equal("Frequently Asked Questions", license_faq.header_text)
def test_that_clicking_info_link_slides_down_page_to_version_info( self, mozwebqa): details_page = Details(mozwebqa, 'firebug') details_page.click_version_info_link() Assert.equal(details_page.version_info_link, details_page.version_information_href) Assert.true(details_page.is_version_information_section_expanded) Assert.true(details_page.is_version_information_section_in_view)
def test_the_developers_comments_section(self, mozwebqa): details_page = Details(mozwebqa, 'Firebug') Assert.equal(details_page.devs_comments_title, u"Developer\u2019s Comments") details_page.expand_devs_comments() Assert.true(details_page.is_devs_comments_section_expanded) Assert.not_none( re.match('(\w+\s*){3,}', details_page.devs_comments_message))
def test_other_addons_label_when_there_are_multiple_authors( self, mozwebqa): addon_with_multiple_authors = 'firebug' detail_page = Details(mozwebqa, addon_with_multiple_authors) Assert.true(len(detail_page.authors) > 1) Assert.equal(detail_page.other_addons_by_authors_text, 'Other add-ons by these authors')
def test_open_close_functionality_for_image_viewer(self, mozwebqa): detail_page = Details(mozwebqa, 'firebug') image_viewer = detail_page.previewer.click_image() Assert.true(image_viewer.is_visible) image_viewer.close() Assert.false(image_viewer.is_visible)
def test_that_whats_this_link_for_source_license_links_to_an_answer_in_faq( self, mozwebqa): details_page = Details(mozwebqa, "Firebug") details_page.expand_version_information() user_faq_page = 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))
def test_that_install_button_is_clickable(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/27212263 """ details_page = Details(mozwebqa, 'firebug') Assert.contains( "active", details_page.click_and_hold_install_button_returns_class_value())
def test_that_the_development_channel_expands(self, base_url, selenium): details_page = Details(base_url, selenium, 'Firebug') assert 'Development Channel' == details_page.development_channel_text assert '' == details_page.development_channel_content details_page.click_development_channel() assert details_page.development_channel_content is not None details_page.click_development_channel() assert '' == details_page.development_channel_content
def test_user_my_favorites_page(self, base_url, selenium, logged_in): details_page = Details(base_url, selenium, 'Firebug') details_page.click_add_to_favorites() assert details_page.is_addon_marked_as_favorite home_page = Home(base_url, selenium) my_favorites_page = home_page.header.click_my_favorites() assert my_favorites_page.is_the_current_page assert 'My Favorite Add-ons' == my_favorites_page.my_favorites_header_text
def test_that_whats_this_link_for_source_license_links_to_an_answer_in_faq( self, base_url, selenium): details_page = Details(base_url, selenium, "Firebug") details_page.expand_version_information() user_faq_page = details_page.click_whats_this_license() assert re.match('(\w+\s*){3,}', user_faq_page.license_question) is not None assert re.match('(\w+\s*){3,}', user_faq_page.license_answer) is not None
def test_that_details_page_has_breadcrumb(self, mozwebqa): """ Test for Litmus 11922. https://litmus.mozilla.org/show_test.cgi?id=11922 """ detail_page = Details(mozwebqa, 'firebug') Assert.equal(detail_page.breadcrumbs[0].text, 'Add-ons for Firefox') Assert.equal(detail_page.breadcrumbs[1].text, 'Extensions') Assert.equal(detail_page.breadcrumbs[2].text, 'Firebug')