def test_that_only_browser_reports_have_browser_icon(self, mozwebqa):
        """
        https://www.pivotaltracker.com/story/show/17099455
        """
        csp = CrashStatsHomePage(mozwebqa)
        csp.wait_for_ajax()
        reports_page = csp.click_last_product_top_crashers_link()
        type, days, os = 'Browser', '3', 'Linux'
        Assert.equal(reports_page.current_filter_type, type)
        reports_page.click_filter_days_by(days)
        reports_page.click_filter_os_by(os)
        Assert.equal(
            (type, days, os),
            (reports_page.current_filter_type,
             reports_page.current_days_filter, reports_page.current_os_filter))
        signature_list_items = reports_page.random_signature_items(19)
        Assert.true(
            len(signature_list_items) > 0, "Signature list items not found")

        for signature_item in signature_list_items:
            Assert.true(
                signature_item.is_browser_icon_visible,
                "Signature %s did not have a browser icon" %
                signature_item.title)
            Assert.false(
                signature_item.is_plugin_icon_visible,
                "Signature %s unexpectedly had a plugin icon" %
                signature_item.title)
    def test_that_only_browser_reports_have_browser_icon(self, mozwebqa):
        """
        https://www.pivotaltracker.com/story/show/17099455
        """
        csp = CrashStatsHomePage(mozwebqa)
        csp.wait_for_ajax()
        reports_page = csp.click_last_product_top_crashers_link()
        type, days, os = "Browser", "7", "Windows"
        Assert.equal(reports_page.current_filter_type, type)
        reports_page.click_filter_days_by(days)
        reports_page.click_filter_os_by(os)
        Assert.equal(
            (type, days, os),
            (reports_page.current_filter_type, reports_page.current_days_filter, reports_page.current_os_filter),
        )
        signature_list_items = reports_page.random_signature_items(19)
        Assert.true(len(signature_list_items) > 0, "Signature list items not found")

        for signature_item in signature_list_items:
            Assert.true(
                signature_item.is_browser_icon_visible,
                "Signature %s did not have a browser icon" % signature_item.title,
            )
            Assert.false(
                signature_item.is_plugin_icon_visible,
                "Signature %s unexpectedly had a plugin icon" % signature_item.title,
            )
    def test_that_top_crashers_reports_links_work(self, mozwebqa, product):
        """
        https://www.pivotaltracker.com/story/show/17086667
        """
        csp = CrashStatsHomePage(mozwebqa)
        csp.header.select_product(product)
        # Because the frontpage is now largely Ajax driven,
        # we need to add this wait before proceeding with the
        # next step.
        csp.wait_for_ajax()
        top_crashers = csp.release_channels

        for idx in range(len(top_crashers)):
            top_crasher_name = top_crashers[idx].product_version_label
            top_crasher_page = top_crashers[idx].click_top_crasher()
            Assert.contains(top_crasher_name, top_crasher_page.page_heading)
            top_crasher_page.return_to_previous_page()
            top_crashers = csp.release_channels
    def test_that_top_crashers_reports_links_work(self, mozwebqa, product):
        """
        https://www.pivotaltracker.com/story/show/17086667
        """
        csp = CrashStatsHomePage(mozwebqa)
        csp.header.select_product(product)
        # Because the frontpage is now largely Ajax driven,
        # we need to add this wait before proceeding with the
        # next step.
        csp.wait_for_ajax()
        top_crashers = csp.release_channels

        for idx in range(len(top_crashers)):
            top_crasher_name = top_crashers[idx].product_version_label
            top_crasher_page = top_crashers[idx].click_top_crasher()
            Assert.contains(top_crasher_name, top_crasher_page.page_heading)
            top_crasher_page.return_to_previous_page()
            top_crashers = csp.release_channels