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())
Exemple #2
0
    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)
Exemple #3
0
    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
Exemple #4
0
 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')
Exemple #5
0
 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."
Exemple #7
0
    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])
Exemple #8
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
Exemple #9
0
 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
Exemple #10
0
 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
Exemple #11
0
 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
Exemple #12
0
 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()
Exemple #13
0
    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)
Exemple #14
0
 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
Exemple #15
0
 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
Exemple #16
0
 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())
Exemple #18
0
 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
Exemple #20
0
 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)
Exemple #21
0
 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)
Exemple #22
0
 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))
Exemple #23
0
    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')
Exemple #24
0
    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)
Exemple #25
0
 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))
Exemple #26
0
 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
Exemple #28
0
    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
Exemple #30
0
 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')