def test_that_bugzilla_link_contain_current_site(self, mozwebqa): ''' Bug 631737 ''' csp = CrashStatsHomePage(mozwebqa) path = '/invaliddomain' csp.get_url_path(path) Assert.contains('bug_file_loc=%s%s' % (mozwebqa.base_url, path), urllib.unquote(csp.link_to_bugzilla))
def test_that_server_status_page_loads(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csstat = csp.click_server_status() Assert.true(csstat.is_at_a_glance_present, 'Server summary not found') Assert.true(csstat.are_graphs_present, '4 graphs not found') Assert.true(csstat.is_latest_raw_stats_present, 'Raw stats not found')
def test_that_product_versions_are_ordered_correctly(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) Assert.is_sorted_descending(csp.header.current_versions, csp.get_url_current_page()) Assert.is_sorted_descending(csp.header.other_versions, csp.get_url_current_page())
def test_that_server_status_page_loads(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csstat = csp.click_server_status() try: csstat.at_a_glance() except Exception, e: Assert.fail(str(e))
def test_that_products_are_sorted_correctly(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product_list = ["Firefox", "Thunderbird", "Camino", "SeaMonkey", "Fennec", "FennecAndroid"] products = csp.header.product_list Assert.equal(product_list, products, csp.get_url_current_page())
def test_that_current_version_selected_in_top_crashers_by_domain_header_for_firefox( self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product = csp.header.current_product cstc = csp.header.select_report('Top Crashers by Domain') if csp.results_found: Assert.equal(product, cstc.product_header, csp.get_url_current_page())
def _verify_results_are_returned(self, mozwebqa, product_name): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product(product_name) for top_crasher in csp.top_crashers: top_crasher_page = top_crasher.click_top_crasher() Assert.true(top_crasher_page.table_results_found) CrashStatsHomePage(mozwebqa)
def test_that_options_are_sorted_the_same(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) cssearch = csp.header.click_advanced_search() nav_product_list = csp.header.product_list search_product_list = cssearch.product_list Assert.equal(len(nav_product_list), len(search_product_list), csp.get_url_current_page()) for i, prod_item in enumerate(nav_product_list): Assert.equal(prod_item, search_product_list[i], csp.get_url_current_page())
def test_that_reports_form_has_same_product_for_firefox(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) page_title = csp.page_title Assert.true('Firefox' in page_title) crash_adu = csp.header.select_report("Crashes per User") details = csp.current_details report_product = crash_adu.product_select Assert.equal(details['product'], report_product, csp.get_url_current_page())
def test_that_server_status_page_loads(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csstat = csp.click_server_status() Assert.true(csstat.is_at_a_glance_present(), 'Server summary not found') Assert.true(csstat.are_graphs_present(), '4 graphs not found') Assert.true(csstat.is_latest_raw_stats_present(), 'Raw stats not found')
def _verify_top_crashers_links_work(self, mozwebqa, product_name): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product(product_name) for top_crasher in csp.top_crashers: top_crasher_name = top_crasher.version_name top_crasher_page = top_crasher.click_top_crasher() Assert.contains(top_crasher_name, top_crasher_page.page_heading) csp = CrashStatsHomePage(mozwebqa)
def test_that_top_crasher_filter_all_return_results(self, mozwebqa): # https://bugzilla.mozilla.org/show_bug.cgi?id=678906 csp = CrashStatsHomePage(mozwebqa) product = csp.header.current_product cstc = csp.header.select_report('Top Crashers') if csp.results_found: Assert.equal(product, cstc.product_header, csp.get_url_current_page()) cstc.click_filter_all() Assert.greater(cstc.count_results, 0)
def test_that_products_are_sorted_correctly(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product_list = [ "Firefox", "Thunderbird", "Camino", "SeaMonkey", "Fennec", "FennecAndroid" ] products = csp.header.product_list Assert.equal(product_list, products, csp.get_url_current_page())
def test_the_firefox_releases_return_results(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/20145655 """ csp = CrashStatsHomePage(mozwebqa) for top_crasher in csp.top_crashers: top_crasher_page = top_crasher.click_top_crasher() Assert.true(top_crasher_page.table_results_found, top_crasher_page.get_url_current_page()) CrashStatsHomePage(mozwebqa)
def test_that_search_for_valid_signature(self, mozwebqa): ''' This is a test for https://bugzilla.mozilla.org/show_bug.cgi?id=609070 ''' csp = CrashStatsHomePage(mozwebqa) reportlist = csp.click_first_product_top_crashers_link() signature = reportlist.first_valid_signature result = csp.header.search_for_crash(signature) Assert.true(result.results_found, result.get_url_current_page())
def test_that_top_crasher_filter_all_return_results(self, mozwebqa): # https://bugzilla.mozilla.org/show_bug.cgi?id=678906 csp = CrashStatsHomePage(mozwebqa) details = csp.current_details cstc = csp.header.select_report('Top Crashers') if csp.results_found: Assert.equal(details['product'], cstc.product_header, csp.get_url_current_page()) cstc.click_filter_all() results = cstc.count_results Assert.true(results > 0, "%s results found, expected >0" % results)
def test_that_only_browser_reports_have_browser_icon(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17099455 """ csp = CrashStatsHomePage(mozwebqa) reports_page = csp.click_first_product_top_crashers_link() Assert.equal(reports_page.current_filter_type, 'Browser') for signature_item in reports_page.signature_items: Assert.true(signature_item.is_browser_icon_visible, "Signature %s did not have a browser icon" % signature_item.text) Assert.false(signature_item.is_plugin_icon_visible, "Signature %s unexpextedly had a plugin icon" % signature_item.text)
def test_that_top_crashers_reports_links_work_for_firefox(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17086667 """ csp = CrashStatsHomePage(mozwebqa) top_crashers = csp.top_crashers for top_crasher in top_crashers: top_crasher_name = top_crasher.version_name top_crasher_page = top_crasher.click_top_crasher() Assert.contains(top_crasher_name, top_crasher_page.page_heading) CrashStatsHomePage(mozwebqa)
def test_that_only_plugin_reports_have_plugin_icon(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17099455 """ csp = CrashStatsHomePage(mozwebqa) reports_page = csp.click_first_product_top_crashers_link() reports_page.click_plugin_filter() signature_list_items = reports_page.signature_list_items for signature_item in signature_list_items: Assert.true(signature_item.is_plugin_icon_visible) Assert.false(signature_item.is_browser_icon_present)
def test_that_only_plugin_reports_have_plugin_icon(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17099455 """ csp = CrashStatsHomePage(mozwebqa) reports_page = csp.click_first_product_top_crashers_link() reports_page.click_filter_by('Plugin') signature_list_items = reports_page.signature_items for signature_item in signature_list_items: Assert.true(signature_item.is_plugin_icon_visible, "Signature %s did not have a plugin icon" % signature_item.title) Assert.false(signature_item.is_browser_icon_visible, "Signature %s unexpextedly had a browser icon" % signature_item.title)
def test_that_advanced_search_for_camino_can_be_filtered(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product('Camino') cs_advanced = csp.header.click_advanced_search() cs_advanced.filter_reports() Assert.contains('product is one of Camino', cs_advanced.query_results_text(0))
def test_that_selecting_exact_version_doesnt_show_other_versions(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product = csp.header.current_product versions = csp.header.current_versions if len(versions) > 0: csp.header.select_version(str(versions[1])) report_list = csp.click_first_product_top_crashers_link() crash_report_page = report_list.click_first_valid_signature() crash_report_page.click_reports() for report in crash_report_page.reports: Assert.equal(report.product, product) Assert.contains(report.version, str(versions[1]))
def _verify_reports_form_have_same_product(self, mozwebqa, product_name): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product(product_name) Assert.contains(product_name, csp.page_title) if csp.results_found: crash_adu = csp.header.select_report("Crashes per User") Assert.equal(csp.header.current_product, crash_adu.product_select)
def test_that_selecting_exact_version_doesnt_show_other_versions(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product = csp.header.current_product versions = csp.header.current_versions if len(versions) > 0: csp.header.select_version(versions[1]) report_list = csp.click_first_product_top_crashers_link() report = report_list.click_first_valid_signature() for i in range(report.row_count): report = report.get_row(i + 1) Assert.equal(report.product, product, report.get_url_current_page()) Assert.contains(report.version, str(versions[1]))
def test_that_advanced_search_has_seamonkey_highlighted_in_multiselect( self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product('SeaMonkey') cs_advanced = csp.header.click_advanced_search() Assert.equal('SeaMonkey', cs_advanced.currently_selected_product, cs_advanced.get_url_current_page())
def _verify_current_version_selected_in_top_crashers_by_domain_header( self, mozwebqa, product_name): csp = CrashStatsHomePage(mozwebqa) csp.header.select_product(product_name) if csp.results_found: product = csp.header.current_product cstc = csp.header.select_report('Top Crashers by Domain') Assert.equal(product, cstc.product_header)
def test_that_top_changers_data_is_available(self, mozwebqa): ''' https://www.pivotaltracker.com/story/show/18059119 ''' csp = CrashStatsHomePage(mozwebqa) cstc = csp.header.select_report('Top Changers') Assert.not_equal('Top changers currently unavailable', cstc.page_heading)
def test_that_7_days_is_selected_default_for_nightlies(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17088605 """ csp = CrashStatsHomePage(mozwebqa) top_crashers = csp.top_crashers tc_page = top_crashers[3].click_top_crasher() Assert.equal(tc_page.current_days_filter, '7')
def test_that_top_changers_is_highlighted_when_chosen(self, mozwebqa): """ Test for https://bugzilla.mozilla.org/show_bug.cgi?id=679229""" csp = CrashStatsHomePage(mozwebqa) for version in csp.header.current_versions: if csp.results_found: csp.header.select_version(version) cstc = csp.header.select_report('Top Changers') Assert.true(cstc.is_top_changers_highlighted, cstc.get_url_current_page())
def test_that_advanced_search_view_signature_for_firefox_crash( self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) cs_advanced = csp.header.click_advanced_search() cs_advanced.filter_reports() if cs_advanced.results_found: signature = cs_advanced.first_signature_name cssr = cs_advanced.click_first_signature() Assert.contains(signature, cssr.page_heading)
def test_that_selecting_exact_version_doesnt_show_other_versions(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) details = csp.current_details if len(details['versions']) > 0: csp.header.select_version(details['versions'][1]) report_list = csp.click_first_product_top_crashers_link() report = report_list.click_first_valid_signature() count = 0 while count < report.row_count: count += 1 report = report.get_row(count) product = report.product version = report.version Assert.equal(product, details['product'], report.get_url_current_page()) Assert.contains(version, str(details['versions'][1]))
def test_that_no_mixed_content_warnings_are_displayed(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/18049001 https://bugzilla.mozilla.org/show_bug.cgi?id=630991#c0 """ csp = CrashStatsHomePage(mozwebqa) cpu = csp.header.select_report('Crashes per User') cpu.click_generate_button() Assert.true(cpu.is_the_current_page) Assert.false(cpu.is_mixed_content_warning_shown)
def test_that_filtering_for_a_past_date_returns_results(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17141439 """ csp = CrashStatsHomePage(mozwebqa) crash_per_user = csp.header.select_report('Crashes per User') crash_per_user.type_start_date('1995-01-01') crash_per_user.click_generate_button() Assert.true(crash_per_user.is_table_visible) crash_per_user.table_row_count Assert.equal('1995-01-01', crash_per_user.last_row_date_value, crash_per_user.get_url_current_page())
def test_that_malformed_urls_on_query_do_not_return_500_error( self, mozwebqa): """ https://www.pivotaltracker.com/story/show/18059001 https://bugzilla.mozilla.org/show_bug.cgi?id=642580 """ csp = CrashStatsHomePage(mozwebqa) csas = csp.header.click_advanced_search() Assert.true(csas.is_the_current_page) csas.build_id_field_input('http://www.google.com') csas.filter_reports() Assert.equal('No results were found.', csas.query_results_text_no_results)
def test_that_advanced_search_drilldown_results_are_correct( self, mozwebqa): # https://bugzilla.mozilla.org/show_bug.cgi?id=679310 csp = CrashStatsHomePage(mozwebqa) cs_advanced = csp.header.click_advanced_search() cs_advanced.adv_select_product("Firefox") cs_advanced.adv_select_version("All") cs_advanced.filter_reports() results_page_count = cs_advanced.first_signature_number_of_results cssr = cs_advanced.click_first_signature() Assert.equal(results_page_count, cssr.total_items_label, cssr.get_url_current_page())
def test_that_selecting_nightly_builds_loads_page_and_link_to_ftp_works( self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) nightly_builds_page = csp.header.select_report('Nightly Builds') Assert.equal(nightly_builds_page.product_header, 'Nightly Builds for Firefox') website_link = nightly_builds_page.link_to_ftp #check that the link is valid Assert.not_none(re.match('(\w+\W+)', website_link)) #test external link works nightly_builds_page.click_link_to_ftp() Assert.equal(website_link, nightly_builds_page.get_url_current_page(), nightly_builds_page.get_url_current_page())
def test_that_plugin_filters_result(self, mozwebqa): #https://www.pivotaltracker.com/story/show/17769047 csp = CrashStatsHomePage(mozwebqa) cs_advanced = csp.header.click_advanced_search() cs_advanced.adv_select_product('Firefox') cs_advanced.adv_select_version('Firefox 11.0a2') cs_advanced.adv_select_os('Windows') cs_advanced.select_radio_button(2) cs_advanced.filter_reports() while not cs_advanced.is_plugin_icon_present: cs_advanced.click_next() Assert.true(cs_advanced.is_plugin_icon_visible, cs_advanced.get_url_current_page())
def test_that_lowest_version_topcrashers_do_not_return_errors( self, mozwebqa): """ https://bugzilla.mozilla.org/show_bug.cgi?id=655506 """ csp = CrashStatsHomePage(mozwebqa) csp.header.select_version('3.5.13') cstc = csp.header.select_report('Top Crashers') cstc.click_filter_days('14') Assert.not_equal( 'Unable to load data System error, please retry in a few minutes', cstc.page_heading) cstc.click_filter_plugin() Assert.not_equal( self, 'Unable to load data System error, please retry in a few minutes', cstc.page_heading)
def test_that_search_for_a_given_build_id_works(self, mozwebqa): """ https://www.pivotaltracker.com/story/show/17368401 """ csp = CrashStatsHomePage(mozwebqa) cs_advanced = csp.header.click_advanced_search() cs_advanced.adv_select_product('Firefox') cs_advanced.adv_select_version('All') cs_advanced.build_id_field_input(cs_advanced.build_id) cs_advanced.filter_reports() if cs_advanced.results_found: Assert.true(cs_advanced.first_signature_number_of_results > 0) else: Assert.equal(cs_advanced.query_results_text(1), "No results were found.", cs_advanced.get_url_current_page())
def test_that_topcrasher_is_not_returning_http500(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csp.get_url_path(csp.base_url + '/topcrasher') Assert.contains('Top Crashers', csp.get_page_name) Assert.true(csp.results_found(), 'No results found!')
def test_that_current_version_selected_in_top_crashers_by_domain_header_for_firefox(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) product = csp.header.current_product cstc = csp.header.select_report('Top Crashers by Domain') if csp.results_found: Assert.equal(product, cstc.product_header, csp.get_url_current_page())
def test_that_reports_form_has_same_product_for_firefox(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) Assert.contains('Firefox', csp.page_title) crash_adu = csp.header.select_report("Crashes per User") Assert.equal(csp.header.current_product, crash_adu.product_select, csp.get_url_current_page())
def test_that_correlation_is_not_returning_http500(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) csp.get_url_path(csp.base_url + '/correlation') Assert.contains('Page not Found', csp.get_page_name)
def test_that_current_version_selected_in_top_crashers_by_url_header_for_firefox(self, mozwebqa): csp = CrashStatsHomePage(mozwebqa) details = csp.current_details cstc = csp.header.select_report('Top Crashers by URL') Assert.equal(details['product'], cstc.product_header, csp.get_url_current_page())