Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests/UI
diff options
context:
space:
mode:
authorThomas Steur <tsteur@users.noreply.github.com>2019-05-09 01:26:39 +0300
committerdiosmosis <diosmosis@users.noreply.github.com>2019-05-09 01:26:39 +0300
commit76e60590f486f33a38e7ea08bf941fa57ac904c5 (patch)
tree695bafa55fcd74d79322ed3885e90c4a17ff3e01 /tests/UI
parent461a48e6d7050f73b1c25db98b6f96cff86bd043 (diff)
Switch UI tests from phantomjs to chrome headless (#14421)
* Make sure xss entries is always an array. * Update expected test files and submodule. * Regenerate broken omnifixture dump. * poc conversion to chrome headless for UI tests, single test works locally * Get single test to pass on travis & local w/ headless chrome. * Remove old diff viewer generation, and get output to look the same as before when there is a failure. * Add global timeout & get ViewDataTableTest to pass. * Convert BarGraph_spec.js. * Convert EmptySite_spec. * Update EvolutionGraph spec for chrome headless. * Convert GoalsTable test & find/replace for common changes. * Convert MeasurableManager. * Another find & replace. * Get Menus/OptOutForm to pass w/ chrome headless * Convert PeriodSelector, PieGraph & PivotByDimension UI tests. * undo unrelated debugging change * Convert QuickAccess UI tests * Converts ActionsDataTable UI tests * reset viewport after each testsuite * Converts RowEvolution UI tests * Converts Theme UI tests * Converts SiteSelector UI tests * Converts CustomVariables UI test * Converts DBStats UI test * Ignore empty responses when calling api/controller * Converts Dashboard UI tests * Converts Live UI tests * Converts SimpleUI tests * Converts Installation UI tests * Converts ImageGraph UI tests * Converts Login UI tests * Converts Marketplace UI tests * Converts Insights UI tests * Converts ReportExporting UI tests * Converts UIIntegration tests * Updates ViewDataTable UI tests * Converts CoreUpdater UI tests * Converts UsersManager UI tests * Converts Morpheus UI tests * Converts MultiSites UI tests * Fix testEnvironment.callApi handling of array parameters * Converts Overlay UI tests * Converts PrivacyManager UI tests * Converts ScheduledReports UI tests * Converts SegmentEditor UI tests * compare pixel difference in images * Converts PeriodSelector UI tests * allow a pixel difference * Converts SingleMetricView UI tests * Converts SitesManager UI tests * Converts Transitions UI tests * Converts MeasurableManager UI tests * Move Mouse out of screen after each test suite * Converts PieGraph UI tests * Ensure cursor is not shown in focused input elements * Converts VisitorMap UI tests * Converts CustomLogo UI tests * Converts BarGraph UI tests * Converts EvolutionGraph UI tests * Converts IntranetMeasurable UI tests * Converts TrackingFailures UI tests * Converts CampaignBuilder UI tests * Converts TagManagerTeaser UI tests * fix request url rewrite for changed port * Converts TwoFactorAuth UI tests * do not print full responses in logs, but size instead * improve additional style injection * use submodule branches * fix request interception * update dependencies * [TEMP] disable dangerous link checks * [TEMP] limit tests * Use puppeteer@next and make sure diffs get uploaded properly. * Use correct fs function. * Allow timeout to be specified on command line for UI tests and debug console logs. * timeout option tweak * Setup diff dir once before running tests not before each suite. * fix last commit * Update screenshots and fix some specs. * Convert some tests that were not converted during merge. * updating screenshots * Updating screenshots and fixing some tests. * more test fixes * couple more test fixes * More test fixes and plugin updates. * wait for jquery * Fix some screenshots and tests. * more test fixes * debug travis test failure * remove .only * more test fixes and updated expected files * another test fixing iteration * typo * another quick test change * more tests updates * Test fixes and & more debugging. * more debugging and test fixes * more fixes and debugging. * remove .only * Another round of fixed tests. * more debugging & fixes * more test changes * more debugging and fixes * Fixing more tests + some bug fixes. * Couple more fixes. * Couple more fixes. * Fixing tracking failures test * more fixes * Last couple fixes hopefully. * couple more test fixes * more fixes, bug fix in usersmanager, some test updates * Some more test fixes/changes. * more and more fixes * hoping for a green build * Do not compare against existing files in dashboard_spec. * more fixes, re-enabling travis * really re-enable travis * Install puppeteer on travis-ci. * more fixes * try to fix random failues * remove return * Convert some login tests I forgot and update UsersManager expected file * Fix test for primary key update * Update AddPrimaryKey.php * More test fixes + implement synchronous comparison threshold (so no resemblejs) * More wait fixes + reset token detection fix. * couple more fixes * Fix login/overlay screenshot issue & magick command running issue. * identify is the executable on travis (hopefully) + fix some random failures * Another run. * Last fix. * two more tweaks * typo
Diffstat (limited to 'tests/UI')
-rw-r--r--tests/UI/diff.pngbin13648 -> 0 bytes
-rw-r--r--tests/UI/expected-screenshots/BarGraph_load.png4
-rw-r--r--tests/UI/expected-screenshots/BarGraph_metric_picker_shown.png4
-rw-r--r--tests/UI/expected-screenshots/BarGraph_other_metric.png4
-rw-r--r--tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png4
-rw-r--r--tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png3
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_export_image.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_initial.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_label_ticks_cutout.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_limit_changed.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_metric_picker_shown.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_one_series.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_periods_list.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_periods_selected.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_table_actions.png4
-rw-r--r--tests/UI/expected-screenshots/EvolutionGraph_two_metrics.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_goals_table_abandoned_carts.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce_view.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_goals_table_full.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_goals_table_single.png4
-rw-r--r--tests/UI/expected-screenshots/GoalsTable_initial.png4
-rw-r--r--tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png4
-rw-r--r--tests/UI/expected-screenshots/MeasurableManager_add_new_dialog.png4
-rw-r--r--tests/UI/expected-screenshots/MeasurableManager_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/MeasurableManager_measurable_menu_item.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_admin_changed.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_admin_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_mainmenu_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_mainmenu_lower_clicked.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_mainmenu_upper_clicked.png4
-rw-r--r--tests/UI/expected-screenshots/Menus_mobile_top.png4
-rw-r--r--tests/UI/expected-screenshots/OptOutForm_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/OptOutForm_opted-out-reload.png3
-rw-r--r--tests/UI/expected-screenshots/OptOutForm_opted-out.png4
-rw-r--r--tests/UI/expected-screenshots/OptOutForm_safari-loaded.png4
-rw-r--r--tests/UI/expected-screenshots/OptOutForm_safari-opted-out.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_date_range_selected.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_day_selected.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_expanded.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_month_changed.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_month_selected.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_range_picker_displayed.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_week_selected.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_year_changed.png4
-rw-r--r--tests/UI/expected-screenshots/PeriodSelector_year_selected.png4
-rw-r--r--tests/UI/expected-screenshots/PieGraph_load.png4
-rw-r--r--tests/UI/expected-screenshots/PieGraph_metric_picker_shown.png4
-rw-r--r--tests/UI/expected-screenshots/PieGraph_other_metric.png4
-rw-r--r--tests/UI/expected-screenshots/PieGraph_pie_segment_tooltip.png4
-rw-r--r--tests/UI/expected-screenshots/PivotByDimension_pivoted.png4
-rw-r--r--tests/UI/expected-screenshots/PivotByDimension_pivoted_columns_report.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_initially.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_search_1.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_search_2.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_search_category.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_search_no_result.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_search_sites.png4
-rw-r--r--tests/UI/expected-screenshots/QuickAccess_shortcut.png4
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.csv.txt20
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.json.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.php.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.tsv.txt20
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.xml.txt70
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.csv.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.json.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.php.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.tsv.txt2
-rw-r--r--tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.xml.txt10
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_multirow_evolution.png4
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_multirow_evolution_other_metric.png4
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_row_evolution.png4
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_row_evolution_ecommerce_item.png4
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_row_evolution_multiple_series.png4
-rw-r--r--tests/UI/expected-screenshots/RowEvolution_row_evolution_other_metric.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_expanded.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_search_no_results.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_search_one_char.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_search_two_chars.png4
-rw-r--r--tests/UI/expected-screenshots/SiteSelector_site_selected.png4
-rw-r--r--tests/UI/expected-screenshots/Theme_demo.png4
-rw-r--r--tests/UI/expected-screenshots/Theme_home.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_content_name_piece.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece_name.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_contents.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_downloads.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_entry_pages.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_exit_pages.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_outlinks.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_page_titles.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_pages.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_pages_tooltip_help.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_actions_site_search.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_tracking_code.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_websites.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_themes.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_asks_confirmation.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_wrong_password_confirmed.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_admin_visitor_generator.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_api_error.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_customdirplugin.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_dashboard3.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_dashboard4.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_dashboard5_mobile.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_db_connect_error.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log_segmented.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_overview.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_products.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_sales.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_email_reports.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_email_reports_editor.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_events_overview.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_barGraph.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_dataTables.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_evolutionGraph.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_pieGraph.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_sparklines.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_tagClouds.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_exampleui_treemap.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_feedback_form.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_glossary.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_ecommerce.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal_updated.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_row_evolution.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_manage.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_goals_overview.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite_superuser.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_metric_tooltip.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_notifications.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_period_select_date_range_click.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_allreferrers.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_campaigns.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_overview.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_search_engines_keywords.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_socials.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_referrers_websites.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_shortcuts.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_not_segmented.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_custom_vars.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_engagement.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_locations_provider.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview_segment.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_map.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_visits.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_software.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_visitors_times.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_widgetize_allwebsites.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_widgetize_apidisallowed.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png4
-rw-r--r--tests/UI/expected-screenshots/UIIntegrationTest_widgets_listing.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_0_initial.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_10_change_limit.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_11_flattened.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_13_make_hierarchical.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_14_visits_percent.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_15_search.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_1_all_columns.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_2_column_sorted_desc.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_3_column_sorted_asc.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_5_goals.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_5_visualizations.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_6_bar_graph.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_7_pie_graph.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_8_tag_cloud.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_9_normal_table.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_exclude_low_population.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_export_options.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_limit_selector_open.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_related_report_click.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_subtables_loaded.png4
-rw-r--r--tests/UI/expected-screenshots/ViewDataTableTest_totals_row.png4
-rw-r--r--tests/UI/expected-screenshots/enable_framed_pages_embed_whole_app.png4
-rw-r--r--tests/UI/specs/BarGraph_spec.js27
-rw-r--r--tests/UI/specs/EmptySite_spec.js26
-rw-r--r--tests/UI/specs/EvolutionGraph_spec.js323
-rw-r--r--tests/UI/specs/GoalsTable_spec.js68
-rw-r--r--tests/UI/specs/MeasurableManager_spec.js54
-rw-r--r--tests/UI/specs/Menus_spec.js80
-rw-r--r--tests/UI/specs/OptOutForm_spec.js98
-rw-r--r--tests/UI/specs/PeriodSelector_spec.js142
-rw-r--r--tests/UI/specs/PieGraph_spec.js40
-rw-r--r--tests/UI/specs/PivotByDimension_spec.js61
-rw-r--r--tests/UI/specs/QuickAccess_spec.js90
-rw-r--r--tests/UI/specs/ReportExporting_spec.js114
-rw-r--r--tests/UI/specs/RowEvolution_spec.js104
-rw-r--r--tests/UI/specs/SiteSelector_spec.js68
-rw-r--r--tests/UI/specs/Theme_spec.js44
-rw-r--r--tests/UI/specs/UIIntegration_spec.js1265
-rw-r--r--tests/UI/specs/ViewDataTable_spec.js246
224 files changed, 2058 insertions, 1706 deletions
diff --git a/tests/UI/diff.png b/tests/UI/diff.png
deleted file mode 100644
index 910fca0df3..0000000000
--- a/tests/UI/diff.png
+++ /dev/null
Binary files differ
diff --git a/tests/UI/expected-screenshots/BarGraph_load.png b/tests/UI/expected-screenshots/BarGraph_load.png
index 60be9fbba6..6a404f77cc 100644
--- a/tests/UI/expected-screenshots/BarGraph_load.png
+++ b/tests/UI/expected-screenshots/BarGraph_load.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c2a840afaafbc0c4319ca79d521a9e7a327add5c2b93dc1b7447aa5db23e3018
-size 33653
+oid sha256:f019e0dab710448af149183fe9d6b3c90d0d52364da8777e9926ab15f72f66ac
+size 33706
diff --git a/tests/UI/expected-screenshots/BarGraph_metric_picker_shown.png b/tests/UI/expected-screenshots/BarGraph_metric_picker_shown.png
index a2fd5fdefc..0ea2497406 100644
--- a/tests/UI/expected-screenshots/BarGraph_metric_picker_shown.png
+++ b/tests/UI/expected-screenshots/BarGraph_metric_picker_shown.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:851e4971def9173c9bbe1a167ae32c66c8d2eaa213a1aa502314698b122ce362
-size 46844
+oid sha256:b838b243189b1aaf6dc52222baec010d8b7d02efa54bb60b54c94de8799c0be8
+size 43963
diff --git a/tests/UI/expected-screenshots/BarGraph_other_metric.png b/tests/UI/expected-screenshots/BarGraph_other_metric.png
index 4e7ca80ec7..f3e19e9011 100644
--- a/tests/UI/expected-screenshots/BarGraph_other_metric.png
+++ b/tests/UI/expected-screenshots/BarGraph_other_metric.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:30b8337fd8645d3834505683566c567e05f71c44ec7a6f84279b4acde016cbf1
-size 34573
+oid sha256:08d4d5f748bba83fa9690aef8cfe2d5da0de6bfe3a6b83336ceefe3cdd430792
+size 34965
diff --git a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png
index 98e058441d..309c97c192 100644
--- a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png
+++ b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4251c8b68684464b3753ba36abaf07557d43d11a39eb3f34aa631457c7b01fc9
-size 256692
+oid sha256:9d802d9331ef97864ba98cc70c1dc7699c251d97a8d66e058f340db23daadc50
+size 247228
diff --git a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png
index 8cfa3b728a..e98d78ed83 100644
--- a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png
+++ b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:adcaba42202ed02e98fd2f29475fe10cddb14fe27dbfc6afe0d88ca7e9d96e01
-size 334113
+oid sha256:805e34618ff197f5810245f15a0c9a1462ba33badeeb305f841db7843f32acad
+size 319683
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png
deleted file mode 100644
index deb26b3a7b..0000000000
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_delete.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:291f2da4ce04edf90e3f5fa455164a19e772c066bc45dfe83ce09e1a89e9ac9c
-size 28419
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png
index 4e42ab7409..120323e909 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_form.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7fb0170f79cf7bc849104befcb9fbabe469a946dd1b98aa9b2ea71a06cfeb1cd
-size 33780
+oid sha256:9ce7a2ceb6f1d4c0ee8b5df951510e87ab8b43141aa3440b154b9211b3b77644
+size 32353
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png
index d8c32c5efc..30a0a30f78 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_edit_submit.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:94e0ba3806b68b3975aab13c7bf579363de0009941e30209d33904fae502d3f2
-size 31861
+oid sha256:f0738e7aac9299e7d3400369cb9ce0221acc4b346bc2c111cb7ea7c2fa2ad272
+size 30442
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png b/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png
index f2f907a06d..9b57b5f56c 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotation_starred.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b9c5893118819cf08a0387e1405e14677bb62aaeb6649a543aa5dfa4ec06b4a7
-size 30178
+oid sha256:c61f490e0e1a0f13f5609197fc09e0b537409393da94eddc6e9e8e7bbfab514d
+size 28682
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png
index d927d9b389..0eb18354fb 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_all.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7d223d46a1b0c6e5ee2a57cf1294ce31f72eb4d999017b1338e732f46b3f75c1
-size 90607
+oid sha256:f15ce2568ae2469a264e22e26a614e7f2b0e41bbbfe91db446ac3994cffa0281
+size 81876
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png
index 6fbb8b5bd8..df941481a6 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_none.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01613fe0a8843716a9b82c4502bebc40ce8c1b58a1bfc8974458db5e3c0a554e
-size 28696
+oid sha256:5ac51ffbb4bdf037d5b4548888ddc219e51e21fc60537e8709a2871b945b1712
+size 26767
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png b/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png
index e29d6e4869..226e268b4e 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_annotations_single_period.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e2bd1bae4c9cca7c3eb1cd4afb471ebeb203bdbe51ff65c2929589601d48bb8c
-size 39819
+oid sha256:37a3ab0d1bc28b2a1f6fc198370d4fe8bcb9ba73909f3e568cf93f8b0ce05b0e
+size 36902
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png b/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
index 7b1acb2ed1..3b4d885367 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_bounce_rate.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ecf116dae9daf66639c6d000168fdd7b27b485305decc65f42f3858a2b1cc81d
-size 99636
+oid sha256:92fb8112c2f186d2d2999e6d04eecaaf8bf82609e739633b7ac5cce65de5701f
+size 101798
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_export_image.png b/tests/UI/expected-screenshots/EvolutionGraph_export_image.png
index a2015057a5..e36451bf79 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_export_image.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_export_image.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:092875547bab80042f35f9e3fab076967ad9fc47a67a3688f0843d37973c9111
-size 25983
+oid sha256:c03f43dddeeecb5b9c8ebb7715a1c5cce74c07627429ab00f4cddec36d388684
+size 25394
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_initial.png b/tests/UI/expected-screenshots/EvolutionGraph_initial.png
index efdbefa792..c96d01b499 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_initial.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_initial.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:bafe84bd4a197b3ed934a7cd523698753b07f90d748319dd31a89eafd8afad33
-size 45997
+oid sha256:a71472bb1f75ca7ae8ac424c08b2abb3732b0ce666f6309e7b1a7f0692d11dc9
+size 46350
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_label_ticks_cutout.png b/tests/UI/expected-screenshots/EvolutionGraph_label_ticks_cutout.png
index ef35282e23..0275830d80 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_label_ticks_cutout.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_label_ticks_cutout.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7c8554b9d8c9073b634554abec90a1c9b894d72efeda8430cab233c0d3339a42
-size 10737
+oid sha256:0048ca8da4a74b550c2576f161d773ca2355b7ca11a62691fd6068799e7eadaa
+size 9809
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_limit_changed.png b/tests/UI/expected-screenshots/EvolutionGraph_limit_changed.png
index 835ac4a801..63052cafa8 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_limit_changed.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_limit_changed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:07748059cfb37fb99b896404febc7c2996b7bd3b83df3da667668f043c39cc44
-size 26679
+oid sha256:c158c9d6de85c8b24753ae028c97cbe4c4b31177efc652ce664dd2a11efa6c98
+size 24499
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_metric_picker_shown.png b/tests/UI/expected-screenshots/EvolutionGraph_metric_picker_shown.png
index 41d934261a..9304f44919 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_metric_picker_shown.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_metric_picker_shown.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a26c4558ad86916f58522670ffdc733dd6716d325c83dab2502e0f004a5c15fc
-size 33075
+oid sha256:e890d4f0db8833c414fd4a0bd5ce397ec00756d5f26bddfc245ed936975bf8b2
+size 28344
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png
index bf5fbe21fe..5b1f45e5bc 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_form.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:97f29f9a940e2ad120f31a528b1228b99e19ee3a838428207026f1324fe24cfa
-size 32831
+oid sha256:972e9bb90804ee873fb0d48494faf16bb515d073d7083066bfe2e8b62bb8f006
+size 30967
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png
index 623f808428..f1ce482ab2 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_new_annotation_submit.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:873eb59444716185fdc2eeb5a42ddfe8fa2138bf097f83d03a90db5f80b11ebd
-size 30047
+oid sha256:57230ae2ef0fe4f201909ab199bfaac8f55fd3d56da39db8470f90e295140c10
+size 28581
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_one_series.png b/tests/UI/expected-screenshots/EvolutionGraph_one_series.png
index ff746e7b8c..db7789c686 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_one_series.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_one_series.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:213c95430643eab93e7888e21d92369d09af8df985e40a3d44c7fa82849c3db9
-size 21310
+oid sha256:12c49a99f07601a4913dcd038db0f7c83b36c3303373086e7ce516432c4b4b49
+size 18898
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_periods_list.png b/tests/UI/expected-screenshots/EvolutionGraph_periods_list.png
index 96fc2d4b42..793ede20a7 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_periods_list.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_periods_list.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:aaf1d064b0dcc879fc59d61d58039ac0afe405947843a45f5fc9ca346178440f
-size 22297
+oid sha256:e647406f079918b482d99b7f5f4a336924f8b84ff655bbac79c48b972fecac7f
+size 21811
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_periods_selected.png b/tests/UI/expected-screenshots/EvolutionGraph_periods_selected.png
index d9c6e33958..099b13be7d 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_periods_selected.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_periods_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:48721f80d58fbbd1c5a600d1818e022cff9705ba35c9d1433452ee0164946623
-size 17945
+oid sha256:0e4fb6348e1c3d8e26414373f44cfc7940fa70661d446312831cc194172a8025
+size 15913
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_table_actions.png b/tests/UI/expected-screenshots/EvolutionGraph_table_actions.png
index 99337b4fb4..6c6411ef71 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_table_actions.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_table_actions.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:857da61057e3c2068f9b6883fbc3b82ad1aeb6f53df0e9589ae1cd01a23d82f2
-size 24441
+oid sha256:f4ff973ec22db204a06875d5449bbc4f1e233ad3e21f578200e4bf368f34e007
+size 22786
diff --git a/tests/UI/expected-screenshots/EvolutionGraph_two_metrics.png b/tests/UI/expected-screenshots/EvolutionGraph_two_metrics.png
index 99337b4fb4..6c6411ef71 100644
--- a/tests/UI/expected-screenshots/EvolutionGraph_two_metrics.png
+++ b/tests/UI/expected-screenshots/EvolutionGraph_two_metrics.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:857da61057e3c2068f9b6883fbc3b82ad1aeb6f53df0e9589ae1cd01a23d82f2
-size 24441
+oid sha256:f4ff973ec22db204a06875d5449bbc4f1e233ad3e21f578200e4bf368f34e007
+size 22786
diff --git a/tests/UI/expected-screenshots/GoalsTable_goals_table_abandoned_carts.png b/tests/UI/expected-screenshots/GoalsTable_goals_table_abandoned_carts.png
index 38244f4757..16de036433 100644
--- a/tests/UI/expected-screenshots/GoalsTable_goals_table_abandoned_carts.png
+++ b/tests/UI/expected-screenshots/GoalsTable_goals_table_abandoned_carts.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2f37c9c50388313cf36d815cff32edca2b21aa3ff96ace57c719cd9b4bf34ad2
-size 39431
+oid sha256:18e410d50c2fb10b21dc6282d1f942a339d739d6e9f5244b2d631c6ad74ad83c
+size 40379
diff --git a/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce.png b/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce.png
index a3f1eefcb2..c5529141a9 100644
--- a/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce.png
+++ b/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:61351315158c71e769d5f9717b60278010bf6f659dfcf12098d47f247dc02c92
-size 57944
+oid sha256:ab3a47dc7883c3ce55a4a65c10a2a7d61ca938cceed258df8251c3d5c7207f18
+size 59564
diff --git a/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce_view.png b/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce_view.png
index 08da6bf361..9f61cac2e2 100644
--- a/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce_view.png
+++ b/tests/UI/expected-screenshots/GoalsTable_goals_table_ecommerce_view.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a2aa58855612edb89f48fbb6e456530666a5ebffa681979cf8c3816c22abb981
-size 37577
+oid sha256:698bbc99f27dfce7587daab20c55061270f8cccaa8ee97bd4ec2f9123071c490
+size 39278
diff --git a/tests/UI/expected-screenshots/GoalsTable_goals_table_full.png b/tests/UI/expected-screenshots/GoalsTable_goals_table_full.png
index 16b8dc6fc0..94e25c49a9 100644
--- a/tests/UI/expected-screenshots/GoalsTable_goals_table_full.png
+++ b/tests/UI/expected-screenshots/GoalsTable_goals_table_full.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2d04a2ce950821acae5e0c0997fbead2c2d04c1c0c848408d89ebe4d6cfcdca1
-size 92223
+oid sha256:9637bc903a6b5fe3496e1784bb1aaac647f836e2e13dfec7daff4a8570efc6ae
+size 94439
diff --git a/tests/UI/expected-screenshots/GoalsTable_goals_table_single.png b/tests/UI/expected-screenshots/GoalsTable_goals_table_single.png
index 10e8af33e2..b4d6452945 100644
--- a/tests/UI/expected-screenshots/GoalsTable_goals_table_single.png
+++ b/tests/UI/expected-screenshots/GoalsTable_goals_table_single.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:482a1f33268af4ca6fda675cbd2dc978dc458408f6bcd995896ee3634b8affa6
-size 65069
+oid sha256:f2a742c4baad843292ec3f35826280c1209050dac94fce01659319ba92d51d4a
+size 66832
diff --git a/tests/UI/expected-screenshots/GoalsTable_initial.png b/tests/UI/expected-screenshots/GoalsTable_initial.png
index ccf9eae6ad..13ddecc4cf 100644
--- a/tests/UI/expected-screenshots/GoalsTable_initial.png
+++ b/tests/UI/expected-screenshots/GoalsTable_initial.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b4dafefd623904a1cfad1de27e313a51a49a673f7196ae7f3e89d21c1c86d9b6
-size 63477
+oid sha256:51bdc30d7bdfc162ea10d5bb720dd8ec443d2061699eb89a9d74be6ec0de7d03
+size 64334
diff --git a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
index 9679b42221..29cdc58fb5 100644
--- a/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
+++ b/tests/UI/expected-screenshots/MeasurableManager_add_measurable_view.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c8c1c5e5d9b1d2a3d5e6925b23e9330a74a22b31b26a2e784fcdfb15f20a7efb
-size 448674
+oid sha256:bf28c268d14376189cf251de1284d84f55751dc22ed19a4376f4a2c5f5c153de
+size 445827
diff --git a/tests/UI/expected-screenshots/MeasurableManager_add_new_dialog.png b/tests/UI/expected-screenshots/MeasurableManager_add_new_dialog.png
index e8b6148bd6..fcfeb2155c 100644
--- a/tests/UI/expected-screenshots/MeasurableManager_add_new_dialog.png
+++ b/tests/UI/expected-screenshots/MeasurableManager_add_new_dialog.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8857d42ec3cf82be7214ea4e781fde024e6bc1f3daf49e053639b809e923a6d0
-size 164839
+oid sha256:9c676585d63f76db9e9d83811604c400c76cc4569ff016db61099458e18805a1
+size 9846
diff --git a/tests/UI/expected-screenshots/MeasurableManager_loaded.png b/tests/UI/expected-screenshots/MeasurableManager_loaded.png
index da192b82f5..0c51a1cd96 100644
--- a/tests/UI/expected-screenshots/MeasurableManager_loaded.png
+++ b/tests/UI/expected-screenshots/MeasurableManager_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2300d2fed5cbfd6be8abc17863cdacf46e66b231a071a82da027d6b75889c48b
-size 183328
+oid sha256:62aa836177783bbbfb90b6ced188a5b0dcb363641ca7828ee06848025c5a7c9e
+size 181052
diff --git a/tests/UI/expected-screenshots/MeasurableManager_measurable_menu_item.png b/tests/UI/expected-screenshots/MeasurableManager_measurable_menu_item.png
index 1b94e8b07d..b5cd9b3044 100644
--- a/tests/UI/expected-screenshots/MeasurableManager_measurable_menu_item.png
+++ b/tests/UI/expected-screenshots/MeasurableManager_measurable_menu_item.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:916da911f54ba6d31a05a960e397087e33f262b9dc20bfa289983bc3cdbe2ffa
-size 9436
+oid sha256:25117e7ebd6b21937499f69153ce41c3ca6f0de66dbe62794fc6b0fcf47b86ee
+size 9339
diff --git a/tests/UI/expected-screenshots/Menus_admin_changed.png b/tests/UI/expected-screenshots/Menus_admin_changed.png
index 748b4f9240..8a7ca31869 100644
--- a/tests/UI/expected-screenshots/Menus_admin_changed.png
+++ b/tests/UI/expected-screenshots/Menus_admin_changed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f5c5c1c78e30a3188c0248e35c22700f17bd06325f41b2195c55e27fef4dc426
-size 57666
+oid sha256:960a6e479b1e3704245bff313960c7beeeb5957377b0a60ae1452a6a24089a28
+size 58011
diff --git a/tests/UI/expected-screenshots/Menus_admin_loaded.png b/tests/UI/expected-screenshots/Menus_admin_loaded.png
index 098d7a2186..3906623bcf 100644
--- a/tests/UI/expected-screenshots/Menus_admin_loaded.png
+++ b/tests/UI/expected-screenshots/Menus_admin_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:aee41614e7f98e70aea81344422051e1465616b5aff6277c94fa44d63875da18
-size 57660
+oid sha256:6a541dbc7f2ac640a2b38149e384eec8461c603b568db83921f1dbf8d9af0817
+size 58035
diff --git a/tests/UI/expected-screenshots/Menus_mainmenu_loaded.png b/tests/UI/expected-screenshots/Menus_mainmenu_loaded.png
index b3d88035e0..912402ee13 100644
--- a/tests/UI/expected-screenshots/Menus_mainmenu_loaded.png
+++ b/tests/UI/expected-screenshots/Menus_mainmenu_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:72bddaa05d7a07069ca0563ab9c83fc7382857adcabf640fbe407e2f05a180ad
-size 26212
+oid sha256:d3cf446268607202d16305d3f012f372e0b86cc7717dc792df663753afca71f0
+size 26083
diff --git a/tests/UI/expected-screenshots/Menus_mainmenu_lower_clicked.png b/tests/UI/expected-screenshots/Menus_mainmenu_lower_clicked.png
index 302a407f38..cc244c7ae6 100644
--- a/tests/UI/expected-screenshots/Menus_mainmenu_lower_clicked.png
+++ b/tests/UI/expected-screenshots/Menus_mainmenu_lower_clicked.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5ee9bbc6b14beeeabfbb31aa4faa45fe55a6f91d40a7f80988f3d47055528a6a
-size 24566
+oid sha256:560777d4e0f0dc63b046a19cb7f181c781a1c13ef195dd31e7f4bcf50b326fc4
+size 24117
diff --git a/tests/UI/expected-screenshots/Menus_mainmenu_upper_clicked.png b/tests/UI/expected-screenshots/Menus_mainmenu_upper_clicked.png
index b977f96462..ef12251916 100644
--- a/tests/UI/expected-screenshots/Menus_mainmenu_upper_clicked.png
+++ b/tests/UI/expected-screenshots/Menus_mainmenu_upper_clicked.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:df99ba66e035f663ec5db448913986ca895af1a07de828ae19c9b15562bc6ef4
-size 24619
+oid sha256:ddd80f9c1f2215465c48be938876deee0ac49af14ec27ee3f51d7cac19c1211b
+size 24128
diff --git a/tests/UI/expected-screenshots/Menus_mobile_top.png b/tests/UI/expected-screenshots/Menus_mobile_top.png
index 680e540414..d61a5e81e7 100644
--- a/tests/UI/expected-screenshots/Menus_mobile_top.png
+++ b/tests/UI/expected-screenshots/Menus_mobile_top.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ff3e8ef0ff637e39b0ded6ada4d903643ac65e627eaad4d5fbe4d91dba75b929
-size 233082
+oid sha256:2cf24a8721ce682e5f67cddb0b7d858528f3a333a1da78fe4812849f8d2cf2e8
+size 231491
diff --git a/tests/UI/expected-screenshots/OptOutForm_loaded.png b/tests/UI/expected-screenshots/OptOutForm_loaded.png
index b85bc53699..b349e78513 100644
--- a/tests/UI/expected-screenshots/OptOutForm_loaded.png
+++ b/tests/UI/expected-screenshots/OptOutForm_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c17e8eb40169c98d4d2ebd558ede9d9d2cfa1a37bdee219c36539a00ae36f5c7
-size 29248
+oid sha256:c2c658d66186e231303940ef50ba4a8cc982d28c0425e4290cb10ea3ea4e46d0
+size 22990
diff --git a/tests/UI/expected-screenshots/OptOutForm_opted-out-reload.png b/tests/UI/expected-screenshots/OptOutForm_opted-out-reload.png
deleted file mode 100644
index 7db8ceded4..0000000000
--- a/tests/UI/expected-screenshots/OptOutForm_opted-out-reload.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:05a4f6498214be08f54a85f83bafec542bf10c40e5a2ce49794ecb0f852cbedd
-size 30125
diff --git a/tests/UI/expected-screenshots/OptOutForm_opted-out.png b/tests/UI/expected-screenshots/OptOutForm_opted-out.png
index 7db8ceded4..e6043b8a7d 100644
--- a/tests/UI/expected-screenshots/OptOutForm_opted-out.png
+++ b/tests/UI/expected-screenshots/OptOutForm_opted-out.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:05a4f6498214be08f54a85f83bafec542bf10c40e5a2ce49794ecb0f852cbedd
-size 30125
+oid sha256:c3531a03ea817ae6f4f293f1f3e73c91c59b867e11ca3f2bc6e76e212a1c7607
+size 23169
diff --git a/tests/UI/expected-screenshots/OptOutForm_safari-loaded.png b/tests/UI/expected-screenshots/OptOutForm_safari-loaded.png
index b85bc53699..b349e78513 100644
--- a/tests/UI/expected-screenshots/OptOutForm_safari-loaded.png
+++ b/tests/UI/expected-screenshots/OptOutForm_safari-loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c17e8eb40169c98d4d2ebd558ede9d9d2cfa1a37bdee219c36539a00ae36f5c7
-size 29248
+oid sha256:c2c658d66186e231303940ef50ba4a8cc982d28c0425e4290cb10ea3ea4e46d0
+size 22990
diff --git a/tests/UI/expected-screenshots/OptOutForm_safari-opted-out.png b/tests/UI/expected-screenshots/OptOutForm_safari-opted-out.png
index 7db8ceded4..e6043b8a7d 100644
--- a/tests/UI/expected-screenshots/OptOutForm_safari-opted-out.png
+++ b/tests/UI/expected-screenshots/OptOutForm_safari-opted-out.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:05a4f6498214be08f54a85f83bafec542bf10c40e5a2ce49794ecb0f852cbedd
-size 30125
+oid sha256:c3531a03ea817ae6f4f293f1f3e73c91c59b867e11ca3f2bc6e76e212a1c7607
+size 23169
diff --git a/tests/UI/expected-screenshots/PeriodSelector_date_range_selected.png b/tests/UI/expected-screenshots/PeriodSelector_date_range_selected.png
index 544808f24d..b4b9e27289 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_date_range_selected.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_date_range_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6215df54b7862bb7b5e9e563155a315b022ebceb8b7425742297fb24f55aa8c0
-size 28824
+oid sha256:176c052ddec7ea5132bc3e681a69ac78f91d9a8546c3307fa1e2dce07ceff591
+size 28803
diff --git a/tests/UI/expected-screenshots/PeriodSelector_day_selected.png b/tests/UI/expected-screenshots/PeriodSelector_day_selected.png
index 73622ea274..5f4e8f8822 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_day_selected.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_day_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6b857063db5231a1799aa28fa300c92e7e0a06a5d3f212983fffab0f46362ab5
-size 18508
+oid sha256:a95bd588da5057ae44285ed0057cebc280d3c06fb913e39a949d1f8a7f5820aa
+size 18448
diff --git a/tests/UI/expected-screenshots/PeriodSelector_expanded.png b/tests/UI/expected-screenshots/PeriodSelector_expanded.png
index bc406b45da..c7df7f659e 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_expanded.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_expanded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8d65484c36d6b4e68a521245f7919d3cb14a0ba6e09386d9efdf3a4daf6f12a6
-size 18395
+oid sha256:4ddb0da156aeaf3711a2a88234d8e31b034e4aefd833088d21fce4eb21b97ace
+size 18475
diff --git a/tests/UI/expected-screenshots/PeriodSelector_loaded.png b/tests/UI/expected-screenshots/PeriodSelector_loaded.png
index dccd583b4e..5d35369001 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_loaded.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:42400a73d208f741dfcc39a7cc2b3b7597cf4c3272dde3f819c40399b75e5b94
-size 1204
+oid sha256:bbc0a3ab133bef4a80d92199ab8aaaba004340c2fa356a79c2cf556d7f3c62aa
+size 1227
diff --git a/tests/UI/expected-screenshots/PeriodSelector_month_changed.png b/tests/UI/expected-screenshots/PeriodSelector_month_changed.png
index 2f236fb091..82138902a2 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_month_changed.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_month_changed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:01d8b294c77f547c346c894b60b120765d20dbe82dcc0ecec943a0e55afd0dc1
-size 18288
+oid sha256:fd7d1de6cd7686925589b8d2d5bff79cc12626ad13a28aeeba6e482c37c09746
+size 17874
diff --git a/tests/UI/expected-screenshots/PeriodSelector_month_selected.png b/tests/UI/expected-screenshots/PeriodSelector_month_selected.png
index 0be38666b7..6c43c13ea3 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_month_selected.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_month_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9f9b3dbe7c4ab5ec837c990b07b77cdee071ed96036cfb5c2167de6b12c303e0
-size 18772
+oid sha256:b9a8c10a94797f276811e6d12e4776feade3e279c0e9282419c09329cdce7400
+size 18675
diff --git a/tests/UI/expected-screenshots/PeriodSelector_range_picker_displayed.png b/tests/UI/expected-screenshots/PeriodSelector_range_picker_displayed.png
index 4ebc41a9a8..8ca888a48b 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_range_picker_displayed.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_range_picker_displayed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e84fe44380b242e9718a2c60c78197ae0282a4c103588b51c8554fb80ea3f02b
-size 27821
+oid sha256:6ee1dfdfc79ab0468b76e6836d1b34cb6067faae5c3d3bc97a3c56c06025bcf1
+size 27641
diff --git a/tests/UI/expected-screenshots/PeriodSelector_week_selected.png b/tests/UI/expected-screenshots/PeriodSelector_week_selected.png
index e0fd3cfaea..bf4eeda7da 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_week_selected.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_week_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f32457e0762d35e33fff8e9ff55a08ef632840b67cc235fd70f7ec78db0d102e
-size 19071
+oid sha256:77b1d3e208cba73ea765246eb84e5965749821ce065f5e7d6929d0cfa9272701
+size 19728
diff --git a/tests/UI/expected-screenshots/PeriodSelector_year_changed.png b/tests/UI/expected-screenshots/PeriodSelector_year_changed.png
index b37d612a5c..19727dbe12 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_year_changed.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_year_changed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5b8fd8abde99de938b1051e9015d0c5548d3946b51a4e8977d38bcf2d4aec10f
-size 18126
+oid sha256:b9d330e44aa9d478f4b831201c44dec8a9573c8ebfdbb50f5a42fffefea98b2e
+size 17798
diff --git a/tests/UI/expected-screenshots/PeriodSelector_year_selected.png b/tests/UI/expected-screenshots/PeriodSelector_year_selected.png
index 30bdf80478..814432b920 100644
--- a/tests/UI/expected-screenshots/PeriodSelector_year_selected.png
+++ b/tests/UI/expected-screenshots/PeriodSelector_year_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4e07b281524f0a23b952b62a180b581400ae4b5ddeff3361c2af779dabb241d9
-size 17947
+oid sha256:0470ee134cb85335afad19f2ecb7b4c520c3f6cf75f606fa4392ae22e61bb18c
+size 17816
diff --git a/tests/UI/expected-screenshots/PieGraph_load.png b/tests/UI/expected-screenshots/PieGraph_load.png
index c4d706f0be..0a9cd33abc 100644
--- a/tests/UI/expected-screenshots/PieGraph_load.png
+++ b/tests/UI/expected-screenshots/PieGraph_load.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2c85f5dfaadeb6f8516e8d6fb76021fbf7d8e29b60b094030809d8e755070c51
-size 49825
+oid sha256:2654837f5716ccf9656bf3db6f8671795d57be0dc3dfa227ff038fa48813ad53
+size 49583
diff --git a/tests/UI/expected-screenshots/PieGraph_metric_picker_shown.png b/tests/UI/expected-screenshots/PieGraph_metric_picker_shown.png
index 3318882ea0..fff91e17d8 100644
--- a/tests/UI/expected-screenshots/PieGraph_metric_picker_shown.png
+++ b/tests/UI/expected-screenshots/PieGraph_metric_picker_shown.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:61d21634431a59ac682639fe2dea417a0f639f3580749e249cc14867756a28ad
-size 63841
+oid sha256:c60db2e0ac4a952c0509c22024e5a3295789744e3251a623754fc26064b736c7
+size 59303
diff --git a/tests/UI/expected-screenshots/PieGraph_other_metric.png b/tests/UI/expected-screenshots/PieGraph_other_metric.png
index fd949942b6..cdc2f670c4 100644
--- a/tests/UI/expected-screenshots/PieGraph_other_metric.png
+++ b/tests/UI/expected-screenshots/PieGraph_other_metric.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:98866acbefa8576cb0a42d1d70d765258d9d1d853dedd064058c1fe2590e29c4
-size 54171
+oid sha256:3d02022d68f254541a9f6fffaf66b4e71ca1c3009e595d1fa9032b9c21ae036b
+size 53644
diff --git a/tests/UI/expected-screenshots/PieGraph_pie_segment_tooltip.png b/tests/UI/expected-screenshots/PieGraph_pie_segment_tooltip.png
index f8678a63cd..8398aacade 100644
--- a/tests/UI/expected-screenshots/PieGraph_pie_segment_tooltip.png
+++ b/tests/UI/expected-screenshots/PieGraph_pie_segment_tooltip.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cf8f86d6e67c06362ab7b738cfb82d4c3972b0aac0341e0a3c497aa18f4bf806
-size 51573
+oid sha256:8320cec75df5a92a9e6c58fc35dd76bab76e2021dab7ecd68e86a09d75f7a90a
+size 50914
diff --git a/tests/UI/expected-screenshots/PivotByDimension_pivoted.png b/tests/UI/expected-screenshots/PivotByDimension_pivoted.png
index 663d052717..f26b73d9cb 100644
--- a/tests/UI/expected-screenshots/PivotByDimension_pivoted.png
+++ b/tests/UI/expected-screenshots/PivotByDimension_pivoted.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8c3b01c917f94aed3b5ee66f97f3f547e8684c85e74cd6949093122816efeeb9
-size 63911
+oid sha256:842d02b638824695770d0d3a9079ecd6282afb7e4f2da2831d010a175356269b
+size 67916
diff --git a/tests/UI/expected-screenshots/PivotByDimension_pivoted_columns_report.png b/tests/UI/expected-screenshots/PivotByDimension_pivoted_columns_report.png
index 17aa2bbdd6..5cfe836a98 100644
--- a/tests/UI/expected-screenshots/PivotByDimension_pivoted_columns_report.png
+++ b/tests/UI/expected-screenshots/PivotByDimension_pivoted_columns_report.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2792f43b90b7629c13ddadd83316ecc066c5379563f2cf37be96fdf01fcce34d
-size 56537
+oid sha256:df4aa7c1c0a5b46df32353f6908ae983985ec08faeb57a4189546427843d9d30
+size 57632
diff --git a/tests/UI/expected-screenshots/QuickAccess_initially.png b/tests/UI/expected-screenshots/QuickAccess_initially.png
index 11be223dfb..21bc32ad13 100644
--- a/tests/UI/expected-screenshots/QuickAccess_initially.png
+++ b/tests/UI/expected-screenshots/QuickAccess_initially.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e73ab3374f2a417c1497452b7763ed111b504e8dc9ef6c9346f8454664d09b89
-size 793
+oid sha256:da0dcb9c307109c0bd261dce1b4b9100f008d19e036a80f717ee8edd4cc466b0
+size 693
diff --git a/tests/UI/expected-screenshots/QuickAccess_search_1.png b/tests/UI/expected-screenshots/QuickAccess_search_1.png
index 60abaaf39b..b2035ade77 100644
--- a/tests/UI/expected-screenshots/QuickAccess_search_1.png
+++ b/tests/UI/expected-screenshots/QuickAccess_search_1.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e2414791d5e432d1f93c0cfe161c8374246f66f9258b14ccca4267b3da82221b
-size 93556
+oid sha256:cc7df5e9b4e27da3dee37d0c2ee87364f137aaea1b421480573b1a3d00459e5a
+size 90495
diff --git a/tests/UI/expected-screenshots/QuickAccess_search_2.png b/tests/UI/expected-screenshots/QuickAccess_search_2.png
index ffdce52daf..97d331f62d 100644
--- a/tests/UI/expected-screenshots/QuickAccess_search_2.png
+++ b/tests/UI/expected-screenshots/QuickAccess_search_2.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e4f52fc483f6a71b9d39ed1dfc6845a6c8c2f68f81d60c4b6b674671b7dcdceb
-size 11365
+oid sha256:5875adfd258c00d9faeb50cb16b0173e8e4bf134c13322406e280cf8a35de02c
+size 10474
diff --git a/tests/UI/expected-screenshots/QuickAccess_search_category.png b/tests/UI/expected-screenshots/QuickAccess_search_category.png
index 82f48f4dae..ea76c5be16 100644
--- a/tests/UI/expected-screenshots/QuickAccess_search_category.png
+++ b/tests/UI/expected-screenshots/QuickAccess_search_category.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:537fe150814793d3ef2075f1b441396aa2888a352c30f06a17c2c3a1974a4e28
-size 7445
+oid sha256:6c24c210eaeaf55a8dfe700c9bdc716161307afb1c31ea5b6fb0aa15180902b4
+size 7462
diff --git a/tests/UI/expected-screenshots/QuickAccess_search_no_result.png b/tests/UI/expected-screenshots/QuickAccess_search_no_result.png
index 3a5cf48025..5c1b28505d 100644
--- a/tests/UI/expected-screenshots/QuickAccess_search_no_result.png
+++ b/tests/UI/expected-screenshots/QuickAccess_search_no_result.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:7a7ff8ba9e202cf95cfa24481a8155cc2ff33264858d9f26c674d3b04c7542b6
-size 2572
+oid sha256:8255e9e547559f015c785d651fe128dc049bfc078d820d965cdef9774b05eeda
+size 2437
diff --git a/tests/UI/expected-screenshots/QuickAccess_search_sites.png b/tests/UI/expected-screenshots/QuickAccess_search_sites.png
index 64d1a81a1e..621e239fbc 100644
--- a/tests/UI/expected-screenshots/QuickAccess_search_sites.png
+++ b/tests/UI/expected-screenshots/QuickAccess_search_sites.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b4ea1908600d44b3d6040eda329084c23b24975036aecc6c6750b9678bf73627
-size 40794
+oid sha256:1b2540b0ebae429c5c3572021833fd0d66b3a5b830f73a8cb858885812c861b7
+size 39996
diff --git a/tests/UI/expected-screenshots/QuickAccess_shortcut.png b/tests/UI/expected-screenshots/QuickAccess_shortcut.png
index e57695ef71..41d8f7312c 100644
--- a/tests/UI/expected-screenshots/QuickAccess_shortcut.png
+++ b/tests/UI/expected-screenshots/QuickAccess_shortcut.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:429424ec7905112a3f4431a4fafcf415ba6afc21584f655e95e256c1f3b9e502
-size 227
+oid sha256:e3512364bfe8dfb2d1f9f9c9b66c95c45cd93189403a35d84d0cd5cd6f9cbe2d
+size 225
diff --git a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.csv.txt b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.csv.txt
index ebbe366b77..1ac29171bf 100644
--- a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.csv.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.csv.txt
@@ -1,18 +1,18 @@
Label,Visits,Actions,Maximum actions in one visit,Total time spent by visitors (in seconds),Bounces,Conversions (Goal idgoal=1),Visits with Conversions (Goal idgoal=1),Revenue (Goal idgoal=1),Conversions (Goal idgoal=2),Visits with Conversions (Goal idgoal=2),Revenue (Goal idgoal=2),Conversions,Revenue,Unique visitors (daily sum),Users (daily sum),Metadata: segment
referrer.com,11,45,7,7398,2,23,11,115,11,11,55,34,170,11,2,referrerName==referrer.com
-www.referrer1.com,8,12,3,2194,6,8,8,40,8,8,40,16,80,8,0,referrerName==www.referrer1.com
-www.referrer2.com,8,12,3,2194,6,8,8,40,8,8,40,16,80,8,0,referrerName==www.referrer2.com
-www.referrer3.com,8,12,3,2194,6,8,8,40,8,8,40,16,80,8,0,referrerName==www.referrer3.com
-www.referrer0.com,7,7,1,2555,7,7,7,35,7,7,35,14,70,7,0,referrerName==www.referrer0.com
-www.referrer4.com,6,6,1,2190,6,6,6,30,6,6,30,12,60,6,0,referrerName==www.referrer4.com
-whatever0.com,4,4,1,0,4,4,4,20,4,4,20,8,40,3,0,referrerName==whatever0.com
-anothersite.com,2,6,5,723,1,4,2,20,2,2,10,6,30,2,0,referrerName==anothersite.com
-whatever1.com,2,2,1,0,2,2,2,10,2,2,10,4,20,2,0,referrerName==whatever1.com
+www.referrer1.com,8,12,3,2194,6,14,8,70,8,8,40,22,110,8,0,referrerName==www.referrer1.com
+www.referrer2.com,8,12,3,2194,6,14,8,70,8,8,40,22,110,8,0,referrerName==www.referrer2.com
+www.referrer3.com,8,12,3,2194,6,14,8,70,8,8,40,22,110,8,0,referrerName==www.referrer3.com
+www.referrer0.com,7,7,1,2555,7,14,7,70,7,7,35,21,105,7,0,referrerName==www.referrer0.com
+www.referrer4.com,6,6,1,2190,6,12,6,60,6,6,30,18,90,6,0,referrerName==www.referrer4.com
+whatever0.com,4,4,1,4,4,4,4,20,4,4,20,8,40,3,0,referrerName==whatever0.com
+anothersite.com,2,6,5,723,1,6,2,30,2,2,10,8,40,2,0,referrerName==anothersite.com
+whatever1.com,2,2,1,2,2,2,2,10,2,2,10,4,20,2,0,referrerName==whatever1.com
www.external.com.vn,2,7,4,1804,0,7,2,35,2,2,10,9,45,2,0,referrerName==www.external.com.vn
mutantregistration.com,1,1,1,1,1,1,1,5,1,1,5,2,10,1,0,referrerName==mutantregistration.com
myotherreferrerwebsite.com,1,2,2,362,0,2,1,10,1,1,5,3,15,1,0,referrerName==myotherreferrerwebsite.com
myreferrerwebsite.com,1,1,1,1,1,1,1,5,1,1,5,2,10,1,0,referrerName==myreferrerwebsite.com
piwik.org,1,2,2,2,0,1,1,5,1,1,5,2,10,1,0,referrerName==piwik.org
sn110w.snt110.mail.live.com,1,2,2,2,0,1,1,5,1,1,5,2,10,1,0,referrerName==sn110w.snt110.mail.live.com
-whatever.com1,1,1,1,0,1,1,1,5,1,1,5,2,10,1,0,referrerName==whatever.com1
-whatever3.com,1,1,1,0,1,1,1,5,1,1,5,2,10,1,0,referrerName==whatever3.com \ No newline at end of file
+whatever.com1,1,1,1,1,1,1,1,5,1,1,5,2,10,1,0,referrerName==whatever.com1
+whatever3.com,1,1,1,1,1,1,1,5,1,1,5,2,10,1,0,referrerName==whatever3.com \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.json.txt b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.json.txt
index f280a6d99b..003f3dd998 100644
--- a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.json.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.json.txt
@@ -1 +1 @@
-[{"label":"referrer.com","nb_visits":11,"nb_actions":45,"max_actions":7,"sum_visit_length":7398,"bounce_count":2,"goals":{"idgoal=1":{"nb_conversions":23,"nb_visits_converted":11,"revenue":115},"idgoal=2":{"nb_conversions":11,"nb_visits_converted":11,"revenue":55}},"nb_conversions":34,"revenue":170,"sum_daily_nb_uniq_visitors":11,"sum_daily_nb_users":2,"idsubdatatable":8,"segment":"referrerName==referrer.com","subtable":[{"label":"http:\/\/referrer.com\/Other_Page.htm","nb_visits":4,"nb_actions":18,"max_actions":5,"sum_visit_length":2888,"bounce_count":0,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"https:\/\/referrer.com\/Other_Page.htm","nb_visits":4,"nb_actions":18,"max_actions":5,"sum_visit_length":2888,"bounce_count":0,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"http:\/\/referrer.com\/<script>_x(8)<\/script>","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":1},{"label":"http:\/\/referrer.com\/page.htm?param=valuewith some spaces","nb_visits":1,"nb_actions":7,"max_actions":7,"sum_visit_length":1622,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/referrer.com\/{{constructor.constructor(\"_x(21)\")()}}","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":1}]},{"label":"www.referrer1.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":16,"revenue":80,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":5,"segment":"referrerName==www.referrer1.com","subtable":[{"label":"http:\/\/www.referrer1.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer2.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":16,"revenue":80,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":6,"segment":"referrerName==www.referrer2.com","subtable":[{"label":"http:\/\/www.referrer2.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer3.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":16,"revenue":80,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":7,"segment":"referrerName==www.referrer3.com","subtable":[{"label":"http:\/\/www.referrer3.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer0.com","nb_visits":7,"nb_actions":7,"max_actions":1,"sum_visit_length":2555,"bounce_count":7,"goals":{"idgoal=1":{"nb_conversions":7,"nb_visits_converted":7,"revenue":35},"idgoal=2":{"nb_conversions":7,"nb_visits_converted":7,"revenue":35}},"nb_conversions":14,"revenue":70,"sum_daily_nb_uniq_visitors":7,"sum_daily_nb_users":0,"idsubdatatable":14,"segment":"referrerName==www.referrer0.com","subtable":[{"label":"http:\/\/www.referrer0.com\/theReferrerPage0.html","nb_visits":4,"nb_actions":4,"max_actions":1,"sum_visit_length":1460,"bounce_count":4,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer0.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0}]},{"label":"www.referrer4.com","nb_visits":6,"nb_actions":6,"max_actions":1,"sum_visit_length":2190,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":6,"nb_visits_converted":6,"revenue":30},"idgoal=2":{"nb_conversions":6,"nb_visits_converted":6,"revenue":30}},"nb_conversions":12,"revenue":60,"sum_daily_nb_uniq_visitors":6,"sum_daily_nb_users":0,"idsubdatatable":15,"segment":"referrerName==www.referrer4.com","subtable":[{"label":"http:\/\/www.referrer4.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer4.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0}]},{"label":"whatever0.com","nb_visits":4,"nb_actions":4,"max_actions":1,"sum_visit_length":0,"bounce_count":4,"goals":{"idgoal=1":{"nb_conversions":4,"nb_visits_converted":4,"revenue":20},"idgoal=2":{"nb_conversions":4,"nb_visits_converted":4,"revenue":20}},"nb_conversions":8,"revenue":40,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0,"idsubdatatable":2,"segment":"referrerName==whatever0.com","subtable":[{"label":"http:\/\/whatever0.com\/0","nb_visits":2,"nb_actions":2,"max_actions":1,"sum_visit_length":0,"bounce_count":2,"nb_visits_converted":2,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever0.com\/1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever0.com\/2","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"anothersite.com","nb_visits":2,"nb_actions":6,"max_actions":5,"sum_visit_length":723,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":4,"nb_visits_converted":2,"revenue":20},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":6,"revenue":30,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":13,"segment":"referrerName==anothersite.com","subtable":[{"label":"http:\/\/anothersite.com\/whatever.html","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/anothersite.com\/whatever.html?whatever=Ato","nb_visits":1,"nb_actions":5,"max_actions":5,"sum_visit_length":722,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever1.com","nb_visits":2,"nb_actions":2,"max_actions":1,"sum_visit_length":0,"bounce_count":2,"goals":{"idgoal=1":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":4,"revenue":20,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":3,"segment":"referrerName==whatever1.com","subtable":[{"label":"http:\/\/whatever1.com\/0","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever1.com\/2","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.external.com.vn","nb_visits":2,"nb_actions":7,"max_actions":4,"sum_visit_length":1804,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":7,"nb_visits_converted":2,"revenue":35},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":9,"revenue":45,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":12,"segment":"referrerName==www.external.com.vn","subtable":[{"label":"http:\/\/www.external.com.vn\/referrerPage-counted.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":722,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.external.com.vn\/referrerPage-notCounted.html","nb_visits":1,"nb_actions":4,"max_actions":4,"sum_visit_length":1082,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"mutantregistration.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":9,"segment":"referrerName==mutantregistration.com","subtable":[{"label":"http:\/\/mutantregistration.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"myotherreferrerwebsite.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":362,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":2,"nb_visits_converted":1,"revenue":10},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":3,"revenue":15,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":10,"segment":"referrerName==myotherreferrerwebsite.com","subtable":[{"label":"http:\/\/myotherreferrerwebsite.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":362,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"myreferrerwebsite.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":11,"segment":"referrerName==myreferrerwebsite.com","subtable":[{"label":"http:\/\/myreferrerwebsite.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"piwik.org","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":16,"segment":"referrerName==piwik.org","subtable":[{"label":"http:\/\/piwik.org\/contribute%","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"sn110w.snt110.mail.live.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":17,"segment":"referrerName==sn110w.snt110.mail.live.com","subtable":[{"label":"http:\/\/sn110w.snt110.mail.live.com\/mail\/InboxLight.aspx?n=184083971","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever.com1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":1,"segment":"referrerName==whatever.com1","subtable":[{"label":"http:\/\/whatever.com1\/1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever3.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":4,"segment":"referrerName==whatever3.com","subtable":[{"label":"http:\/\/whatever3.com\/3","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]}] \ No newline at end of file
+[{"label":"referrer.com","nb_visits":11,"nb_actions":45,"max_actions":7,"sum_visit_length":7398,"bounce_count":2,"goals":{"idgoal=1":{"nb_conversions":23,"nb_visits_converted":11,"revenue":115},"idgoal=2":{"nb_conversions":11,"nb_visits_converted":11,"revenue":55}},"nb_conversions":34,"revenue":170,"sum_daily_nb_uniq_visitors":11,"sum_daily_nb_users":2,"idsubdatatable":8,"segment":"referrerName==referrer.com","subtable":[{"label":"http:\/\/referrer.com\/Other_Page.htm","nb_visits":4,"nb_actions":18,"max_actions":5,"sum_visit_length":2888,"bounce_count":0,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"https:\/\/referrer.com\/Other_Page.htm","nb_visits":4,"nb_actions":18,"max_actions":5,"sum_visit_length":2888,"bounce_count":0,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"http:\/\/referrer.com\/<script>_x(8)<\/script>","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":1},{"label":"http:\/\/referrer.com\/page.htm?param=valuewith some spaces","nb_visits":1,"nb_actions":7,"max_actions":7,"sum_visit_length":1622,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/referrer.com\/{{constructor.constructor(\"_x(21)\")()}}","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":0,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":1}]},{"label":"www.referrer1.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":14,"nb_visits_converted":8,"revenue":70},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":22,"revenue":110,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":5,"segment":"referrerName==www.referrer1.com","subtable":[{"label":"http:\/\/www.referrer1.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer1.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer2.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":14,"nb_visits_converted":8,"revenue":70},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":22,"revenue":110,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":6,"segment":"referrerName==www.referrer2.com","subtable":[{"label":"http:\/\/www.referrer2.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer2.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer3.com","nb_visits":8,"nb_actions":12,"max_actions":3,"sum_visit_length":2194,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":14,"nb_visits_converted":8,"revenue":70},"idgoal=2":{"nb_conversions":8,"nb_visits_converted":8,"revenue":40}},"nb_conversions":22,"revenue":110,"sum_daily_nb_uniq_visitors":8,"sum_daily_nb_users":0,"idsubdatatable":7,"segment":"referrerName==www.referrer3.com","subtable":[{"label":"http:\/\/www.referrer3.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/sub\/dir\/page1.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer3.com\/sub\/dir\/page2.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.referrer0.com","nb_visits":7,"nb_actions":7,"max_actions":1,"sum_visit_length":2555,"bounce_count":7,"goals":{"idgoal=1":{"nb_conversions":14,"nb_visits_converted":7,"revenue":70},"idgoal=2":{"nb_conversions":7,"nb_visits_converted":7,"revenue":35}},"nb_conversions":21,"revenue":105,"sum_daily_nb_uniq_visitors":7,"sum_daily_nb_users":0,"idsubdatatable":14,"segment":"referrerName==www.referrer0.com","subtable":[{"label":"http:\/\/www.referrer0.com\/theReferrerPage0.html","nb_visits":4,"nb_actions":4,"max_actions":1,"sum_visit_length":1460,"bounce_count":4,"nb_visits_converted":4,"sum_daily_nb_uniq_visitors":4,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer0.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0}]},{"label":"www.referrer4.com","nb_visits":6,"nb_actions":6,"max_actions":1,"sum_visit_length":2190,"bounce_count":6,"goals":{"idgoal=1":{"nb_conversions":12,"nb_visits_converted":6,"revenue":60},"idgoal=2":{"nb_conversions":6,"nb_visits_converted":6,"revenue":30}},"nb_conversions":18,"revenue":90,"sum_daily_nb_uniq_visitors":6,"sum_daily_nb_users":0,"idsubdatatable":15,"segment":"referrerName==www.referrer4.com","subtable":[{"label":"http:\/\/www.referrer4.com\/theReferrerPage0.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0},{"label":"http:\/\/www.referrer4.com\/theReferrerPage1.html","nb_visits":3,"nb_actions":3,"max_actions":1,"sum_visit_length":1095,"bounce_count":3,"nb_visits_converted":3,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0}]},{"label":"whatever0.com","nb_visits":4,"nb_actions":4,"max_actions":1,"sum_visit_length":4,"bounce_count":4,"goals":{"idgoal=1":{"nb_conversions":4,"nb_visits_converted":4,"revenue":20},"idgoal=2":{"nb_conversions":4,"nb_visits_converted":4,"revenue":20}},"nb_conversions":8,"revenue":40,"sum_daily_nb_uniq_visitors":3,"sum_daily_nb_users":0,"idsubdatatable":2,"segment":"referrerName==whatever0.com","subtable":[{"label":"http:\/\/whatever0.com\/0","nb_visits":2,"nb_actions":2,"max_actions":1,"sum_visit_length":2,"bounce_count":2,"nb_visits_converted":2,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever0.com\/1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever0.com\/2","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"anothersite.com","nb_visits":2,"nb_actions":6,"max_actions":5,"sum_visit_length":723,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":6,"nb_visits_converted":2,"revenue":30},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":8,"revenue":40,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":13,"segment":"referrerName==anothersite.com","subtable":[{"label":"http:\/\/anothersite.com\/whatever.html","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/anothersite.com\/whatever.html?whatever=Ato","nb_visits":1,"nb_actions":5,"max_actions":5,"sum_visit_length":722,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever1.com","nb_visits":2,"nb_actions":2,"max_actions":1,"sum_visit_length":2,"bounce_count":2,"goals":{"idgoal=1":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":4,"revenue":20,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":3,"segment":"referrerName==whatever1.com","subtable":[{"label":"http:\/\/whatever1.com\/0","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/whatever1.com\/2","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"www.external.com.vn","nb_visits":2,"nb_actions":7,"max_actions":4,"sum_visit_length":1804,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":7,"nb_visits_converted":2,"revenue":35},"idgoal=2":{"nb_conversions":2,"nb_visits_converted":2,"revenue":10}},"nb_conversions":9,"revenue":45,"sum_daily_nb_uniq_visitors":2,"sum_daily_nb_users":0,"idsubdatatable":12,"segment":"referrerName==www.external.com.vn","subtable":[{"label":"http:\/\/www.external.com.vn\/referrerPage-counted.html","nb_visits":1,"nb_actions":3,"max_actions":3,"sum_visit_length":722,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0},{"label":"http:\/\/www.external.com.vn\/referrerPage-notCounted.html","nb_visits":1,"nb_actions":4,"max_actions":4,"sum_visit_length":1082,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"mutantregistration.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":9,"segment":"referrerName==mutantregistration.com","subtable":[{"label":"http:\/\/mutantregistration.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"myotherreferrerwebsite.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":362,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":2,"nb_visits_converted":1,"revenue":10},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":3,"revenue":15,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":10,"segment":"referrerName==myotherreferrerwebsite.com","subtable":[{"label":"http:\/\/myotherreferrerwebsite.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":362,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"myreferrerwebsite.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":11,"segment":"referrerName==myreferrerwebsite.com","subtable":[{"label":"http:\/\/myreferrerwebsite.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"piwik.org","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":16,"segment":"referrerName==piwik.org","subtable":[{"label":"http:\/\/piwik.org\/contribute%","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"sn110w.snt110.mail.live.com","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":17,"segment":"referrerName==sn110w.snt110.mail.live.com","subtable":[{"label":"http:\/\/sn110w.snt110.mail.live.com\/mail\/InboxLight.aspx?n=184083971","nb_visits":1,"nb_actions":2,"max_actions":2,"sum_visit_length":2,"bounce_count":0,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever.com1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":1,"segment":"referrerName==whatever.com1","subtable":[{"label":"http:\/\/whatever.com1\/1","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]},{"label":"whatever3.com","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"goals":{"idgoal=1":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5},"idgoal=2":{"nb_conversions":1,"nb_visits_converted":1,"revenue":5}},"nb_conversions":2,"revenue":10,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0,"idsubdatatable":4,"segment":"referrerName==whatever3.com","subtable":[{"label":"http:\/\/whatever3.com\/3","nb_visits":1,"nb_actions":1,"max_actions":1,"sum_visit_length":1,"bounce_count":1,"nb_visits_converted":1,"sum_daily_nb_uniq_visitors":1,"sum_daily_nb_users":0}]}] \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.php.txt b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.php.txt
index 721e110c55..a6c245c8a9 100644
--- a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.php.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.php.txt
@@ -1 +1 @@
-a:17:{i:0;a:14:{s:5:"label";s:12:"referrer.com";s:9:"nb_visits";i:11;s:10:"nb_actions";i:45;s:11:"max_actions";d:7;s:16:"sum_visit_length";i:7398;s:12:"bounce_count";i:2;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:23;s:19:"nb_visits_converted";i:11;s:7:"revenue";d:115;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:11;s:19:"nb_visits_converted";i:11;s:7:"revenue";d:55;}}s:14:"nb_conversions";i:34;s:7:"revenue";d:170;s:26:"sum_daily_nb_uniq_visitors";i:11;s:18:"sum_daily_nb_users";i:2;s:14:"idsubdatatable";i:8;s:7:"segment";s:26:"referrerName==referrer.com";s:8:"subtable";a:5:{i:0;a:9:{s:5:"label";s:34:"http://referrer.com/Other_Page.htm";s:9:"nb_visits";i:4;s:10:"nb_actions";i:18;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:2888;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:35:"https://referrer.com/Other_Page.htm";s:9:"nb_visits";i:4;s:10:"nb_actions";i:18;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:2888;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:54:"http://referrer.com/&lt;script&gt;_x(8)&lt;/script&gt;";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:1;}i:3;a:9:{s:5:"label";s:56:"http://referrer.com/page.htm?param=valuewith some spaces";s:9:"nb_visits";i:1;s:10:"nb_actions";i:7;s:11:"max_actions";d:7;s:16:"sum_visit_length";i:1622;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:4;a:9:{s:5:"label";s:69:"http://referrer.com/{{constructor.constructor(&quot;_x(21)&quot;)()}}";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:1;}}}i:1;a:14:{s:5:"label";s:17:"www.referrer1.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:16;s:7:"revenue";d:80;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:5;s:7:"segment";s:31:"referrerName==www.referrer1.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer1.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer1.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer1.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer1.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:2;a:14:{s:5:"label";s:17:"www.referrer2.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:16;s:7:"revenue";d:80;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:6;s:7:"segment";s:31:"referrerName==www.referrer2.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer2.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer2.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer2.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer2.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:3;a:14:{s:5:"label";s:17:"www.referrer3.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:16;s:7:"revenue";d:80;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:7;s:7:"segment";s:31:"referrerName==www.referrer3.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer3.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer3.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer3.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer3.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:4;a:14:{s:5:"label";s:17:"www.referrer0.com";s:9:"nb_visits";i:7;s:10:"nb_actions";i:7;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2555;s:12:"bounce_count";i:7;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:7;s:19:"nb_visits_converted";i:7;s:7:"revenue";d:35;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:7;s:19:"nb_visits_converted";i:7;s:7:"revenue";d:35;}}s:14:"nb_conversions";i:14;s:7:"revenue";d:70;s:26:"sum_daily_nb_uniq_visitors";i:7;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:14;s:7:"segment";s:31:"referrerName==www.referrer0.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer0.com/theReferrerPage0.html";s:9:"nb_visits";i:4;s:10:"nb_actions";i:4;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1460;s:12:"bounce_count";i:4;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer0.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}}}i:5;a:14:{s:5:"label";s:17:"www.referrer4.com";s:9:"nb_visits";i:6;s:10:"nb_actions";i:6;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2190;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:6;s:19:"nb_visits_converted";i:6;s:7:"revenue";d:30;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:6;s:19:"nb_visits_converted";i:6;s:7:"revenue";d:30;}}s:14:"nb_conversions";i:12;s:7:"revenue";d:60;s:26:"sum_daily_nb_uniq_visitors";i:6;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:15;s:7:"segment";s:31:"referrerName==www.referrer4.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer4.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer4.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}}}i:6;a:14:{s:5:"label";s:13:"whatever0.com";s:9:"nb_visits";i:4;s:10:"nb_actions";i:4;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:4;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:4;s:19:"nb_visits_converted";i:4;s:7:"revenue";d:20;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:4;s:19:"nb_visits_converted";i:4;s:7:"revenue";d:20;}}s:14:"nb_conversions";i:8;s:7:"revenue";d:40;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:2;s:7:"segment";s:27:"referrerName==whatever0.com";s:8:"subtable";a:3:{i:0;a:9:{s:5:"label";s:22:"http://whatever0.com/0";s:9:"nb_visits";i:2;s:10:"nb_actions";i:2;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:2;s:19:"nb_visits_converted";i:2;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:22:"http://whatever0.com/1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:22:"http://whatever0.com/2";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:7;a:14:{s:5:"label";s:15:"anothersite.com";s:9:"nb_visits";i:2;s:10:"nb_actions";i:6;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:723;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:4;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:20;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:6;s:7:"revenue";d:30;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:13;s:7:"segment";s:29:"referrerName==anothersite.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:36:"http://anothersite.com/whatever.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:49:"http://anothersite.com/whatever.html?whatever=Ato";s:9:"nb_visits";i:1;s:10:"nb_actions";i:5;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:722;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:8;a:14:{s:5:"label";s:13:"whatever1.com";s:9:"nb_visits";i:2;s:10:"nb_actions";i:2;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:2;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:4;s:7:"revenue";d:20;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:3;s:7:"segment";s:27:"referrerName==whatever1.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:22:"http://whatever1.com/0";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:22:"http://whatever1.com/2";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:9;a:14:{s:5:"label";s:19:"www.external.com.vn";s:9:"nb_visits";i:2;s:10:"nb_actions";i:7;s:11:"max_actions";d:4;s:16:"sum_visit_length";i:1804;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:7;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:35;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:9;s:7:"revenue";d:45;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:12;s:7:"segment";s:33:"referrerName==www.external.com.vn";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:52:"http://www.external.com.vn/referrerPage-counted.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:722;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:55:"http://www.external.com.vn/referrerPage-notCounted.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:4;s:11:"max_actions";d:4;s:16:"sum_visit_length";i:1082;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:10;a:14:{s:5:"label";s:22:"mutantregistration.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:9;s:7:"segment";s:36:"referrerName==mutantregistration.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:29:"http://mutantregistration.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:11;a:14:{s:5:"label";s:26:"myotherreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:362;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:10;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:3;s:7:"revenue";d:15;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:10;s:7:"segment";s:40:"referrerName==myotherreferrerwebsite.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:33:"http://myotherreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:362;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:12;a:14:{s:5:"label";s:21:"myreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:11;s:7:"segment";s:35:"referrerName==myreferrerwebsite.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:28:"http://myreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:13;a:14:{s:5:"label";s:9:"piwik.org";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:16;s:7:"segment";s:23:"referrerName==piwik.org";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:28:"http://piwik.org/contribute%";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:14;a:14:{s:5:"label";s:27:"sn110w.snt110.mail.live.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:17;s:7:"segment";s:41:"referrerName==sn110w.snt110.mail.live.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:67:"http://sn110w.snt110.mail.live.com/mail/InboxLight.aspx?n=184083971";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:15;a:14:{s:5:"label";s:13:"whatever.com1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:1;s:7:"segment";s:27:"referrerName==whatever.com1";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:22:"http://whatever.com1/1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:16;a:14:{s:5:"label";s:13:"whatever3.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:4;s:7:"segment";s:27:"referrerName==whatever3.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:22:"http://whatever3.com/3";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}} \ No newline at end of file
+a:17:{i:0;a:14:{s:5:"label";s:12:"referrer.com";s:9:"nb_visits";i:11;s:10:"nb_actions";i:45;s:11:"max_actions";d:7;s:16:"sum_visit_length";i:7398;s:12:"bounce_count";i:2;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:23;s:19:"nb_visits_converted";i:11;s:7:"revenue";d:115;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:11;s:19:"nb_visits_converted";i:11;s:7:"revenue";d:55;}}s:14:"nb_conversions";i:34;s:7:"revenue";d:170;s:26:"sum_daily_nb_uniq_visitors";i:11;s:18:"sum_daily_nb_users";i:2;s:14:"idsubdatatable";i:8;s:7:"segment";s:26:"referrerName==referrer.com";s:8:"subtable";a:5:{i:0;a:9:{s:5:"label";s:34:"http://referrer.com/Other_Page.htm";s:9:"nb_visits";i:4;s:10:"nb_actions";i:18;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:2888;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:35:"https://referrer.com/Other_Page.htm";s:9:"nb_visits";i:4;s:10:"nb_actions";i:18;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:2888;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:54:"http://referrer.com/&lt;script&gt;_x(8)&lt;/script&gt;";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:1;}i:3;a:9:{s:5:"label";s:56:"http://referrer.com/page.htm?param=valuewith some spaces";s:9:"nb_visits";i:1;s:10:"nb_actions";i:7;s:11:"max_actions";d:7;s:16:"sum_visit_length";i:1622;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:4;a:9:{s:5:"label";s:69:"http://referrer.com/{{constructor.constructor(&quot;_x(21)&quot;)()}}";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:0;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:1;}}}i:1;a:14:{s:5:"label";s:17:"www.referrer1.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:14;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:70;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:22;s:7:"revenue";d:110;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:5;s:7:"segment";s:31:"referrerName==www.referrer1.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer1.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer1.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer1.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer1.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:2;a:14:{s:5:"label";s:17:"www.referrer2.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:14;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:70;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:22;s:7:"revenue";d:110;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:6;s:7:"segment";s:31:"referrerName==www.referrer2.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer2.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer2.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer2.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer2.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:3;a:14:{s:5:"label";s:17:"www.referrer3.com";s:9:"nb_visits";i:8;s:10:"nb_actions";i:12;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2194;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:14;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:70;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:8;s:19:"nb_visits_converted";i:8;s:7:"revenue";d:40;}}s:14:"nb_conversions";i:22;s:7:"revenue";d:110;s:26:"sum_daily_nb_uniq_visitors";i:8;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:7;s:7:"segment";s:31:"referrerName==www.referrer3.com";s:8:"subtable";a:4:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer3.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer3.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:43:"http://www.referrer3.com/sub/dir/page1.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:3;a:9:{s:5:"label";s:43:"http://www.referrer3.com/sub/dir/page2.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:4;a:14:{s:5:"label";s:17:"www.referrer0.com";s:9:"nb_visits";i:7;s:10:"nb_actions";i:7;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2555;s:12:"bounce_count";i:7;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:14;s:19:"nb_visits_converted";i:7;s:7:"revenue";d:70;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:7;s:19:"nb_visits_converted";i:7;s:7:"revenue";d:35;}}s:14:"nb_conversions";i:21;s:7:"revenue";d:105;s:26:"sum_daily_nb_uniq_visitors";i:7;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:14;s:7:"segment";s:31:"referrerName==www.referrer0.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer0.com/theReferrerPage0.html";s:9:"nb_visits";i:4;s:10:"nb_actions";i:4;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1460;s:12:"bounce_count";i:4;s:19:"nb_visits_converted";i:4;s:26:"sum_daily_nb_uniq_visitors";i:4;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer0.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}}}i:5;a:14:{s:5:"label";s:17:"www.referrer4.com";s:9:"nb_visits";i:6;s:10:"nb_actions";i:6;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2190;s:12:"bounce_count";i:6;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:12;s:19:"nb_visits_converted";i:6;s:7:"revenue";d:60;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:6;s:19:"nb_visits_converted";i:6;s:7:"revenue";d:30;}}s:14:"nb_conversions";i:18;s:7:"revenue";d:90;s:26:"sum_daily_nb_uniq_visitors";i:6;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:15;s:7:"segment";s:31:"referrerName==www.referrer4.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:46:"http://www.referrer4.com/theReferrerPage0.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:46:"http://www.referrer4.com/theReferrerPage1.html";s:9:"nb_visits";i:3;s:10:"nb_actions";i:3;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1095;s:12:"bounce_count";i:3;s:19:"nb_visits_converted";i:3;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;}}}i:6;a:14:{s:5:"label";s:13:"whatever0.com";s:9:"nb_visits";i:4;s:10:"nb_actions";i:4;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:4;s:12:"bounce_count";i:4;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:4;s:19:"nb_visits_converted";i:4;s:7:"revenue";d:20;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:4;s:19:"nb_visits_converted";i:4;s:7:"revenue";d:20;}}s:14:"nb_conversions";i:8;s:7:"revenue";d:40;s:26:"sum_daily_nb_uniq_visitors";i:3;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:2;s:7:"segment";s:27:"referrerName==whatever0.com";s:8:"subtable";a:3:{i:0;a:9:{s:5:"label";s:22:"http://whatever0.com/0";s:9:"nb_visits";i:2;s:10:"nb_actions";i:2;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:2;s:19:"nb_visits_converted";i:2;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:22:"http://whatever0.com/1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:2;a:9:{s:5:"label";s:22:"http://whatever0.com/2";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:7;a:14:{s:5:"label";s:15:"anothersite.com";s:9:"nb_visits";i:2;s:10:"nb_actions";i:6;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:723;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:6;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:30;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:8;s:7:"revenue";d:40;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:13;s:7:"segment";s:29:"referrerName==anothersite.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:36:"http://anothersite.com/whatever.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:49:"http://anothersite.com/whatever.html?whatever=Ato";s:9:"nb_visits";i:1;s:10:"nb_actions";i:5;s:11:"max_actions";d:5;s:16:"sum_visit_length";i:722;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:8;a:14:{s:5:"label";s:13:"whatever1.com";s:9:"nb_visits";i:2;s:10:"nb_actions";i:2;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:2;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:4;s:7:"revenue";d:20;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:3;s:7:"segment";s:27:"referrerName==whatever1.com";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:22:"http://whatever1.com/0";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:22:"http://whatever1.com/2";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:9;a:14:{s:5:"label";s:19:"www.external.com.vn";s:9:"nb_visits";i:2;s:10:"nb_actions";i:7;s:11:"max_actions";d:4;s:16:"sum_visit_length";i:1804;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:7;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:35;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:2;s:7:"revenue";d:10;}}s:14:"nb_conversions";i:9;s:7:"revenue";d:45;s:26:"sum_daily_nb_uniq_visitors";i:2;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:12;s:7:"segment";s:33:"referrerName==www.external.com.vn";s:8:"subtable";a:2:{i:0;a:9:{s:5:"label";s:52:"http://www.external.com.vn/referrerPage-counted.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:3;s:11:"max_actions";d:3;s:16:"sum_visit_length";i:722;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}i:1;a:9:{s:5:"label";s:55:"http://www.external.com.vn/referrerPage-notCounted.html";s:9:"nb_visits";i:1;s:10:"nb_actions";i:4;s:11:"max_actions";d:4;s:16:"sum_visit_length";i:1082;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:10;a:14:{s:5:"label";s:22:"mutantregistration.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:9;s:7:"segment";s:36:"referrerName==mutantregistration.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:29:"http://mutantregistration.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:11;a:14:{s:5:"label";s:26:"myotherreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:362;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:2;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:10;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:3;s:7:"revenue";d:15;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:10;s:7:"segment";s:40:"referrerName==myotherreferrerwebsite.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:33:"http://myotherreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:362;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:12;a:14:{s:5:"label";s:21:"myreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:11;s:7:"segment";s:35:"referrerName==myreferrerwebsite.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:28:"http://myreferrerwebsite.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:13;a:14:{s:5:"label";s:9:"piwik.org";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:16;s:7:"segment";s:23:"referrerName==piwik.org";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:28:"http://piwik.org/contribute%";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:14;a:14:{s:5:"label";s:27:"sn110w.snt110.mail.live.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:17;s:7:"segment";s:41:"referrerName==sn110w.snt110.mail.live.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:67:"http://sn110w.snt110.mail.live.com/mail/InboxLight.aspx?n=184083971";s:9:"nb_visits";i:1;s:10:"nb_actions";i:2;s:11:"max_actions";d:2;s:16:"sum_visit_length";i:2;s:12:"bounce_count";i:0;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:15;a:14:{s:5:"label";s:13:"whatever.com1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:1;s:7:"segment";s:27:"referrerName==whatever.com1";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:22:"http://whatever.com1/1";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}i:16;a:14:{s:5:"label";s:13:"whatever3.com";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:5:"goals";a:2:{s:8:"idgoal=1";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}s:8:"idgoal=2";a:3:{s:14:"nb_conversions";i:1;s:19:"nb_visits_converted";i:1;s:7:"revenue";d:5;}}s:14:"nb_conversions";i:2;s:7:"revenue";d:10;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;s:14:"idsubdatatable";i:4;s:7:"segment";s:27:"referrerName==whatever3.com";s:8:"subtable";a:1:{i:0;a:9:{s:5:"label";s:22:"http://whatever3.com/3";s:9:"nb_visits";i:1;s:10:"nb_actions";i:1;s:11:"max_actions";d:1;s:16:"sum_visit_length";i:1;s:12:"bounce_count";i:1;s:19:"nb_visits_converted";i:1;s:26:"sum_daily_nb_uniq_visitors";i:1;s:18:"sum_daily_nb_users";i:0;}}}} \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.tsv.txt b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.tsv.txt
index 846d51d0a8..893f31a64d 100644
--- a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.tsv.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.tsv.txt
@@ -1,18 +1,18 @@
Label Visits Actions Maximum actions in one visit Total time spent by visitors (in seconds) Bounces Conversions (Goal idgoal=1) Visits with Conversions (Goal idgoal=1) Revenue (Goal idgoal=1) Conversions (Goal idgoal=2) Visits with Conversions (Goal idgoal=2) Revenue (Goal idgoal=2) Conversions Revenue Unique visitors (daily sum) Users (daily sum) Metadata: segment
referrer.com 11 45 7 7398 2 23 11 115 11 11 55 34 170 11 2 referrerName==referrer.com
-www.referrer1.com 8 12 3 2194 6 8 8 40 8 8 40 16 80 8 0 referrerName==www.referrer1.com
-www.referrer2.com 8 12 3 2194 6 8 8 40 8 8 40 16 80 8 0 referrerName==www.referrer2.com
-www.referrer3.com 8 12 3 2194 6 8 8 40 8 8 40 16 80 8 0 referrerName==www.referrer3.com
-www.referrer0.com 7 7 1 2555 7 7 7 35 7 7 35 14 70 7 0 referrerName==www.referrer0.com
-www.referrer4.com 6 6 1 2190 6 6 6 30 6 6 30 12 60 6 0 referrerName==www.referrer4.com
-whatever0.com 4 4 1 0 4 4 4 20 4 4 20 8 40 3 0 referrerName==whatever0.com
-anothersite.com 2 6 5 723 1 4 2 20 2 2 10 6 30 2 0 referrerName==anothersite.com
-whatever1.com 2 2 1 0 2 2 2 10 2 2 10 4 20 2 0 referrerName==whatever1.com
+www.referrer1.com 8 12 3 2194 6 14 8 70 8 8 40 22 110 8 0 referrerName==www.referrer1.com
+www.referrer2.com 8 12 3 2194 6 14 8 70 8 8 40 22 110 8 0 referrerName==www.referrer2.com
+www.referrer3.com 8 12 3 2194 6 14 8 70 8 8 40 22 110 8 0 referrerName==www.referrer3.com
+www.referrer0.com 7 7 1 2555 7 14 7 70 7 7 35 21 105 7 0 referrerName==www.referrer0.com
+www.referrer4.com 6 6 1 2190 6 12 6 60 6 6 30 18 90 6 0 referrerName==www.referrer4.com
+whatever0.com 4 4 1 4 4 4 4 20 4 4 20 8 40 3 0 referrerName==whatever0.com
+anothersite.com 2 6 5 723 1 6 2 30 2 2 10 8 40 2 0 referrerName==anothersite.com
+whatever1.com 2 2 1 2 2 2 2 10 2 2 10 4 20 2 0 referrerName==whatever1.com
www.external.com.vn 2 7 4 1804 0 7 2 35 2 2 10 9 45 2 0 referrerName==www.external.com.vn
mutantregistration.com 1 1 1 1 1 1 1 5 1 1 5 2 10 1 0 referrerName==mutantregistration.com
myotherreferrerwebsite.com 1 2 2 362 0 2 1 10 1 1 5 3 15 1 0 referrerName==myotherreferrerwebsite.com
myreferrerwebsite.com 1 1 1 1 1 1 1 5 1 1 5 2 10 1 0 referrerName==myreferrerwebsite.com
piwik.org 1 2 2 2 0 1 1 5 1 1 5 2 10 1 0 referrerName==piwik.org
sn110w.snt110.mail.live.com 1 2 2 2 0 1 1 5 1 1 5 2 10 1 0 referrerName==sn110w.snt110.mail.live.com
-whatever.com1 1 1 1 0 1 1 1 5 1 1 5 2 10 1 0 referrerName==whatever.com1
-whatever3.com 1 1 1 0 1 1 1 5 1 1 5 2 10 1 0 referrerName==whatever3.com \ No newline at end of file
+whatever.com1 1 1 1 1 1 1 1 5 1 1 5 2 10 1 0 referrerName==whatever.com1
+whatever3.com 1 1 1 1 1 1 1 5 1 1 5 2 10 1 0 referrerName==whatever3.com \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.xml.txt b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.xml.txt
index 583f4ad353..6584d81329 100644
--- a/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.xml.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_Referrers.getWebsites_exported.xml.txt
@@ -92,9 +92,9 @@
<bounce_count>6</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>8</nb_conversions>
+ <nb_conversions>14</nb_conversions>
<nb_visits_converted>8</nb_visits_converted>
- <revenue>40</revenue>
+ <revenue>70</revenue>
</row>
<row idgoal='2'>
<nb_conversions>8</nb_conversions>
@@ -102,8 +102,8 @@
<revenue>40</revenue>
</row>
</goals>
- <nb_conversions>16</nb_conversions>
- <revenue>80</revenue>
+ <nb_conversions>22</nb_conversions>
+ <revenue>110</revenue>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>5</idsubdatatable>
@@ -164,9 +164,9 @@
<bounce_count>6</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>8</nb_conversions>
+ <nb_conversions>14</nb_conversions>
<nb_visits_converted>8</nb_visits_converted>
- <revenue>40</revenue>
+ <revenue>70</revenue>
</row>
<row idgoal='2'>
<nb_conversions>8</nb_conversions>
@@ -174,8 +174,8 @@
<revenue>40</revenue>
</row>
</goals>
- <nb_conversions>16</nb_conversions>
- <revenue>80</revenue>
+ <nb_conversions>22</nb_conversions>
+ <revenue>110</revenue>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>6</idsubdatatable>
@@ -236,9 +236,9 @@
<bounce_count>6</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>8</nb_conversions>
+ <nb_conversions>14</nb_conversions>
<nb_visits_converted>8</nb_visits_converted>
- <revenue>40</revenue>
+ <revenue>70</revenue>
</row>
<row idgoal='2'>
<nb_conversions>8</nb_conversions>
@@ -246,8 +246,8 @@
<revenue>40</revenue>
</row>
</goals>
- <nb_conversions>16</nb_conversions>
- <revenue>80</revenue>
+ <nb_conversions>22</nb_conversions>
+ <revenue>110</revenue>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>7</idsubdatatable>
@@ -308,9 +308,9 @@
<bounce_count>7</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>7</nb_conversions>
+ <nb_conversions>14</nb_conversions>
<nb_visits_converted>7</nb_visits_converted>
- <revenue>35</revenue>
+ <revenue>70</revenue>
</row>
<row idgoal='2'>
<nb_conversions>7</nb_conversions>
@@ -318,8 +318,8 @@
<revenue>35</revenue>
</row>
</goals>
- <nb_conversions>14</nb_conversions>
- <revenue>70</revenue>
+ <nb_conversions>21</nb_conversions>
+ <revenue>105</revenue>
<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>14</idsubdatatable>
@@ -358,9 +358,9 @@
<bounce_count>6</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
+ <nb_conversions>12</nb_conversions>
<nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <revenue>60</revenue>
</row>
<row idgoal='2'>
<nb_conversions>6</nb_conversions>
@@ -368,8 +368,8 @@
<revenue>30</revenue>
</row>
</goals>
- <nb_conversions>12</nb_conversions>
- <revenue>60</revenue>
+ <nb_conversions>18</nb_conversions>
+ <revenue>90</revenue>
<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>15</idsubdatatable>
@@ -404,7 +404,7 @@
<nb_visits>4</nb_visits>
<nb_actions>4</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>4</sum_visit_length>
<bounce_count>4</bounce_count>
<goals>
<row idgoal='1'>
@@ -430,7 +430,7 @@
<nb_visits>2</nb_visits>
<nb_actions>2</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>2</sum_visit_length>
<bounce_count>2</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -441,7 +441,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -452,7 +452,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -469,9 +469,9 @@
<bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>4</nb_conversions>
+ <nb_conversions>6</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
- <revenue>20</revenue>
+ <revenue>30</revenue>
</row>
<row idgoal='2'>
<nb_conversions>2</nb_conversions>
@@ -479,8 +479,8 @@
<revenue>10</revenue>
</row>
</goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
+ <nb_conversions>8</nb_conversions>
+ <revenue>40</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<idsubdatatable>13</idsubdatatable>
@@ -515,7 +515,7 @@
<nb_visits>2</nb_visits>
<nb_actions>2</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>2</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -541,7 +541,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -552,7 +552,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -810,7 +810,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
@@ -836,7 +836,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
@@ -849,7 +849,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
@@ -875,7 +875,7 @@
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
+ <sum_visit_length>1</sum_visit_length>
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
diff --git a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.csv.txt b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.csv.txt
index 426c50f60a..69ceffe6fe 100644
--- a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.csv.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.csv.txt
@@ -1,2 +1,2 @@
Date,Visits,Actions,Visits with Conversions,Bounces,Total time spent by visitors (in seconds),Maximum actions in one visit,Bounce Rate,Actions per Visit,Avg. Visit Duration (in seconds)
-2012,311,658,245,216,96660,20,69%,2.1,5 min 11s \ No newline at end of file
+2012,311,708,245,166,96791,20,53%,2.3,5 min 11s \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.json.txt b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.json.txt
index 64edba23f9..57270a58c5 100644
--- a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.json.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.json.txt
@@ -1 +1 @@
-{"2008":[],"2009":[],"2010":[],"2011":[],"2012":{"nb_visits":311,"nb_actions":658,"nb_visits_converted":245,"bounce_count":216,"sum_visit_length":96660,"max_actions":20,"bounce_rate":"69%","nb_actions_per_visit":2.1,"avg_time_on_site":"5 min 11s"}} \ No newline at end of file
+{"2008":[],"2009":[],"2010":[],"2011":[],"2012":{"nb_visits":311,"nb_actions":708,"nb_visits_converted":245,"bounce_count":166,"sum_visit_length":96791,"max_actions":20,"bounce_rate":"53%","nb_actions_per_visit":2.3,"avg_time_on_site":"5 min 11s"}} \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.php.txt b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.php.txt
index 16e460b3dc..24fa5ca819 100644
--- a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.php.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.php.txt
@@ -1 +1 @@
-a:5:{i:2008;a:0:{}i:2009;a:0:{}i:2010;a:0:{}i:2011;a:0:{}i:2012;a:9:{s:9:"nb_visits";d:311;s:10:"nb_actions";d:658;s:19:"nb_visits_converted";d:245;s:12:"bounce_count";d:216;s:16:"sum_visit_length";d:96660;s:11:"max_actions";d:20;s:11:"bounce_rate";s:3:"69%";s:20:"nb_actions_per_visit";d:2.1000000000000001;s:16:"avg_time_on_site";s:9:"5 min 11s";}} \ No newline at end of file
+a:5:{i:2008;a:0:{}i:2009;a:0:{}i:2010;a:0:{}i:2011;a:0:{}i:2012;a:9:{s:9:"nb_visits";d:311;s:10:"nb_actions";d:708;s:19:"nb_visits_converted";d:245;s:12:"bounce_count";d:166;s:16:"sum_visit_length";d:96791;s:11:"max_actions";d:20;s:11:"bounce_rate";s:3:"53%";s:20:"nb_actions_per_visit";d:2.2999999999999998;s:16:"avg_time_on_site";s:9:"5 min 11s";}} \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.tsv.txt b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.tsv.txt
index 0c2636ea17..f459135492 100644
--- a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.tsv.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.tsv.txt
@@ -1,2 +1,2 @@
Date Visits Actions Visits with Conversions Bounces Total time spent by visitors (in seconds) Maximum actions in one visit Bounce Rate Actions per Visit Avg. Visit Duration (in seconds)
-2012 311 658 245 216 96660 20 69% 2.1 5 min 11s \ No newline at end of file
+2012 311 708 245 166 96791 20 53% 2.3 5 min 11s \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.xml.txt b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.xml.txt
index 11886a958a..73692aaf7a 100644
--- a/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.xml.txt
+++ b/tests/UI/expected-screenshots/ReportExporting_VisitsSummary.get_exported.xml.txt
@@ -6,13 +6,13 @@
<result date="2011" />
<result date="2012">
<nb_visits>311</nb_visits>
- <nb_actions>658</nb_actions>
+ <nb_actions>708</nb_actions>
<nb_visits_converted>245</nb_visits_converted>
- <bounce_count>216</bounce_count>
- <sum_visit_length>96660</sum_visit_length>
+ <bounce_count>166</bounce_count>
+ <sum_visit_length>96791</sum_visit_length>
<max_actions>20</max_actions>
- <bounce_rate>69%</bounce_rate>
- <nb_actions_per_visit>2.1</nb_actions_per_visit>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>2.3</nb_actions_per_visit>
<avg_time_on_site>5 min 11s</avg_time_on_site>
</result>
</results> \ No newline at end of file
diff --git a/tests/UI/expected-screenshots/RowEvolution_multirow_evolution.png b/tests/UI/expected-screenshots/RowEvolution_multirow_evolution.png
index 55dab56cb9..238d3abb12 100644
--- a/tests/UI/expected-screenshots/RowEvolution_multirow_evolution.png
+++ b/tests/UI/expected-screenshots/RowEvolution_multirow_evolution.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e2bbcd6da4cbc3e2e6a36b58b7df4fd3d3a200e350096083e8b5f66afed01f8d
-size 46401
+oid sha256:6157f5e2a1fa49dc39bc71b55fdd0e8f62434d1d875ced60749a3374452486af
+size 43036
diff --git a/tests/UI/expected-screenshots/RowEvolution_multirow_evolution_other_metric.png b/tests/UI/expected-screenshots/RowEvolution_multirow_evolution_other_metric.png
index 64f2e8f634..db475fe683 100644
--- a/tests/UI/expected-screenshots/RowEvolution_multirow_evolution_other_metric.png
+++ b/tests/UI/expected-screenshots/RowEvolution_multirow_evolution_other_metric.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9310b8c51c6a7a7fc5b3abf0ee6ea9f07e04764c80ee696555f2a368f0d470be
-size 49635
+oid sha256:d0377c6a40b7223dd057c6acffa43e15df00500119b816b57b122190878234a5
+size 46579
diff --git a/tests/UI/expected-screenshots/RowEvolution_row_evolution.png b/tests/UI/expected-screenshots/RowEvolution_row_evolution.png
index e670db2cac..20ce4b0398 100644
--- a/tests/UI/expected-screenshots/RowEvolution_row_evolution.png
+++ b/tests/UI/expected-screenshots/RowEvolution_row_evolution.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d99b7f903e34cc2abb9d2470adee75947b1fe889704c592b5d23fd041bd0bb2d
-size 67550
+oid sha256:b85dce720edcb2f66b17ce53690d086d9cf512a76010bdde56a9937572e3ea8d
+size 65675
diff --git a/tests/UI/expected-screenshots/RowEvolution_row_evolution_ecommerce_item.png b/tests/UI/expected-screenshots/RowEvolution_row_evolution_ecommerce_item.png
index 83b0ed683b..605ea99f85 100644
--- a/tests/UI/expected-screenshots/RowEvolution_row_evolution_ecommerce_item.png
+++ b/tests/UI/expected-screenshots/RowEvolution_row_evolution_ecommerce_item.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:193df02421ce7a703addd1e167b6b9a59d60b6ebfec706937dfce2c1a554408d
-size 77010
+oid sha256:cbf031e93b24236575f5d6ed7f72b7d4134d75c7b059a787a68e696ead3bbd97
+size 76232
diff --git a/tests/UI/expected-screenshots/RowEvolution_row_evolution_multiple_series.png b/tests/UI/expected-screenshots/RowEvolution_row_evolution_multiple_series.png
index 4b9add10a6..42cc49cb85 100644
--- a/tests/UI/expected-screenshots/RowEvolution_row_evolution_multiple_series.png
+++ b/tests/UI/expected-screenshots/RowEvolution_row_evolution_multiple_series.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:50bd68960c3b914830e79a77195eac3bcd623691d6a6da19eb22aa8c9f9c2a75
-size 69905
+oid sha256:7d846f267e63b212964aedfb751b63f966cf43dd99c5d7e45c023b5f59ca127f
+size 67975
diff --git a/tests/UI/expected-screenshots/RowEvolution_row_evolution_other_metric.png b/tests/UI/expected-screenshots/RowEvolution_row_evolution_other_metric.png
index bc93b5aadd..0d02df99cd 100644
--- a/tests/UI/expected-screenshots/RowEvolution_row_evolution_other_metric.png
+++ b/tests/UI/expected-screenshots/RowEvolution_row_evolution_other_metric.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:15d3c24aca3e96849cd3691f579c7997eb2c929e05f4b75663120e8b2b6991c9
-size 67872
+oid sha256:70f8d6b4c5aac1149b5a8bf5d56f6446d1eaa22854a626d0b96bf13c7d4ee47d
+size 66178
diff --git a/tests/UI/expected-screenshots/SiteSelector_expanded.png b/tests/UI/expected-screenshots/SiteSelector_expanded.png
index def901ac96..5bcbd6b1cb 100644
--- a/tests/UI/expected-screenshots/SiteSelector_expanded.png
+++ b/tests/UI/expected-screenshots/SiteSelector_expanded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8efe76c33df095ea60cc367a72fb39981a0b1af4ddf5ba8ef9f2d0c41a483ae3
-size 26104
+oid sha256:873d7864047fb9cb10d5656ae5da460b29ccbc3e6e059a56fb05647ebebb00b4
+size 23486
diff --git a/tests/UI/expected-screenshots/SiteSelector_loaded.png b/tests/UI/expected-screenshots/SiteSelector_loaded.png
index 3b80060415..2535aa3157 100644
--- a/tests/UI/expected-screenshots/SiteSelector_loaded.png
+++ b/tests/UI/expected-screenshots/SiteSelector_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:012e49a097f142d9a7a98f4f178a789bc2abdf7492362b2981b82e92c7b310a5
-size 3280
+oid sha256:f42ac7eb1e5cea3b7cbfc57300a52e4f6d707d0e5701d1703e6a90c4a38cf82c
+size 2783
diff --git a/tests/UI/expected-screenshots/SiteSelector_search_no_results.png b/tests/UI/expected-screenshots/SiteSelector_search_no_results.png
index d0b959f843..2769dca26e 100644
--- a/tests/UI/expected-screenshots/SiteSelector_search_no_results.png
+++ b/tests/UI/expected-screenshots/SiteSelector_search_no_results.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:29455fce6b4e5268c1433127a808199e357f419d7e07ca9ffd453e662923b066
-size 9026
+oid sha256:5bdbc16542f9e5d8053d34f7ff1911463eec4c7c665e71452be6a65f3e545e1c
+size 8165
diff --git a/tests/UI/expected-screenshots/SiteSelector_search_one_char.png b/tests/UI/expected-screenshots/SiteSelector_search_one_char.png
index c1c96a5cf7..532750ff71 100644
--- a/tests/UI/expected-screenshots/SiteSelector_search_one_char.png
+++ b/tests/UI/expected-screenshots/SiteSelector_search_one_char.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:10fcb2b8aef1425a1501682e02423b7dcc25d4c1b5bf6bca2650776a95a05c8e
-size 26221
+oid sha256:b583c42050aebf4ae78d3220b47772b22e2c50bf93d5b47d902ab45bfec47b1a
+size 23383
diff --git a/tests/UI/expected-screenshots/SiteSelector_search_two_chars.png b/tests/UI/expected-screenshots/SiteSelector_search_two_chars.png
index 8a89d89117..eb1d16586d 100644
--- a/tests/UI/expected-screenshots/SiteSelector_search_two_chars.png
+++ b/tests/UI/expected-screenshots/SiteSelector_search_two_chars.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c4c4dd5709fba61642211fe15a2ed3a52536248cb5e2704307956f3ff0316434
-size 10558
+oid sha256:aaa10c2bee246c07740febfeb946f979cf51d0d09f2da38402a26cda1000b549
+size 9558
diff --git a/tests/UI/expected-screenshots/SiteSelector_site_selected.png b/tests/UI/expected-screenshots/SiteSelector_site_selected.png
index ccd5ae336a..b8ed2164f5 100644
--- a/tests/UI/expected-screenshots/SiteSelector_site_selected.png
+++ b/tests/UI/expected-screenshots/SiteSelector_site_selected.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:552c97492067b16822b4d393d6c119bb779f808df544bf2f969e6414097c2a6e
-size 1821
+oid sha256:a811d721a14d1cad019b74821b7c4575dbd1df0b9f7c89a78804e482e5df1d3b
+size 1995
diff --git a/tests/UI/expected-screenshots/Theme_demo.png b/tests/UI/expected-screenshots/Theme_demo.png
index e8fd13b6cc..36ac968c5d 100644
--- a/tests/UI/expected-screenshots/Theme_demo.png
+++ b/tests/UI/expected-screenshots/Theme_demo.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:da785a8718dfcda24e8d5e1e4fc086bfb4b653b62aea32ec3354dc1d07e74a2f
-size 1512516
+oid sha256:21be65625afcdff34a3119b51797264447c552c497c1d508c91b2a6191c08783
+size 1424712
diff --git a/tests/UI/expected-screenshots/Theme_home.png b/tests/UI/expected-screenshots/Theme_home.png
index bd9b16f21e..fa840fd333 100644
--- a/tests/UI/expected-screenshots/Theme_home.png
+++ b/tests/UI/expected-screenshots/Theme_home.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2f2a03520c21dda38ea56170a4227ea2d5dd0fba9f31101974e0648b8afe36ef
-size 656233
+oid sha256:c925d84afb157032778a3d34e2328f9737c56744559dddbebfa3e41956476017
+size 652024
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_name_piece.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_name_piece.png
index c5b36fe268..96de793518 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_name_piece.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_name_piece.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b7fc18ec9bef1ede33fb6c10d7608ec45d040710cd04f91930b939892bfbf74f
-size 46800
+oid sha256:c95b095d28ba6c357b6439430c0d3fd0ec86cbc980365f3a6567506ccf4d3a48
+size 40566
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece.png
index 6cc356307c..8562975341 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e269ff6211eff04fdabf714afc63d80fe909e72b4880500876f0c98630246be2
-size 38091
+oid sha256:9bf7c09518992d54290fdb03b845ba27c3f9d3f0ed2705b85ab5e20b03cb88db
+size 38979
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece_name.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece_name.png
index 878558a928..ee4a26cc8e 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece_name.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_content_piece_name.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6f7b2d58df8a7ccad27f08ea419c96e3be1afc8ceb33b4915a23c4223daa1e1a
-size 51872
+oid sha256:96a2206b8510f40b87a36c3b18c3239f86861532910656e0929151f3905fea9e
+size 47259
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_contents.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_contents.png
index 00b839776a..8011d5ee1f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_contents.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_contents.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5d01312bcd516f479da7770fb51648cf7a573cc6970ec02804ca1a2953697f0b
-size 27049
+oid sha256:ba03566e1d5fdb9b5199383ea2dffaad74c14641e6e5436c75169021ff9f3b98
+size 27507
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_downloads.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_downloads.png
index b131eb6b47..7c12094694 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_downloads.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_downloads.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:af26d328cfa65d9833c929d6cd9d437c2f181ee9b8eb477631cbb2ebf835278f
-size 36286
+oid sha256:cee6c0d6160c5023ade4eb2b33c264ccd8ed457d4b83d9c63695e19d7e47cebd
+size 34491
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_entry_pages.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_entry_pages.png
index e54e7aac66..4e1e283291 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_entry_pages.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_entry_pages.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:881e50b41d0a8d0201d5569afd361d2fd58f7a8de2860f3d6a6b6b730ce730db
-size 188745
+oid sha256:a1ebb1c2657703d786a5d6054e07bb13b72a92fa0fd30ca60ed64f53aeba54c8
+size 182085
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_exit_pages.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_exit_pages.png
index 533180f19d..051ceb2b5f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_exit_pages.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_exit_pages.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:42a7bd1ce6679d3f6f442262a3b276afa145ea32bc4562ee875cc720a370dbec
-size 187710
+oid sha256:4245499945fd2199dc4b1dd37e1cade472416cfe8786576ffb15a47d5f8da162
+size 180486
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_outlinks.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_outlinks.png
index 0fbc91ae6c..5e8e425d68 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_outlinks.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_outlinks.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e8f52a39cced749aaffa20bcbad6e8986f273838ec4a9ba280b044e45a156a0a
-size 40790
+oid sha256:c46ad17369f0861667b8d7833589a2622a660c1b161bdad82848013e669ffac2
+size 40538
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_page_titles.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_page_titles.png
index 04dabef50f..3e3f5494b3 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_page_titles.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_page_titles.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:acbb01e071e1f7a75b3df8db52b3e30e6ff040313beacdab9235443bf54daea3
-size 441133
+oid sha256:1b3b4209633be8818601b970ed7f95a20f3b9bad6bf9db62292dc42a08ea94e8
+size 431899
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages.png
index 2a091c0b3a..02ae92c8ea 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1b196d07f3adcebf9a6471aa78e2f59ba3a566b4721c6204e11d3d0b73f0d22d
-size 320839
+oid sha256:65db1f4d0163a18d2fede4b8dd84f54955378d15810100ae534d983839a033c0
+size 316406
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages_tooltip_help.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages_tooltip_help.png
index 2a091c0b3a..310634a9ef 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages_tooltip_help.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_pages_tooltip_help.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1b196d07f3adcebf9a6471aa78e2f59ba3a566b4721c6204e11d3d0b73f0d22d
-size 320839
+oid sha256:b72fb32dbfda729691f79b44d9e2dbbc89dfd3e6aba2d4753ec0cb131b0d9e80
+size 318032
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_actions_site_search.png b/tests/UI/expected-screenshots/UIIntegrationTest_actions_site_search.png
index e9bcb7beb6..977621e81f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_actions_site_search.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_actions_site_search.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e4730e97586a33a79bb02a0c3db2338f9f3b7955e332c7878409cc0154a824e1
-size 101106
+oid sha256:dedf222fea90ccf69dbeae0c7f2ed5274ebdbfa5fa595f4c90ab2f3befbda960
+size 105583
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
index 7e8c6b6ae0..940eac0360 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_diagnostics_configfile.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:78017e70372b4f4752cae5c72452667afdec8ecd788759b24f5bb8161a1c9da6
-size 4269790
+oid sha256:cc2e4b1c736b7d872d30d0dbf66679893544969968d6ea015bffe6cd826a794e
+size 4273908
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png
index db694a7402..905c0c2aea 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_home.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:47340b3da78384a1d6dc6ab5fcf58ac2a2e1e2f84d8c0d8db14ed6257ca7999c
-size 148131
+oid sha256:3b2dcd3101d286afbade8aa12c495708c6e81432e189a1d3be07de13743b79d5
+size 141435
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_tracking_code.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_tracking_code.png
index 91aa01eb1d..50a8b6050f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_tracking_code.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_tracking_code.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:007bf8f6ce60c6ba3a176081e4296a3844ad00405e56e6a46d35b84ea6db4cd8
-size 396043
+oid sha256:c630ad2c7a780764fde9aa200edb08661d89a1d4593f0ded7066a01f1f1c7c2c
+size 439048
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_websites.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_websites.png
index 7e025adaf1..e2a62dd8dd 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_websites.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_manage_websites.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4e94da24208d2a51f73d7af8acf73f9fe5b1402a480fec96c18a3ae62001f5ad
-size 203722
+oid sha256:853b7ff2c5592ba859bec2da925646759bf262cb8529198c676fc2bc8a07bf22
+size 204216
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
index 612bfea992..0ef3a41769 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2bb862fef02ff96bf95daf4c3075f1186362d514af1e9f4fabe7f5e40fd3ba04
-size 1079656
+oid sha256:ed3b87834ae61f375378eae1e2c54fff18480e675eb380b965e5b09c607a0fc2
+size 1057109
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
index 17cb258221..50342c2078 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_plugins_no_internet.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:80e3ab4351bb8ca147948cd7df0411625d73167a3b60bfb78693aaae813950b2
-size 1081368
+oid sha256:1bca2928a49fef1a1fc2d05eac59f35459e833abee2ed2cd48f7451f2aaad4f6
+size 1057598
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
index 065a48ac19..ba53e56ea0 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_general.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0766ddf41affb5c22ad653a4bd364dc374ba0b70421fdad8622393d7025cd590
-size 1085586
+oid sha256:fcf94c1308cf8665f2d6e07bb42cb33f65df6869a892eb2912abc26440470074
+size 1076338
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png
index 2249a64d33..b04d40c5d1 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:85c03a29fb16b0dd21fbc99b1605bcd4699ce7db8c4aa33f7adc199c1db886ff
-size 150854
+oid sha256:e0b0c84afdf7336ef7d3f570a7f52ab561f713cf61a438d553873d25cac6a3f6
+size 149282
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png
index 2249a64d33..902a0dd7d6 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_settings_mobilemessaging_provider.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:85c03a29fb16b0dd21fbc99b1605bcd4699ce7db8c4aa33f7adc199c1db886ff
-size 150854
+oid sha256:31409a9930cfd0d170d25b71e9659901e20f88c6e0bfcab8ad47148a92fbc1e9
+size 121006
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_themes.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_themes.png
index ec987b5d11..1f60c8eb20 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_themes.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_themes.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0963c72dfcb59625820c8fa5cdbb7836e8b2b4b1df220bb2f7c3e1d2728155c5
-size 82837
+oid sha256:587fadcb1266a299fb8dbe74f3596ee204cadbd6f1055879a20b938077cb0cad
+size 78770
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings.png
index 6450eb72ab..2f4248be31 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0e792a7998ffa08eb10f3f1bd51f7948912e9e7d6838ddb417f920c86fe4d5d1
-size 268596
+oid sha256:38d72ef489a1ad10895905131ab5a8911131a25b74440420a0db1ea3391170ae
+size 261978
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_asks_confirmation.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_asks_confirmation.png
index 876a87376f..9463f3d49a 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_asks_confirmation.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_asks_confirmation.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b7e1c86b865ba52667266f0270062e6da2f1124d1d65f7d67c3ef2215a97f10e
-size 15724
+oid sha256:4a7d52fd49c0ec3236a9f30599d30ca50df02faabd60d7fee95cb03565b69863
+size 15729
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_wrong_password_confirmed.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_wrong_password_confirmed.png
index 9d03ea6b34..59aee17129 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_wrong_password_confirmed.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_user_settings_wrong_password_confirmed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c6327ed36b6553d1c07052896105c4e75ad834e150a194f9b13d784a653748d5
-size 5941
+oid sha256:d553f29ce6bf59c9368d9496286bbfc720ecab6125560fe3fbf36051b9622bf1
+size 6092
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_admin_visitor_generator.png b/tests/UI/expected-screenshots/UIIntegrationTest_admin_visitor_generator.png
index 2647fa92b8..f85ba2169f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_admin_visitor_generator.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_admin_visitor_generator.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:dea16fac8003ec99f73b53295480d2001948cb337a2ded48fbb5711a4a78a048
-size 88830
+oid sha256:8e2203a5663a533f7fd54d370e32f9b350ac7774525965bd338acb7afbba18ac
+size 85536
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_api_error.png b/tests/UI/expected-screenshots/UIIntegrationTest_api_error.png
index db694a7402..905c0c2aea 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_api_error.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_api_error.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:47340b3da78384a1d6dc6ab5fcf58ac2a2e1e2f84d8c0d8db14ed6257ca7999c
-size 148131
+oid sha256:3b2dcd3101d286afbade8aa12c495708c6e81432e189a1d3be07de13743b79d5
+size 141435
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
index 28b3b15ec9..2c93fe73ed 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_api_listing.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5627259a1bc8aa935de6e29c53d2450eeb8ff62b357c7ec49d1f139f58d42b65
-size 5057367
+oid sha256:42b762437323bdd584d2f9a5cdeb2eeeb70af5b7093c270687f0409fe2e77035
+size 4878901
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_customdirplugin.png b/tests/UI/expected-screenshots/UIIntegrationTest_customdirplugin.png
index 7809e57f21..a0e7964a05 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_customdirplugin.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_customdirplugin.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4e5cf38c4abbfc04c5d1de2903bc4a242db8e9a6a8c7be2bf2fd99d24f89808e
-size 66157
+oid sha256:f7e3d676889e1c4e3d72b8d3f197372f18e418f6d68e675349c4b0455eaccc88
+size 62874
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png
index d478b69700..7a70865659 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard1.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ce9152942f597f46307475768575a6cbee4e05f08ebfc684e2c76a46f86317c0
-size 602883
+oid sha256:c851c4d914f5cff85e73e0577e182e8eeff3831f4591b08ab1055be500295a27
+size 579977
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png
index ebb1ee4d52..645dc34307 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:dba3b4a3b29937e9c3b783da5c406278870deede396a20cdd9a6f745b709d165
-size 1590854
+oid sha256:e5c513415e7ffea318e53c8d1d189733c3434d55cdf0b5cb415e24994c46acc0
+size 1566416
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard3.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard3.png
index f50ef45357..7ab4114db8 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard3.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard3.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1ddccc11542e9addbcea3f2a819d85389167f86870b823304d43555a7be6bcba
-size 707326
+oid sha256:cfcf7f4ffa9af0512e8935a5671572b1566550d670c1de8b2b0c97042586aae8
+size 727133
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard4.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard4.png
index 94843d3526..8a24cc845f 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard4.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard4.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:892eb366524040fb451c7ca3e400508dbba22201877c8f82d61e1a335c2d5aa1
-size 275202
+oid sha256:bb1912badb248c67a603e86e19bfb483651a96e080154d3c86ee300ee0c6e4fe
+size 266704
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard5_mobile.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard5_mobile.png
index 53fe191bfa..14f4206175 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard5_mobile.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard5_mobile.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e280d6033c1062fb333409e0c80cfe2f35550f19e1b48de51c89136af924a95b
-size 28935
+oid sha256:f692abcf5d8fbf331105c2a29506b1bfb83fce55b4ca09be3be83aa91b46ed35
+size 27275
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_db_connect_error.png b/tests/UI/expected-screenshots/UIIntegrationTest_db_connect_error.png
index da1c2c40d4..91392fd3ca 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_db_connect_error.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_db_connect_error.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:35216dfeb8ce36cbce0aa5759a77b23c18679c92e817f7081e6304f71c9a41f7
-size 78959
+oid sha256:268eef0a92303dc23d540fb08e6269aeecbdf7f0b619948ab8cbcba277a608c5
+size 75340
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png
index 5d5cbf5e70..f784e5af5a 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:383d57f20943ea1006f19ad5773f31494787b2d97f1e075b248d3c2164440d2c
-size 494487
+oid sha256:905b60a089474464b8e1a4979acc476780f584c4a509887807db72bfd8e17266
+size 498193
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log_segmented.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log_segmented.png
index 6aa277f71b..e5b2f3f317 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log_segmented.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_log_segmented.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:18162caf48d86b923c0aa22c427657fbb665ed12bb4167df6d52a2f8fcfe3c8d
-size 63275
+oid sha256:8574a9654655a70ff6876dd25358ea4ce9f8941e69e261419ba25c47c12911b8
+size 61285
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_overview.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_overview.png
index f6e37e75d3..dcac5fa44b 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_overview.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a40faee10b623697c110ac7f05b64a2afaf641455013edcad9c822a29b4807f1
-size 73847
+oid sha256:c7ffe82129d6f0fa15cb101efd4e9c2ce66d177db49e2223a509f34ab85213bb
+size 75221
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_products.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_products.png
index a90e2fa2ff..4d1d64eda2 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_products.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_products.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e238adb800bce9ece15ddb4bc8582798f10c212ff34e2b719b7163aa5b4f61c3
-size 48660
+oid sha256:14e1fa49d59ccc8d6dc6e8e3f1e77d387ecbd023d56036bfd79a652b410759dc
+size 49448
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_sales.png b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_sales.png
index 9331620494..2681a9516b 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_sales.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_ecommerce_sales.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:12bee15c3477663d3fe31a4bcb1cf0cd4179ea7e12a8ab08139ef22b0f72b6f5
-size 88903
+oid sha256:bb8643c374f24b55fcf1d8442999bdfc076d3db19b8c2a56500e01af5cf1f4f4
+size 89412
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_email_reports.png b/tests/UI/expected-screenshots/UIIntegrationTest_email_reports.png
index 9a3e799476..891a3a4e34 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_email_reports.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_email_reports.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4dcb35c8b4f7f30a60b049a0771012b0369388f27302c88c4122a4306008be4e
-size 93677
+oid sha256:c34182c5fb8803e8772395f96b8fc31a16cb4b1e796438e82a241f2661fc76c3
+size 93055
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_email_reports_editor.png b/tests/UI/expected-screenshots/UIIntegrationTest_email_reports_editor.png
index 7619c7b19b..fa52d2017a 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_email_reports_editor.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_email_reports_editor.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9fd6233c7686dd9081a913533fa133a6f8cb3e82d29c75966b2e203d55c3ade3
-size 430059
+oid sha256:a5cb44c0889c518cdbe263c24dc4d47dabcf481940f8f69511a5e3a0b4cb7721
+size 424507
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_events_overview.png b/tests/UI/expected-screenshots/UIIntegrationTest_events_overview.png
index 3fa769393d..a211320386 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_events_overview.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_events_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1b0e84fbf3022f46b200e3c0727b056644bb9e187fb856d5f799201d3386b20d
-size 86255
+oid sha256:6dc810c0d35d777fe8601c30da92c43a31106c8d686fef5151bd53ae7f942943
+size 83118
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_barGraph.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_barGraph.png
index f4ffb36684..ea7c84a9ba 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_barGraph.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_barGraph.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cdab7162455161c992a6d39a3ac10bab3b6560213a4ae4957920730048a93581
-size 16903
+oid sha256:0d55291c7d8cf37ad47f4c3329a3f36300c23760d06dfa963ff6fe4600d19a63
+size 15580
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_dataTables.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_dataTables.png
index db33af1d29..2c3e23104c 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_dataTables.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_dataTables.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:900744442ad7baa1ae8a871515abe73132052a35558299c92509fbb037886c1f
-size 37621
+oid sha256:4cbb5777ebd7da26523ce7663c7e2ee6fd6b85d90680ccebc9f7beb8c146c035
+size 36493
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_evolutionGraph.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_evolutionGraph.png
index dfb28b7467..14e37392ed 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_evolutionGraph.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_evolutionGraph.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:03d2279753625d04cd6e3ef320fca3f6b9a278e96e76f1496450374986e5ea27
-size 22992
+oid sha256:756c436509fbb9b2fe61b3705f79d66adf68809f04c1c6276aa4878709083558
+size 21507
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_pieGraph.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_pieGraph.png
index 604d93fdb4..8aaf80c433 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_pieGraph.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_pieGraph.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5cebe4123d7cf1eebea99248a642287195d9ccc620831dd80b6812295fec7003
-size 26642
+oid sha256:1aca1cef221811cfd70991dd00a3fc960f2b3bf24296457aa78a1cec826b45bb
+size 26151
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_sparklines.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_sparklines.png
index 4094729cfc..c0d523237e 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_sparklines.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_sparklines.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cdb45d0ce934a2be324bb20636a926b854f3cf808686c1d559320bc6ef454c27
-size 17770
+oid sha256:431fd25f574e8a265e25ca8bb3a09e3ea35e96288abc718632d73642518ba4f8
+size 18361
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_tagClouds.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_tagClouds.png
index 471852a448..cca09fc759 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_tagClouds.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_tagClouds.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cc4e683a66414a13ed15e5522544f018a1235ddcba077268d859a547a92f36d9
-size 63634
+oid sha256:be84d38f99a0cfa8d60b4368d4ad096e508fb58b031c1be944d49107c0b7346d
+size 63783
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_treemap.png b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_treemap.png
index b92fa80cfc..88cac62fcd 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_treemap.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_exampleui_treemap.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5ac61dd404983a19e96ddc039c6ab187c16ce8d05dcd9a7de08250fd6bc176e6
-size 17567
+oid sha256:3ae6be63dfceb9c3952eb311e0202af18c558a16158aee25c8beeb605edf12ac
+size 17601
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png b/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png
index c3779e6ac1..046bb17c1a 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_fatal_error_safemode.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:204573e81aa9a39a5cffdacc90e49b6f71735fdd1dec9bc6fa20a77b68525edd
-size 208738
+oid sha256:0a5eba38f47cd9d523abd1846521a6399df041b8eb68ba5c0172be37ba531577
+size 167356
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_feedback_form.png b/tests/UI/expected-screenshots/UIIntegrationTest_feedback_form.png
index 7a0c61bef9..c4d86319d6 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_feedback_form.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_feedback_form.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:fed9896828e628c51bbbabae78d97424f2fdd53218a18d27fe6595f77eb569ff
-size 229263
+oid sha256:e45f06cb30eed4155838fc15cf096a0fb3ef02d6561077d947fbedf11c5a9014
+size 222597
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png b/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
index 4474578b56..9381a85918 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_glossary.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0b40629bc683179902fd06b51eae8d0a1db4dd1e189a12e797108c036688355d
-size 513033
+oid sha256:042d031f74ae7e30ad432a3187a792fce5143a1965548e67adaf8bb7720aebd8
+size 489386
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png b/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
index 45a591c217..650353bd9d 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_glossary_widgetized.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:66279da048c5358b4bd4e0f1b58a4624a79aad80d2e544da040f3a40cd98414d
-size 652547
+oid sha256:ea2a7c77f2b015549fc68d86952e5d49af37f33a2b862564fe8d58b27037026f
+size 604827
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_ecommerce.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_ecommerce.png
index f6e37e75d3..dcac5fa44b 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_ecommerce.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_ecommerce.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a40faee10b623697c110ac7f05b64a2afaf641455013edcad9c822a29b4807f1
-size 73847
+oid sha256:c7ffe82129d6f0fa15cb101efd4e9c2ce66d177db49e2223a509f34ab85213bb
+size 75221
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal.png
index baad68112d..d0090617c4 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b070a4e3ccfbfdfc1628e809933ed5968a1caec2d0eeab450e52edee9dc2c23b
-size 198440
+oid sha256:549469ec4cafe7acc4f8df82e54d5887603212759b926f6f2d11c7f0bd95c2cf
+size 193758
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal_updated.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal_updated.png
index d3c523dcc5..c618a1c4f0 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal_updated.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_goal_updated.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:33fab082897400c4d3d8283142f0a9841a2c1881bc847f251d812619322161c3
-size 199337
+oid sha256:8e0aa49d1875a15596c2b3feb8640bd5964208b371f3d9356edd4aa99814c9af
+size 194452
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_row_evolution.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_row_evolution.png
index 2000eb3802..d8c7045357 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_row_evolution.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_individual_row_evolution.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:41e043abb7f45b1c1c2ea7cec006e7d0eb18358d14c1e360fba4b9979d672c40
-size 65522
+oid sha256:d1fad083c61f25182b78149d320770981f9e45a79552796591ecc527cc0a36dc
+size 63529
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_manage.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_manage.png
index 3ea308dffa..850675422d 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_manage.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_manage.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f1133c43f58d26fa068a4f1a41247906985923744d9e0f0566f61320be97af2c
-size 53697
+oid sha256:304448c8edde3397ed30c4e679c805099b3a8cb1fa619267268881463831d7da
+size 51894
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_goals_overview.png b/tests/UI/expected-screenshots/UIIntegrationTest_goals_overview.png
index e766ad2bba..c8bbe8b085 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_goals_overview.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_goals_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:505e05631f715723b7306808c865274e084332fba0b4be75dc8eb2e8e78d495c
-size 203754
+oid sha256:a343cbe1a8920c04ac45ab33f3d1320541896ba42a7d02ecc58db265598663ab
+size 157537
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
index 98f2d23f6a..b913856dfc 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:522a940f36fdc825f916cbb353781cf864540be1e1b0910f05303e5bf1a9cb0c
-size 36669
+oid sha256:8fcf2f271ecafceb43e7a0f6d959f980f39a88bb5b27e030d98328f43fb55b6c
+size 35569
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite_superuser.png b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite_superuser.png
index 296d213404..dcdb65d55c 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite_superuser.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_invalid_idsite_superuser.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:020d9e991493a037e5233251d364b32004f35d57cd97c69917a91ecdd962cd40
-size 41924
+oid sha256:78c94bf3a1d1a83ddabf8fe876eb1fee7dba463a7e6e0441db8e8bb5e9fd57ee
+size 38693
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_metric_tooltip.png b/tests/UI/expected-screenshots/UIIntegrationTest_metric_tooltip.png
index c6f43fe3ae..775b2ba227 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_metric_tooltip.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_metric_tooltip.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:af8141b2b4f3c1b579b84ecd10c7d804febd28d3893feaba117e33fd0602496f
-size 167450
+oid sha256:66c77fc46d7b00eba4d1a1f3ca0f9931180bb6b6215dfb88aef3d231ad9cf735
+size 8881
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_notifications.png b/tests/UI/expected-screenshots/UIIntegrationTest_notifications.png
index a9eed6a229..be59ce8ea6 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_notifications.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_notifications.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ab3fe37d22e60c3df5d79539bea2867da91de5c5df6d4f60108253ab7a19a83d
-size 47862
+oid sha256:d7b01a34fb23a69aabe15436581ea94abe48c5570cfb852e0f196d245bd1890b
+size 47731
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_period_select_date_range_click.png b/tests/UI/expected-screenshots/UIIntegrationTest_period_select_date_range_click.png
index 1bddc64179..a269325c64 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_period_select_date_range_click.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_period_select_date_range_click.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a2b2e8a4d2595e049ed11918e3656a915c1b91463379fc7d3c89198b38177ddc
-size 79569
+oid sha256:6c866d16b4caac6026eee2ea64c45459070d98e070231563e4449f447e9036a3
+size 75822
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_allreferrers.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_allreferrers.png
index 64dcf72874..3eccb55079 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_allreferrers.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_allreferrers.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9d9f4faa7f3ce6b3942baf82edc179d4faa232319a187c10ce90dbee009039c2
-size 147849
+oid sha256:40b6e1801464b9bd979de1bd8660fac2c027a9ddad4bec0877d2f25035d2bd81
+size 141068
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_campaigns.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_campaigns.png
index c0c6ad3674..20f39ad21a 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_campaigns.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_campaigns.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:28620728d3cf48a1b7f97d03330364b77a65ea7fbe0f2a93f62ffa5ee557d2cd
-size 70012
+oid sha256:3719ff52fb80a18b97a24e34827cd01f9e37e81e3ae47a97d89340404a51afac
+size 68946
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_overview.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_overview.png
index d4b8fa8f85..724abcd1dc 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_overview.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:59481d429cbc1cd3c83a00f0c9779cbcabcec9d0884157726b23b94e3f93dd94
-size 61667
+oid sha256:df8057a423b900dbb3d20e56c74a15307dbddaa7703408c57c631b4bbcc79fb8
+size 62620
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_search_engines_keywords.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_search_engines_keywords.png
index bdbfc1aafc..ee324361f1 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_search_engines_keywords.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_search_engines_keywords.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9146c737df4c7cc377240a1d49274daea56b60f10ff61340ac91b69730b7525a
-size 104013
+oid sha256:c71bb4f20bc66130635b1fe99ed45cd5946054ce9ee69b49ae26266c95ccdf85
+size 102988
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_socials.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_socials.png
index fa7a211559..435abe9125 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_socials.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_socials.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8fb49ec9cc4e8beae9f63031bd9b9ab9ff246746c8e4193cb64f38da2979ca7b
-size 13658
+oid sha256:9c4a54213d0033449f585e2ee56107c7b8f1808f66373eb2d12bc32b99593bee
+size 13748
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_websites.png b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_websites.png
index 0862f381ad..3e146608f6 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_referrers_websites.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_referrers_websites.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:99bbe69edf1958d2114d3b7067102eadb4cc6dede862845f9d8358f5c5fc3eb4
-size 81128
+oid sha256:d1a84d480f8afde9b6ede77f8f13c2a2c3964cf8d711c2fea51f199dba1e271e
+size 79926
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png b/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png
index 6cad0f62a0..56add88adf 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_segmented_visitorlog.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:89354b1ab2f72c9bb5f54b8b1aba8c2b696d1f499be4a10ec85bd9879bcd49ac
-size 446558
+oid sha256:41e553f61f0c3552bf83a31663095e46827890b84eff36859ce6faa8c5e5106b
+size 446436
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_shortcuts.png b/tests/UI/expected-screenshots/UIIntegrationTest_shortcuts.png
index d2e55fb7e2..c42dce0ba4 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_shortcuts.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_shortcuts.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c8050f327d00fac7f8cea90f81ab80bd28dc667798baf96d2b8142c34955cfde
-size 35295
+oid sha256:d1d6e02c8ececae9a2b137aebb6a556bdb99fd9f3698ebda0222315a071505c0
+size 33333
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_not_segmented.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_not_segmented.png
index e039dfd1ff..ef87c00540 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_not_segmented.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_not_segmented.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5f5d739ebb23695b9a205c9d965ee705ec9f6807c4d35973ee6ddb6de368edc3
-size 765265
+oid sha256:2e240d1c2db0c0d6f4025e4eb4c310a10a1b2f7e0b367c4a204513f1e1619fbe
+size 567640
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png
index 018d8dee9d..4473347626 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitor_profile_popup.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:88a11b82b2367fbfa580946522564a816464242cb499cdc7d3c0591e6e4d628d
-size 189273
+oid sha256:2631c0534f83f2fcdd160561ce6366105b1e0c81476ecd509b3f6efd9af337af
+size 186036
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_custom_vars.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_custom_vars.png
index 70a91dc19f..b5d33c3fe6 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_custom_vars.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_custom_vars.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:cdb2aad124f15678238491a6cbb295b79f8743da30242a3ee50400221574573d
-size 61135
+oid sha256:9ba4cc5344276febc85680c5d36281a9c5e33bf7595f148d5cd92a4baa336b1f
+size 58421
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png
index 3abc4dfedf..4eabce9aa1 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:738b8d8eaadbe1a80b2c180f36376cf893278db2b042f2b25f15a538f3793dac
-size 86747
+oid sha256:b28ced503b4ae7ee388fd6bbcb5af3a77f11ca793071fb5551b0b074340e5d90
+size 84146
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_engagement.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_engagement.png
index 1c0af3dad8..3fc06b2147 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_engagement.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_engagement.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0e0ef239befd81c937f9cd0c43a89a4aacb4b5f705334a79561ad9cfcd2b21e7
-size 146360
+oid sha256:270129e4b5661c28508a1fcc879fc9f45f6d9f3aed04a1886dd9c4bb79e8ca89
+size 150511
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_locations_provider.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_locations_provider.png
index f3629f556b..4df8fd915c 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_locations_provider.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_locations_provider.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d310f82c3f3f0ebf88b1311c9dc8a7f8e336a4f9f7a720e24d57291c9be2ff2a
-size 167674
+oid sha256:bdc0cdcf3a5a7e7ce721100badcf201a67addb7fb5b61fe6213390fc4802b4cb
+size 167581
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview.png
index 9c65668773..b839e801a9 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:96451d72e51b76a0cea3565918d22f0ac52d259c9a48f5f95235f8ed1bc802ad
-size 73319
+oid sha256:d69c05c2462c3992781d440b11e7c6a0befe3e8b14c7a5a2dac61d0a5bb184fd
+size 69887
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview_segment.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview_segment.png
index 248cc7eb6f..f0e9afec9d 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview_segment.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_overview_segment.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:48382770e7288491db4953118d8a2f37787d019b00364e829cb649a6f8aa9d22
-size 113456
+oid sha256:21e9dba4acbf67e7c8e0ce713d716cab229baa2b2a28fad4164e42f718302597
+size 107497
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_map.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_map.png
index fe753bfd14..f1fe6a03a3 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_map.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_map.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:525e387bf59440a8a015dca0d0a573e6003f6516c6f476b24d4efc976a593f6a
-size 114885
+oid sha256:0eb2886f4fdc10f17284148a95408286c3646789e2e538c9410b09346ce7f416
+size 104966
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_visits.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_visits.png
index 8708315b36..83a802b0b0 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_visits.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_realtime_visits.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:f92ad6b24dbbbc3ea3808ccf6ad65c8cb28004cb8e0f5aed286820d6e0b9d3eb
-size 19127
+oid sha256:a8558b9d3d246af742fc3db6ab46bc2c6ee76d7328521f467b04ba0e94f30db5
+size 18342
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_software.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_software.png
index e1b024a6c2..1f8aa7a564 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_software.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_software.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a755537387f46a6d7d118109b4d8a6e7807699ab9ced8abe9d1fe3c0fc151b0b
-size 158977
+oid sha256:596eb8b24a7eb67f888e941b9d61fae97c5a474e8fc4b1d5ba598757ee493e9b
+size 152867
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_times.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_times.png
index 4053544e53..23cf1be488 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_times.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_times.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:653b04411f5064af10accc1cdf881232516253134778303efc2ca9ae175f7ceb
-size 24607
+oid sha256:289229c59aa0734fb3f1bd1cb9c837e9288bd5946b0f7c2ed64c4a3a8ae996f4
+size 23241
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_allwebsites.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_allwebsites.png
index ca6ca13b0f..89bb954766 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_allwebsites.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_allwebsites.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:de0c39108b500540ae57030faf5669be036baf338bb85f3d89c95fe6651cfcba
-size 68808
+oid sha256:3520dabb49bf34506cc96cafab284043d50fcfed8b581248547da423976d7e87
+size 68918
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_apidisallowed.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_apidisallowed.png
index 1cdde0ad27..ea652b02bd 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_apidisallowed.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_apidisallowed.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ac0da2611eaec4e2cacdb4a2bc7f4b465b5da17146fb24721bd3c8d7866afbc2
-size 54396
+oid sha256:7db0e680b36348461abf9187a14a04aa292890c7e749b7db31541b0ce66325aa
+size 52245
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png
index a8e6b70cd9..a012430744 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_ecommercelog.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b814880b59ac3891e7f4f9cbce617d53806d628fa3784c429dbb7d408d2cfadb
-size 473261
+oid sha256:89236a7f4b1c7bab33b001d3754653a1b8b1acedce29a14b7143fc1c99ba770b
+size 481167
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png
index 2ba11dd33c..2fd96a890e 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgetize_visitor_log.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:49fb51978d24de41fb68abc61cd973a03897a7ad9c71bab94422cba63c1baaa9
-size 378876
+oid sha256:f97d721481e3fcf056f933bf06b9d926dec01a8469bd1a8aceaf1aa8bdbbb593
+size 365498
diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_widgets_listing.png b/tests/UI/expected-screenshots/UIIntegrationTest_widgets_listing.png
index 90abc3d991..ce292a4742 100644
--- a/tests/UI/expected-screenshots/UIIntegrationTest_widgets_listing.png
+++ b/tests/UI/expected-screenshots/UIIntegrationTest_widgets_listing.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0834258d77430eda295bed70b565bcc1b439167d76ffde7f7864ff23ddac4746
-size 191507
+oid sha256:7253a2df52ea2f7e47b2202de8240fee445847f710ac8d32797aab4d4058c54d
+size 186160
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_0_initial.png b/tests/UI/expected-screenshots/ViewDataTableTest_0_initial.png
index 1092e40960..f71fa3cd9c 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_0_initial.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_0_initial.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0f89b9e6d9b3ca2f4082f9ee9305edffe8aa892a1ded86c09771cd13966bcb07
-size 44062
+oid sha256:26d8579658e85692cb7e3a4f7ede7b8c180a6c2c463e88142c26a2ce4c131cfe
+size 45012
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_10_change_limit.png b/tests/UI/expected-screenshots/ViewDataTableTest_10_change_limit.png
index 2abaca18f8..20f76420b5 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_10_change_limit.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_10_change_limit.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:545f87e903f9e66119bc2763a4debff6dde4e8a03b88cc7eb87171bd1b7c5907
-size 58438
+oid sha256:b72dbf23fb5aceb8430c30b414cf4aa960e47b89a78933d88568841864d96403
+size 59266
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_11_flattened.png b/tests/UI/expected-screenshots/ViewDataTableTest_11_flattened.png
index 35ed7314cc..ad53dc56d6 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_11_flattened.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_11_flattened.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:24026e46da3ed42945cd07bdabd340edbb4264ac67ed22d4d569b5686b319877
-size 66616
+oid sha256:e62863bace998ad9a0ab526c1dd27bbbc4c61f04142207ba5100144e46fa6ed1
+size 69050
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png b/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png
index c5d79bfd35..8dd6e37851 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_12_aggregate_shown.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:91929906808cfa3ff745a9f6c7cf3d19caec45e4ba7f91fb6c5ab316b0b3d500
-size 70970
+oid sha256:16f66746af8ecf30ca0bf6438de3b90b7124316726636ed0aacc51125e2441f4
+size 72586
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_13_make_hierarchical.png b/tests/UI/expected-screenshots/ViewDataTableTest_13_make_hierarchical.png
index 2abaca18f8..20f76420b5 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_13_make_hierarchical.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_13_make_hierarchical.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:545f87e903f9e66119bc2763a4debff6dde4e8a03b88cc7eb87171bd1b7c5907
-size 58438
+oid sha256:b72dbf23fb5aceb8430c30b414cf4aa960e47b89a78933d88568841864d96403
+size 59266
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_14_visits_percent.png b/tests/UI/expected-screenshots/ViewDataTableTest_14_visits_percent.png
index 79857ccb8e..05019b7327 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_14_visits_percent.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_14_visits_percent.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:572a0188b54828e44a78e6d959355ff9ff512c65261a7cbb87fd05efc09f969b
-size 65369
+oid sha256:abebfff48661f4f39b3248e6bc4428678b4c25235a1f9d00653dfeaaec6812ab
+size 66108
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_15_search.png b/tests/UI/expected-screenshots/ViewDataTableTest_15_search.png
index 6667494b73..6ce68291a0 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_15_search.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_15_search.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4b9c34684315ae6a933b4822468f6cc1f5a05ccf3e7d40550617c381665811f0
-size 44226
+oid sha256:355aa686b40227c899f2b90657ab6bff2b896e86177e34fbf345533d3d1aa022
+size 45113
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_1_all_columns.png b/tests/UI/expected-screenshots/ViewDataTableTest_1_all_columns.png
index f4e8e5f2b9..54347abd7d 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_1_all_columns.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_1_all_columns.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:6f534b41ac5c68bb08afed6d47a322a75d522e379b9ca2c4d0cc5eb27b87bb9c
-size 54423
+oid sha256:bb01220b2059f68b79e0b792e28a03b17076c7e44bb34d9f41a7fe0f55933b5d
+size 54829
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_2_column_sorted_desc.png b/tests/UI/expected-screenshots/ViewDataTableTest_2_column_sorted_desc.png
index d0c4bae352..833a83436c 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_2_column_sorted_desc.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_2_column_sorted_desc.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:690d0fdedf4580d1a8805bca27e5403c74309e48548b933d1ace6794d31890b8
-size 60364
+oid sha256:6c6ea3030ce3d318c7c1ead5e19676f4bd948e4f326e2fd54791619b817ba629
+size 60883
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_3_column_sorted_asc.png b/tests/UI/expected-screenshots/ViewDataTableTest_3_column_sorted_asc.png
index 4d4bf5b1db..174b3bc426 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_3_column_sorted_asc.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_3_column_sorted_asc.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c00becd8a452c9dac546184df312130f54d3c0ebbf552f0d42d0eea1d0ae87c4
-size 50688
+oid sha256:47bc0446660244adcfc640c8c46cb77d4691704421e6dec8afa35d5fa108b72d
+size 50932
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_5_goals.png b/tests/UI/expected-screenshots/ViewDataTableTest_5_goals.png
index ccf9eae6ad..13ddecc4cf 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_5_goals.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_5_goals.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b4dafefd623904a1cfad1de27e313a51a49a673f7196ae7f3e89d21c1c86d9b6
-size 63477
+oid sha256:51bdc30d7bdfc162ea10d5bb720dd8ec443d2061699eb89a9d74be6ec0de7d03
+size 64334
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_5_visualizations.png b/tests/UI/expected-screenshots/ViewDataTableTest_5_visualizations.png
index 581f09e5bd..44a4509a26 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_5_visualizations.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_5_visualizations.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b20438eef7d1b5d1cbf5122e29027ee92bd2c2eaf47eddd065da2f9276d9f961
-size 24620
+oid sha256:6b737638cd7b23d7fe23c43973b9b7b4eb14954a648df255803647714c900a5d
+size 23830
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_6_bar_graph.png b/tests/UI/expected-screenshots/ViewDataTableTest_6_bar_graph.png
index 60be9fbba6..6a404f77cc 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_6_bar_graph.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_6_bar_graph.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c2a840afaafbc0c4319ca79d521a9e7a327add5c2b93dc1b7447aa5db23e3018
-size 33653
+oid sha256:f019e0dab710448af149183fe9d6b3c90d0d52364da8777e9926ab15f72f66ac
+size 33706
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_7_pie_graph.png b/tests/UI/expected-screenshots/ViewDataTableTest_7_pie_graph.png
index c4d706f0be..0a9cd33abc 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_7_pie_graph.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_7_pie_graph.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2c85f5dfaadeb6f8516e8d6fb76021fbf7d8e29b60b094030809d8e755070c51
-size 49825
+oid sha256:2654837f5716ccf9656bf3db6f8671795d57be0dc3dfa227ff038fa48813ad53
+size 49583
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_8_tag_cloud.png b/tests/UI/expected-screenshots/ViewDataTableTest_8_tag_cloud.png
index 021bef3f43..2889190323 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_8_tag_cloud.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_8_tag_cloud.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d42267752b3e1ea03e7e31cc714b78ef6deefa32fbd78f07991d17ae9419e93a
-size 87571
+oid sha256:c54e8395d1bb89097d68052f925045f7119b0e7682e5cfac3c2408c082e73edb
+size 82694
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_9_normal_table.png b/tests/UI/expected-screenshots/ViewDataTableTest_9_normal_table.png
index 0662b31df6..1ef8cf4a7a 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_9_normal_table.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_9_normal_table.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5d4b594e837ed381ce418886f4b7586a34cb0972d5bdef42aefdd72ef025d5a0
-size 83118
+oid sha256:b819719a77766731c28945534b9fc3eaca7ba8fd1256de44a2257fa6f04abd7a
+size 82871
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_exclude_low_population.png b/tests/UI/expected-screenshots/ViewDataTableTest_exclude_low_population.png
index 94ec97e380..c446aa4190 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_exclude_low_population.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_exclude_low_population.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b7e67dff3aee4de684160ee724b0da7a1e837be2e7ee696bf550f28f32ba1c0e
-size 39550
+oid sha256:bc1bb0d75e4be50dd773b249695a2315ce006750fada9674a7d72938720e76b7
+size 39998
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_export_options.png b/tests/UI/expected-screenshots/ViewDataTableTest_export_options.png
index 4a495993e6..c15d6099ef 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_export_options.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_export_options.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1b168b6318a6c2b966d1eb0621a8076ce5452cce6b93009694ede73682aca3d8
-size 40114
+oid sha256:3e233764f8e93d5f353c4903646e07d519ac125bb38ceff809acf0df7db9dfdc
+size 38889
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_limit_selector_open.png b/tests/UI/expected-screenshots/ViewDataTableTest_limit_selector_open.png
index 9dd6eefd9a..45c137a20d 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_limit_selector_open.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_limit_selector_open.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2062c4275e9eb35757fcac44457deb47b0b8f2185569fbe9e35bc49c9cfef2d1
-size 86995
+oid sha256:969866ba1f0b563e86d1f7630e3b4cb6c5e230803a0524c10da204b69b422d3c
+size 87439
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_related_report_click.png b/tests/UI/expected-screenshots/ViewDataTableTest_related_report_click.png
index 21299002c3..1a180aab82 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_related_report_click.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_related_report_click.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d85147d823f1e0236e8e2fe8686730993b1a3936a13ffd185bb6f2efc2f8186a
-size 39594
+oid sha256:99dbfd2953362319036d2da2b6d79a96d62f4b2c0d3693f990c614470a3e13fb
+size 38493
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_subtables_loaded.png b/tests/UI/expected-screenshots/ViewDataTableTest_subtables_loaded.png
index c8f620dc90..db2d5412af 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_subtables_loaded.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_subtables_loaded.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:52ef79b8a5938ae9890016fd6acc4b9f4e349677aef65807c613c02d2fb5916c
-size 71179
+oid sha256:f00e112e577e92fba4155f3cb7f0c951c77b0a1c9d5bf3b265580195c62e172b
+size 73281
diff --git a/tests/UI/expected-screenshots/ViewDataTableTest_totals_row.png b/tests/UI/expected-screenshots/ViewDataTableTest_totals_row.png
index d0fbaab042..dab5dd981e 100644
--- a/tests/UI/expected-screenshots/ViewDataTableTest_totals_row.png
+++ b/tests/UI/expected-screenshots/ViewDataTableTest_totals_row.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:03877be90f1dc487da181790e57b9c41b9bd7aa29499e905fc928ee922b7c0b1
-size 45652
+oid sha256:7c7945ce7660ea22d87551570a18bba876701b8e5f6e8ac32fbbaee28d393716
+size 46137
diff --git a/tests/UI/expected-screenshots/enable_framed_pages_embed_whole_app.png b/tests/UI/expected-screenshots/enable_framed_pages_embed_whole_app.png
index c1c81108bf..6444526564 100644
--- a/tests/UI/expected-screenshots/enable_framed_pages_embed_whole_app.png
+++ b/tests/UI/expected-screenshots/enable_framed_pages_embed_whole_app.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9fc1cddf78d5b15fc7f99903cf21ec2895df08aec5f6ed6fde803e854f2717ce
-size 676580
+oid sha256:d4c021e32d569ddc3f74bae41d6cbfae307588b31d9579f711547dbe456d0673
+size 141848
diff --git a/tests/UI/specs/BarGraph_spec.js b/tests/UI/specs/BarGraph_spec.js
index 3f0b8d3810..7b1e8ff54c 100644
--- a/tests/UI/specs/BarGraph_spec.js
+++ b/tests/UI/specs/BarGraph_spec.js
@@ -8,8 +8,6 @@
*/
describe("BarGraph", function () {
- this.timeout(0);
-
var tokenAuth = "9ad1de7f8b329ab919d854c556f860c1", // md5('superUserLogin' . md5('superUserPass'))
url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
+ "actionToWidgetize=getKeywords&viewDataTable=graphVerticalBar&isFooterExpandedInDashboard=1&"
@@ -21,21 +19,22 @@ describe("BarGraph", function () {
testEnvironment.save();
});
- it("should load correctly", function (done) {
- expect.screenshot("load").to.be.capture(function (page) {
- page.load(url);
- }, done);
+ it("should load correctly", async function () {
+ await page.goto(url);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('load');
});
- it("should display the metric picker on hover of metric picker icon", function (done) {
- expect.screenshot('metric_picker_shown').to.be.capture(function (page) {
- page.mouseMove('.jqplot-seriespicker');
- }, done);
+ it("should display the metric picker on hover of metric picker icon", async function () {
+ await page.hover('.jqplot-seriespicker');
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('metric_picker_shown');
});
- it("should display multiple metrics when another metric picked", function (done) {
- expect.screenshot('other_metric').to.be.capture(function (page) {
- page.click('.jqplot-seriespicker-popover input:not(:checked):first + label');
- }, done);
+ it("should display multiple metrics when another metric picked", async function () {
+ await page.waitForSelector('.jqplot-seriespicker-popover input');
+ var element = await page.jQuery('.jqplot-seriespicker-popover input:not(:checked):first + label');
+ await element.click();
+ await page.waitForNetworkIdle();
+ await page.waitFor(500);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('other_metric');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/EmptySite_spec.js b/tests/UI/specs/EmptySite_spec.js
index b4978ebd20..410dbe18f7 100644
--- a/tests/UI/specs/EmptySite_spec.js
+++ b/tests/UI/specs/EmptySite_spec.js
@@ -8,22 +8,22 @@
*/
describe("EmptySite", function () {
- this.timeout(0);
+ const generalParams = 'idSite=4&period=day&date=2010-01-03';
- var generalParams = 'idSite=4&period=day&date=2010-01-03';
+ it('should show the tracking code if the website has no recorded data', async function () {
+ const urlToTest = "?" + generalParams + "&module=CoreHome&action=index";
+ await page.goto(urlToTest);
- it('should show the tracking code if the website has no recorded data', function (done) {
- var urlToTest = "?" + generalParams + "&module=CoreHome&action=index";
-
- expect.screenshot('emptySiteDashboard').to.be.captureSelector('.page', function (page) {
- page.load(urlToTest);
- }, done);
+ const pageElement = await page.$('.page');
+ expect(await pageElement.screenshot()).to.matchImage('emptySiteDashboard');
});
- it('should be possible to ignore this screen for one hour', function (done) {
- expect.screenshot('emptySiteDashboard_ignored').to.be.captureSelector('.page', function (page) {
- page.click('.ignoreSitesWithoutData');
- page.wait(1000)
- }, done);
+ it('should be possible to ignore this screen for one hour', async function () {
+ await page.click('.ignoreSitesWithoutData');
+ await page.waitFor('.widget');
+ await page.waitForNetworkIdle();
+
+ const pageElement = await page.$('.page');
+ expect(await pageElement.screenshot()).to.matchImage('emptySiteDashboard_ignored');
});
});
diff --git a/tests/UI/specs/EvolutionGraph_spec.js b/tests/UI/specs/EvolutionGraph_spec.js
index 22ff5c6226..1c294da1cf 100644
--- a/tests/UI/specs/EvolutionGraph_spec.js
+++ b/tests/UI/specs/EvolutionGraph_spec.js
@@ -8,172 +8,203 @@
*/
describe("EvolutionGraph", function () {
- this.timeout(0);
+ const url = "?module=Widgetize&action=iframe&idSite=1&period=day&date=2012-01-31&evolution_day_last_n=30"
+ + "&moduleToWidgetize=UserCountry&actionToWidgetize=getCountry&viewDataTable=graphEvolution"
+ + "&isFooterExpandedInDashboard=1";
- var url = "?module=Widgetize&action=iframe&idSite=1&period=day&date=2012-01-31&evolution_day_last_n=30"
- + "&moduleToWidgetize=UserCountry&actionToWidgetize=getCountry&viewDataTable=graphEvolution"
- + "&isFooterExpandedInDashboard=1";
-
- before(function (done) {
- testEnvironment.callApi("Annotations.deleteAll", {idSite: 3}, done);
+ before(function () {
+ return testEnvironment.callApi("Annotations.deleteAll", {idSite: 3});
});
- function showDataTableFooter(page)
- {
- page.mouseMove('.dataTableFeatures');
+ async function showDataTableFooter() {
+ await page.hover('.dataTableFeatures');
}
- it("should load correctly", function (done) {
- expect.screenshot('initial').to.be.capture(function (page) {
- page.load(url);
- }, done);
+ it("should load correctly", async function () {
+ await page.goto(url);
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('initial');
+ });
+
+ it("should show percent metrics like bounce rate correctly", async function () {
+ await page.goto(url + "&columns=nb_visits,bounce_rate,avg_time_on_site&filter_add_columns_when_show_all_columns=0");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('bounce_rate');
});
- it("should show percent metrics like bounce rate correctly", function (done) {
- expect.screenshot('bounce_rate').to.be.capture(function (page) {
- page.load(url + "&columns=nb_visits,bounce_rate,avg_time_on_site&filter_add_columns_when_show_all_columns=0");
- }, done);
+ it("should show only one series when a label is specified", async function () {
+ await page.goto(url + "&label=Canada");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('one_series');
});
- it("should show only one series when a label is specified", function (done) {
- expect.screenshot('one_series').to.be.capture(function (page) {
- page.load(url + "&label=Canada");
- }, done);
+ it("should display the metric picker on hover of metric picker icon", async function () {
+ await page.hover('.jqplot-seriespicker');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('metric_picker_shown');
});
- it("should display the metric picker on hover of metric picker icon", function (done) {
- expect.screenshot('metric_picker_shown').to.be.capture(function (page) {
- page.mouseMove('.jqplot-seriespicker');
- }, done);
+ it("should show multiple metrics when another metric picked", async function () {
+ await page.waitForSelector('.jqplot-seriespicker-popover input');
+ const element = await page.jQuery('.jqplot-seriespicker-popover input:not(:checked):first + label');
+ await element.click();
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('two_metrics');
});
- it("should show multiple metrics when another metric picked", function (done) {
- expect.screenshot('two_metrics').to.be.capture(function (page) {
- page.click('.jqplot-seriespicker-popover input:not(:checked):first + label');
- }, done);
+ it("should show table actions on hover", async function () {
+ await showDataTableFooter();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('table_actions');
});
- it("should show table actions on hover", function (done) {
- expect.screenshot('table_actions').to.be.capture(function (page) {
- showDataTableFooter(page);
- }, done);
+ it("should show graph as image when export as image icon clicked", async function () {
+ await page.click('#dataTableFooterExportAsImageIcon');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('export_image');
});
- it("should show graph as image when export as image icon clicked", function (done) {
- expect.screenshot('export_image').to.be.captureSelector('.ui-dialog', function (page) {
- page.click('#dataTableFooterExportAsImageIcon');
- }, done);
- }) ;
+ it("should display more periods when limit selection changed", async function () {
+ const element = await page.jQuery('.ui-dialog .ui-widget-header button:visible');
+ await element.click();
+
+ await showDataTableFooter();
+ await page.click('.limitSelection input');
+ await page.evaluate(function () {
+ $('.limitSelection ul li:contains(60) span').click();
+ });
+ await page.waitForNetworkIdle();
- it("should display more periods when limit selection changed", function (done) {
- expect.screenshot('limit_changed').to.be.capture(function (page) {
- page.click('.ui-dialog .ui-widget-header button:visible');
- showDataTableFooter(page);
- page.click('.limitSelection input');
- page.evaluate(function () {
- $('.limitSelection ul li:contains(60) span').click();
- });
- }, done);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('limit_changed');
});
// annotations tests
- it("should show annotations when annotation icon on x-axis clicked", function (done) {
- expect.screenshot('annotations_single_period').to.be.capture(function (page) {
- showDataTableFooter(page);
- page.click('.limitSelection input');
- page.evaluate(function () {
- $('.limitSelection ul li:contains(30) span').click(); // change limit back
- });
-
- page.click('.evolution-annotations>span[data-count!=0]', 3000);
- }, done);
- });
-
- it("should show all annotations when annotations footer link clicked", function (done) {
- expect.screenshot('annotations_all').to.be.capture(function (page) {
- showDataTableFooter(page);
- page.click('.annotationView', 3000);
- }, done);
- });
-
- it("should show no annotations message when no annotations for site", function (done) {
- expect.screenshot('annotations_none').to.be.capture(function (page) {
- page.load(page.getCurrentUrl().replace(/idSite=[^&]*/, "idSite=3") + "&columns=nb_visits");
- showDataTableFooter(page);
- page.click('.annotationView', 3000);
- }, done);
- });
-
- it("should show add annotation form when create annotation clicked", function (done) {
- expect.screenshot('new_annotation_form').to.be.capture(function (page) {
- page.click('.add-annotation');
- page.click('.annotation-period-edit>a');
- page.evaluate(function () {
- $('.datepicker').datepicker("setDate", new Date(2012,0,02) );
- $(".ui-datepicker-current-day").trigger("click"); // this triggers onSelect event which sets .annotation-period-edit>a
- });
- }, done);
- });
-
- it("should add new annotation when create annotation submitted", function (done) {
- expect.screenshot('new_annotation_submit').to.be.capture(function (page) {
- page.sendKeys('.new-annotation-edit', 'new annotation');
- page.click('.annotation-period-edit>a');
- page.evaluate(function () {
- $('.ui-datepicker-calendar td a:contains(15)').click();
- });
- page.click('.annotation-list-range');
- page.click('input.new-annotation-save', 3000);
- }, done);
- });
-
- it("should star annotation when star image clicked", function (done) {
- expect.screenshot('annotation_starred').to.be.capture(function (page) {
- page.click('.annotation-star');
- }, done);
- });
-
- it("should show edit annotation form", function (done) {
- expect.screenshot('annotation_edit_form').to.be.capture(function (page) {
- page.click('.edit-annotation');
- }, done);
- });
-
- it("should edit annotation when edit form submitted", function (done) {
- expect.screenshot('annotation_edit_submit').to.be.capture(function (page) {
- page.sendKeys('.annotation-edit', 'edited annotation');
- page.click('.annotation-period-edit>a');
- page.evaluate(function () {
- $('.annotation-meta .ui-datepicker-calendar td a:contains(16)').click();
- });
- page.click('.annotation-list-range');
- page.click('input.annotation-save', 3000);
- }, done);
- });
-
- it("should delete annotation when delete link clicked", function (done) {
- expect.screenshot('annotation_delete').to.be.capture(function (page) {
- page.click('.edit-annotation');
- page.click('.delete-annotation');
- }, done);
- });
-
- it("should cutout two labels so all can fit on screen", function (done) {
- expect.screenshot('label_ticks_cutout').to.be.capture(function (page) {
- page.setViewportSize(320,320);
- page.load(url.replace(/idSite=[^&]*/, "idSite=3") + "&columns=nb_visits");
- }, done);
- });
-
- it("should show available periods", function (done) {
- expect.screenshot('periods_list').to.be.capture(function (page) {
- showDataTableFooter(page);
- page.click('.activatePeriodsSelection');
- }, done);
- });
- it("should be possible to change period", function (done) {
- expect.screenshot('periods_selected').to.be.capture(function (page) {
- page.click('.dataTablePeriods [data-period=month]');
- }, done);
+ it("should show annotations when annotation icon on x-axis clicked", async function () {
+ await showDataTableFooter();
+ await page.click('.limitSelection input');
+ await page.evaluate(function () {
+ $('.limitSelection ul li:contains(30) span').click(); // change limit back
+ });
+ await page.waitForNetworkIdle();
+
+ const element = await page.jQuery('.evolution-annotations>span[data-count!=0]');
+ await element.click();
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotations_single_period');
+ });
+
+ it("should show all annotations when annotations footer link clicked", async function () { // TODO: fails
+ await showDataTableFooter();
+ await page.click('.annotationView');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotations_all');
+ });
+
+ it("should show no annotations message when no annotations for site", async function () {
+ await page.goto(page.url().replace(/idSite=[^&]*/, "idSite=3") + "&columns=nb_visits");
+ await showDataTableFooter();
+ await page.click('.annotationView');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotations_none');
+ });
+
+ it("should show add annotation form when create annotation clicked", async function () {
+ await page.click('.add-annotation');
+ await page.click('.annotation-period-edit>a');
+ await page.evaluate(function () {
+ $('.datepicker').datepicker("setDate", new Date(2012,0,2) );
+ $(".ui-datepicker-current-day").trigger("click"); // this triggers onSelect event which sets .annotation-period-edit>a
+ });
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('new_annotation_form');
+ });
+
+ it("should add new annotation when create annotation submitted", async function () {
+ await page.focus('.new-annotation-edit');
+ await page.keyboard.type('new annotation');
+ await page.click('.annotation-period-edit>a');
+ await page.evaluate(function () {
+ $('.ui-datepicker-calendar td a:contains(15)').click();
+ });
+ await page.waitForNetworkIdle();
+ await page.click('.annotation-list-range');
+ await page.click('input.new-annotation-save');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('new_annotation_submit');
+ });
+
+ it("should star annotation when star image clicked", async function () {
+ await page.click('.annotation-star');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotation_starred');
+ });
+
+ it("should show edit annotation form", async function () {
+ await page.click('.edit-annotation');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotation_edit_form');
+ });
+
+ it("should edit annotation when edit form submitted", async function () {
+ await page.focus('.annotation-edit');
+ await page.keyboard.type('edited annotation');
+ await page.click('.annotation-period-edit>a');
+ await page.evaluate(function () {
+ $('.annotation-meta .ui-datepicker-calendar td a:contains(16)').click();
+ });
+ await page.waitForNetworkIdle();
+ await page.click('.annotation-list-range');
+ await page.click('input.annotation-save');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotation_edit_submit');
+ });
+
+ it("should delete annotation when delete link clicked", async function () {
+ await page.click('.edit-annotation');
+ await page.waitForFunction("$('.delete-annotation:visible').length > 0");
+ await page.evaluate(function () {
+ $('.delete-annotation').click();
+ });
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('annotations_none');
+ });
+
+ it("should cutout two labels so all can fit on screen", async function () {
+ await page.webpage.setViewport({ width: 320, height: 320 });
+ await page.goto(url.replace(/idSite=[^&]*/, "idSite=3") + "&columns=nb_visits");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('label_ticks_cutout');
+ });
+
+ it("should show available periods", async function () {
+ await page.webpage.setViewport({
+ width: 1350,
+ height: 768,
+ });
+ await page.reload();
+ await showDataTableFooter();
+ await page.click('.activatePeriodsSelection');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('periods_list');
+ });
+
+ it("should be possible to change period", async function () {
+ await page.click('.dataTablePeriods [data-period=month]');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('periods_selected');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/GoalsTable_spec.js b/tests/UI/specs/GoalsTable_spec.js
index 58f37969e0..687ff6df9d 100644
--- a/tests/UI/specs/GoalsTable_spec.js
+++ b/tests/UI/specs/GoalsTable_spec.js
@@ -8,51 +8,51 @@
*/
describe("GoalsTable", function () {
- this.timeout(0);
+ const url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
+ + "actionToWidgetize=getKeywords&viewDataTable=table&filter_limit=5&isFooterExpandedInDashboard=1";
- var url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
- + "actionToWidgetize=getKeywords&viewDataTable=table&filter_limit=5&isFooterExpandedInDashboard=1";
+ it("should load when the goals icon is clicked", async function () {
+ await page.goto(url);
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=tableGoals]');
+ await page.waitForNetworkIdle();
- it("should load when the goals icon is clicked", function (done) {
- expect.screenshot('initial').to.be.capture(function (page) {
- page.load(url);
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=tableGoals]');
- }, done);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('initial');
});
- it("should show columns for all goals when idGoal is 0", function (done) {
- expect.screenshot('goals_table_full').to.be.capture(function (page) {
- var url = page.getCurrentUrl().replace(/viewDataTable=[^&]*/, "viewDataTable=tableGoals") + "&idGoal=0";
- page.load(url);
- }, done);
+ it("should show columns for all goals when idGoal is 0", async function () {
+ const allGoalsUrl = page.url().replace(/viewDataTable=[^&]*/, "viewDataTable=tableGoals") + "&idGoal=0";
+ await page.goto(allGoalsUrl);
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('goals_table_full');
});
- it("should show columns for a single goal when idGoal is 1", function (done) {
- expect.screenshot('goals_table_single').to.be.capture(function (page) {
- page.load(page.getCurrentUrl().replace(/idGoal=[^&]*/, "idGoal=1"));
- }, done);
+ it("should show columns for a single goal when idGoal is 1", async function () {
+ await page.goto(page.url().replace(/idGoal=[^&]*/, "idGoal=1"));
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('goals_table_single');
});
- it("should show an ecommerce view when idGoal is ecommerceOrder", function (done) {
- expect.screenshot('goals_table_ecommerce').to.be.capture(function (page) {
- page.load(page.getCurrentUrl().replace(/idGoal=[^&]*/, "idGoal=ecommerceOrder"));
- }, done);
+ it("should show an ecommerce view when idGoal is ecommerceOrder", async function () {
+ await page.goto(page.url().replace(/idGoal=[^&]*/, "idGoal=ecommerceOrder"));
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('goals_table_ecommerce');
});
- it("should show a special view when idGoal is ecommerceOrder and viewDataTable is ecommerceOrder", function (done) {
- expect.screenshot('goals_table_ecommerce_view').to.be.capture(function (page) {
- var url = page.getCurrentUrl().replace(/moduleToWidgetize=[^&]*/, "moduleToWidgetize=Goals")
- .replace(/actionToWidgetize=[^&]*/, "actionToWidgetize=getItemsSku")
- .replace(/viewDataTable=[^&]*/, "viewDataTable=ecommerceOrder");
- page.load(url);
- }, done);
+ it("should show a special view when idGoal is ecommerceOrder and viewDataTable is ecommerceOrder", async function () {
+ const ecommerceUrl = page.url().replace(/moduleToWidgetize=[^&]*/, "moduleToWidgetize=Goals")
+ .replace(/actionToWidgetize=[^&]*/, "actionToWidgetize=getItemsSku")
+ .replace(/viewDataTable=[^&]*/, "viewDataTable=ecommerceOrder");
+
+ await page.goto(ecommerceUrl);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('goals_table_ecommerce_view');
});
- it("should show abandoned carts data when the abandoned carts link is clicked", function (done) {
- expect.screenshot('goals_table_abandoned_carts').to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=ecommerceAbandonedCart]');
- }, done);
+ it("should show abandoned carts data when the abandoned carts link is clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=ecommerceAbandonedCart]');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('goals_table_abandoned_carts');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/MeasurableManager_spec.js b/tests/UI/specs/MeasurableManager_spec.js
index 74c1c1f97f..4c40e2f3ce 100644
--- a/tests/UI/specs/MeasurableManager_spec.js
+++ b/tests/UI/specs/MeasurableManager_spec.js
@@ -8,49 +8,51 @@
*/
describe("MeasurableManager", function () {
- this.timeout(0);
this.fixture = "Piwik\\Plugins\\SitesManager\\tests\\Fixtures\\ManySites";
- var url = "?module=SitesManager&action=index&idSite=1&period=day&date=yesterday&showaddsite=false";
+ const url = "?module=SitesManager&action=index&idSite=1&period=day&date=yesterday&showaddsite=false";
before(function () {
testEnvironment.pluginsToLoad = ['MobileAppMeasurable'];
-
testEnvironment.save();
});
- function assertScreenshotEquals(screenshotName, done, test)
- {
- expect.screenshot(screenshotName).to.be.captureSelector('.sitesManagerList,.sitesButtonBar,.sites-manager-header,.ui-dialog.ui-widget,.modal.open', test, done);
+ async function assertScreenshotEquals(screenshotName, selector) {
+ const element = await page.jQuery(selector);
+ expect(await element.screenshot()).to.matchImage(screenshotName);
}
- it("should load correctly and should not use SitesManager wording as another type is enabled", function (done) {
- assertScreenshotEquals("loaded", done, function (page) {
- page.load(url);
- });
+ it("should load correctly and should not use SitesManager wording as another type is enabled", async function () {
+ await page.goto(url);
+ await assertScreenshotEquals("loaded", '#content.admin');
});
- it("should use measurable wording in menu", function (done) {
- var selector = '#secondNavBar li:contains(Manage):first';
- expect.screenshot('measurable_menu_item').to.be.captureSelector(selector, function (page) {
-
- }, done);
+ it("should use measurable wording in menu", async function () {
+ const element = await page.jQuery('#secondNavBar li:contains(Manage):first');
+ expect(await element.screenshot()).to.matchImage('measurable_menu_item');
});
- it("should show selection of available types when adding a type", function (done) {
- assertScreenshotEquals("add_new_dialog", done, function (page) {
- page.click('.SitesManager .addSite:first');
- });
+ // '.sitesManagerList,.sitesButtonBar,.sites-manager-header,.ui-dialog.ui-widget,.modal.open'
+ it("should show selection of available types when adding a type", async function () {
+ const element = await page.jQuery('.SitesManager .addSite:first');
+ await element.click();
+ await page.waitFor('.modal.open');
+ await page.waitFor(350); // wait for modal animation
+ await assertScreenshotEquals("add_new_dialog", '.modal.open');
});
- it("should load mobile app specific fields", function (done) {
- assertScreenshotEquals("add_measurable_view", done, function (page) {
- page.click('.modal.open .btn:contains(Mobile App)');
- page.evaluate(function () {
- $('.form-help:contains(UTC time is)').hide();
- });
- page.wait(250);
+ it("should load mobile app specific fields", async function () {
+ const element = await page.jQuery('.modal.open .btn:contains(Mobile App)');
+ await element.click();
+
+ await page.waitFor('input.btn[value=Save]');
+ await page.waitForNetworkIdle();
+ await page.evaluate(function () {
+ $('.form-help:contains(UTC time is)').hide();
});
+ await page.waitFor(250);
+
+ await assertScreenshotEquals("add_measurable_view", '#content.admin');
});
});
diff --git a/tests/UI/specs/Menus_spec.js b/tests/UI/specs/Menus_spec.js
index 8376b49ff0..49a4904bbc 100644
--- a/tests/UI/specs/Menus_spec.js
+++ b/tests/UI/specs/Menus_spec.js
@@ -8,59 +8,67 @@
*/
describe("Menus", function () {
- this.timeout(0);
-
this.fixture = "Piwik\\Tests\\Fixtures\\ThreeGoalsOnePageview";
- var generalParams = 'idSite=1&period=year&date=2009-01-04',
- urlBase = 'module=CoreHome&action=index&' + generalParams
- ;
+ const generalParams = 'idSite=1&period=year&date=2009-01-04',
+ urlBase = 'module=CoreHome&action=index&' + generalParams;
- function openMenuItem(page, menuItem)
- {
- page.click('#secondNavBar .navbar a:contains('+ menuItem + '):first');
+ async function openMenuItem(page, menuItem) {
+ const element = await page.jQuery('#secondNavBar .navbar a:contains(' + menuItem + '):first');
+ await element.click();
}
// main menu tests
- it('should load the main reporting menu correctly', function (done) {
- expect.screenshot('mainmenu_loaded').to.be.captureSelector('#secondNavBar', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
- }, done);
+ it('should load the main reporting menu correctly', async function() {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
+ await page.waitFor('#secondNavBar');
+
+ const element = await page.jQuery('#secondNavBar');
+ expect(await element.screenshot()).to.matchImage('mainmenu_loaded');
});
- it('should change the menu when a upper menu item is clicked in the main menu', function (done) {
- expect.screenshot('mainmenu_upper_clicked').to.be.captureSelector('#secondNavBar', function (page) {
- openMenuItem(page, 'Visitors');
- }, done);
+ it('should change the menu when a upper menu item is clicked in the main menu', async function() {
+ await openMenuItem(page, 'Visitors');
+
+ const element = await page.jQuery('#secondNavBar');
+ expect(await element.screenshot()).to.matchImage('mainmenu_upper_clicked');
});
- it('should change the menu when a lower menu item is clicked in the main menu', function (done) {
- expect.screenshot('mainmenu_lower_clicked').to.be.captureSelector('#secondNavBar', function (page) {
- openMenuItem(page, 'Custom Variables');
- }, done);
+ it('should change the menu when a lower menu item is clicked in the main menu', async function() {
+ await openMenuItem(page, 'Custom Variables');
+
+ const element = await page.jQuery('#secondNavBar');
+ expect(await element.screenshot()).to.matchImage('mainmenu_lower_clicked');
});
// admin menu tests
- it('should load the admin reporting menu correctly', function (done) {
- expect.screenshot('admin_loaded').to.be.captureSelector('#secondNavBar', function (page) {
- page.load("?" + generalParams + "&module=CoreAdminHome&action=generalSettings");
- }, done);
+ it('should load the admin reporting menu correctly', async function() {
+ await page.goto("?" + generalParams + "&module=CoreAdminHome&action=generalSettings");
+ await page.waitFor('#secondNavBar');
+
+ const element = await page.jQuery('#secondNavBar');
+ expect(await element.screenshot()).to.matchImage('admin_loaded');
});
- it('should change the admin page correctly when an admin menu item is clicked', function (done) {
- expect.screenshot('admin_changed').to.be.captureSelector('#secondNavBar', function (page) {
- openMenuItem(page, 'Manage');
- }, done);
+ it('should change the admin page correctly when an admin menu item is clicked', async function() {
+ await openMenuItem(page, 'Manage');
+ await page.waitForNetworkIdle();
+ await page.waitFor('#secondNavBar');
+
+ const element = await page.jQuery('#secondNavBar');
+ expect(await element.screenshot()).to.matchImage('admin_changed');
});
// top menu on mobile
- it('should load the admin reporting menu correctly', function (done) {
- expect.screenshot('mobile_top').to.be.capture(function (page) {
- page.setViewportSize(768, 512);
- page.load("?" + generalParams + "&module=CoreAdminHome&action=index");
- page.evaluate(function(){
- $('.activateTopMenu').click();
- }, 250);
- }, done);
+ it('should load the admin reporting menu correctly', async function() {
+ page.webpage.setViewport({ width: 768, height: 512 });
+ await page.goto("?" + generalParams + "&module=CoreAdminHome&action=index");
+ await page.waitFor('.pageWrap');
+ await page.evaluate(function(){
+ $('.activateTopMenu').click();
+ });
+ await page.waitFor(250);
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('mobile_top');
});
});
diff --git a/tests/UI/specs/OptOutForm_spec.js b/tests/UI/specs/OptOutForm_spec.js
index a186007b52..f8d6b1bcf7 100644
--- a/tests/UI/specs/OptOutForm_spec.js
+++ b/tests/UI/specs/OptOutForm_spec.js
@@ -10,53 +10,81 @@
// NOTE: this test actually tests safari-specific opt out form behavior, since phantomjs' user-agent string
// is similar to Safari's
describe("OptOutForm", function () {
- this.timeout(0);
-
- var siteUrl = "/tests/resources/overlay-test-site-real/index.html",
+ const siteUrl = "/tests/resources/overlay-test-site-real/index.html",
safariUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A",
chromeUserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
- it("should display correctly when embedded in another site", function (done) {
- expect.screenshot('loaded').to.be.captureSelector('iframe#optOutIframe', function (page) {
- phantom.clearCookies();
+ function expandIframe() {
+ return page.evaluate(() => {
+ const $iframe = $('iframe#optOutIframe');
+ $iframe.width(350);
+ $iframe.height($iframe.contents().outerHeight());
+ });
+ }
+
+ after(async () => {
+ await page.clearCookies();
+ });
+
+ it("should display correctly when embedded in another site", async function () {
+ await page.clearCookies();
- page.userAgent = chromeUserAgent;
- page.load(siteUrl);
- }, done);
+ page.setUserAgent(chromeUserAgent);
+ await page.goto(siteUrl);
+
+ await expandIframe();
+
+ const element = await page.jQuery('iframe#optOutIframe');
+ expect(await element.screenshot()).to.matchImage('loaded');
});
- it("should reload the iframe when clicking the opt out checkbox and display an empty checkbox", function (done) {
- expect.screenshot('opted-out').to.be.captureSelector('iframe#optOutIframe', function (page) {
- page.evaluate(function () {
- $('iframe#optOutIframe').contents().find('input#trackVisits').click();
- });
- page.wait(2000); // wait for iframe to reload
- }, done);
+ it("should reload the iframe when clicking the opt out checkbox and display an empty checkbox", async function () {
+ await page.evaluate(function () {
+ $('iframe#optOutIframe').contents().find('input#trackVisits').click();
+ });
+
+ await page.waitFor(5000); // opt out iframe creates a new page, so we can't wait on it that easily
+ await page.waitForNetworkIdle(); // safety
+
+ const element = await page.jQuery('iframe#optOutIframe');
+ expect(await element.screenshot()).to.matchImage('opted-out');
});
- it("should correctly show the checkbox unchecked after reloading after opting-out", function (done) {
- expect.screenshot('opted-out').to.be.captureSelector('opted-out-reload', 'iframe#optOutIframe', function (page) {
- page.userAgent = chromeUserAgent;
- page.load(siteUrl);
- }, done);
+ it("should correctly show the checkbox unchecked after reloading after opting-out", async function () {
+ page.setUserAgent(chromeUserAgent);
+ await page.goto(siteUrl);
+
+ await expandIframe();
+
+ const element = await page.jQuery('iframe#optOutIframe');
+ expect(await element.screenshot()).to.matchImage('opted-out');
});
- it("should correctly show display opted-in form when cookies are cleared", function (done) {
- expect.screenshot('loaded').to.be.captureSelector('safari-loaded', 'iframe#optOutIframe', function (page) {
- page.webpage.clearCookies();
+ it("should correctly show display opted-in form when cookies are cleared", async function () {
+ await page.clearCookies();
+
+ page.setUserAgent(safariUserAgent);
+ await page.goto(siteUrl);
+
+ await expandIframe();
- page.userAgent = safariUserAgent;
- page.load(siteUrl);
- }, done);
+ const element = await page.jQuery('iframe#optOutIframe');
+ expect(await element.screenshot()).to.matchImage('safari-loaded');
});
- it("should correctly set opt-out cookie on safari", function (done) {
- expect.screenshot('opted-out').to.be.captureSelector('safari-opted-out', 'iframe#optOutIframe', function (page) {
- page.evaluate(function () {
- $('iframe#optOutIframe').contents().find('input#trackVisits').click();
- });
- page.wait(1000); // wait for iframe to reload
- page.load(siteUrl); // reload to check that cookie was set
- }, done);
+ it("should correctly set opt-out cookie on safari", async function () {
+ await page.evaluate(function () {
+ $('iframe#optOutIframe').contents().find('input#trackVisits').click();
+ });
+
+ await page.waitFor(5000); // opt out iframe creates a new page, so we can't wait on it that easily
+ await page.waitForNetworkIdle(); // safety
+
+ await page.goto(siteUrl); // reload to check that cookie was set
+
+ await expandIframe();
+
+ const element = await page.jQuery('iframe#optOutIframe');
+ expect(await element.screenshot()).to.matchImage('safari-opted-out');
});
});
diff --git a/tests/UI/specs/PeriodSelector_spec.js b/tests/UI/specs/PeriodSelector_spec.js
index 6e7ab8949f..29a4970cd4 100644
--- a/tests/UI/specs/PeriodSelector_spec.js
+++ b/tests/UI/specs/PeriodSelector_spec.js
@@ -8,91 +8,105 @@
*/
describe("PeriodSelector", function () {
- this.timeout(0);
-
var generalParams = 'idSite=1&period=day&date=2012-01-01';
var url = '?module=CoreHome&action=index&' + generalParams + '#?' + generalParams + '&category=General_Actions&subcategory=General_Pages';
var selector = '#periodString,#periodString .dropdown';
-
- it("should load correctly", function (done) {
- expect.screenshot("loaded").to.be.captureSelector(selector, function (page) {
- page.load(url);
-
- // disable broadcast.propagateNewPage & remove loading gif
- page.evaluate(function () {
- piwikHelper.isAngularRenderingThePage = function () {
- return false;
- };
-
- broadcast.propagateNewPage = function () {};
-
- // hide ajaxLoadingCalendar via CSS (can't just remove it since it's managed by angular)
- $('head').append('<style type="text/css">#ajaxLoadingCalendar { display: none !important; }</style>');
- });
- }, done);
+
+ it("should load correctly", async function() {
+ await page.goto(url);
+
+ // disable broadcast.propagateNewPage & remove loading gif
+ await page.evaluate(function () {
+ piwikHelper.isAngularRenderingThePage = function () {
+ return false;
+ };
+
+ broadcast.propagateNewPage = function () {};
+
+ // hide ajaxLoadingCalendar via CSS (can't just remove it since it's managed by angular)
+ $('head').append('<style type="text/css">#ajaxLoadingCalendar { display: none !important; }</style>');
+ });
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('loaded');
});
- it("should expand when clicked", function (done) {
- expect.screenshot("expanded").to.be.captureSelector(selector, function (page) {
- page.click('.periodSelector .title');
- }, done);
+ it("should expand when clicked", async function() {
+ await page.click('.periodSelector .title');
+ expect(await page.screenshotSelector(selector)).to.matchImage('expanded');
});
- it("should select a date when a date is clicked in day-period mode", function (done) {
- expect.screenshot("day_selected").to.be.captureSelector(selector, function (page) {
- page.click('.period-date .ui-datepicker-calendar a:contains(12)');
- }, done);
+ it("should select a date when a date is clicked in day-period mode", async function() {
+ const element = await page.jQuery('.period-date .ui-datepicker-calendar a:contains(12)');
+ await element.click();
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('day_selected');
});
- it("should change the month displayed when a month is selected in the month dropdown", function (done) {
- expect.screenshot("month_changed").to.be.captureSelector(selector, function (page) {
- page.evaluate(function () {
- $('.ui-datepicker-month').val(1).trigger('change');
- });
- }, done);
+ it("should change the month displayed when a month is selected in the month dropdown", async function() {
+ await page.evaluate(function () {
+ $('.ui-datepicker-month').val(1).trigger('change');
+ });
+ await page.mouse.move(-10, -10);
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('month_changed');
});
- it("should change the year displayed when a year is selected in the year dropdown", function (done) {
- expect.screenshot("year_changed").to.be.captureSelector(selector, function (page) {
- page.evaluate(function () {
- $('.ui-datepicker-year').val(2013).trigger('change');
- });
- }, done);
+ it("should change the year displayed when a year is selected in the year dropdown", async function() {
+ await page.evaluate(function () {
+ $('.ui-datepicker-year').val(2013).trigger('change');
+ });
+ await page.mouse.move(-10, -10);
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('year_changed');
});
- it("should change the date when a date is clicked in week-period mode", function (done) {
- expect.screenshot("week_selected").to.be.captureSelector(selector, function (page) {
- page.click('label[for=period_id_week]');
- page.click('.period-date .ui-datepicker-calendar a:contains(13)');
- }, done);
+ it("should change the date when a date is clicked in week-period mode", async function() {
+ await page.click('label[for=period_id_week]');
+ await page.waitFor(250); // wait for animation
+
+ const element = await page.jQuery('.period-date .ui-datepicker-calendar a:contains(13)');
+ await element.click();
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('week_selected');
});
- it("should change the date when a date is clicked in month-period mode", function (done) {
- expect.screenshot("month_selected").to.be.captureSelector(selector, function (page) {
- page.click('label[for=period_id_month]');
- page.click('.period-date .ui-datepicker-calendar a:contains(14)');
- }, done);
+ it("should change the date when a date is clicked in month-period mode", async function() {
+ await page.click('label[for=period_id_month]');
+ await page.waitFor(250); // wait for animation
+
+ const element = await page.jQuery('.period-date .ui-datepicker-calendar a:contains(14)');
+ await element.click();
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('month_selected');
});
- it("should change the date when a date is clicked in year-period mode", function (done) {
- expect.screenshot("year_selected").to.be.captureSelector(selector, function (page) {
- page.click('label[for=period_id_year]');
- page.click('.period-date .ui-datepicker-calendar a:contains(15)');
- }, done);
+ it("should change the date when a date is clicked in year-period mode", async function() {
+ await page.click('label[for=period_id_year]');
+ await page.waitFor(250); // wait for animation
+
+ const element = await page.jQuery('.period-date .ui-datepicker-calendar a:contains(15)');
+ await element.click();
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('year_selected');
});
- it("should display the range picker when the range radio button is clicked", function (done) {
- expect.screenshot("range_picker_displayed").to.be.captureSelector(selector, function (page) {
- page.click('label[for=period_id_range]');
- }, done);
+ it("should display the range picker when the range radio button is clicked", async function() {
+ await page.click('label[for=period_id_range]');
+ await page.waitFor(250); // wait for animation
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('range_picker_displayed');
});
- it("should change from & to dates when range picker calendar dates are clicked", function (done) {
- expect.screenshot("date_range_selected").to.be.captureSelector(selector, function (page) {
- page.click('#calendarFrom .ui-datepicker-calendar a:contains(10)');
- page.click('#calendarTo .ui-datepicker-calendar a:contains(18)');
- page.mouseMove('#calendarApply');
- }, done);
+ it("should change from & to dates when range picker calendar dates are clicked", async function() {
+ let element = await page.jQuery('#calendarFrom .ui-datepicker-calendar a:contains(10)');
+ await element.click();
+
+ element = await page.jQuery('#calendarTo .ui-datepicker-calendar a:contains(18)');
+ await element.click();
+
+ await page.hover('#calendarApply');
+
+ expect(await page.screenshotSelector(selector)).to.matchImage('date_range_selected');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/PieGraph_spec.js b/tests/UI/specs/PieGraph_spec.js
index c1b498c65a..9d341f8f89 100644
--- a/tests/UI/specs/PieGraph_spec.js
+++ b/tests/UI/specs/PieGraph_spec.js
@@ -8,32 +8,34 @@
*/
describe("PieGraph", function () {
- this.timeout(0);
+ const url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
+ + "actionToWidgetize=getKeywords&viewDataTable=graphPie&isFooterExpandedInDashboard=1";
- var url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
- + "actionToWidgetize=getKeywords&viewDataTable=graphPie&isFooterExpandedInDashboard=1";
+ it("should load correctly", async function () {
+ await page.goto(url);
- it("should load correctly", function (done) {
- expect.screenshot("load").to.be.capture(function (page) {
- page.load(url);
- }, done);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('load');
});
- it("should show tooltip on hover", function (done) {
- expect.screenshot("pie_segment_tooltip").to.be.capture(function (page) {
- page.mouseMove('.piwik-graph');
- }, done);
+ it("should show tooltip on hover", async function () {
+ await page.hover('.piwik-graph');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('pie_segment_tooltip');
});
- it("should display the metric picker on hover of metric picker icon", function (done) {
- expect.screenshot('metric_picker_shown').to.be.capture(function (page) {
- page.mouseMove('.jqplot-seriespicker');
- }, done);
+ it("should display the metric picker on hover of metric picker icon", async function () {
+ await page.hover('.jqplot-seriespicker');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('metric_picker_shown');
});
- it("should change displayed metric when another metric picked", function (done) {
- expect.screenshot('other_metric').to.be.capture(function (page) {
- page.click('.jqplot-seriespicker-popover input:not(:checked):first + label');
- }, done);
+ it("should change displayed metric when another metric picked", async function () {
+ await page.waitForSelector('.jqplot-seriespicker-popover input');
+ var element = await page.jQuery('.jqplot-seriespicker-popover input:not(:checked):first + label');
+ await element.click();
+
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('other_metric');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/PivotByDimension_spec.js b/tests/UI/specs/PivotByDimension_spec.js
index 44f6fb0c74..d64894eb93 100644
--- a/tests/UI/specs/PivotByDimension_spec.js
+++ b/tests/UI/specs/PivotByDimension_spec.js
@@ -8,42 +8,51 @@
*/
describe("PivotByDimension", function () {
- this.timeout(0);
-
var eventsUrl = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09#?idSite=1&period=year&date=2012-08-09&category=General_Actions&subcategory=Events_Events",
actionsUrl = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09#?idSite=1&period=year&date=2012-08-09&category=General_Actions&subcategory=General_Pages",
cvarsUrl = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09#?idSite=1&period=year&date=2012-08-09&category=General_Visitors&subcategory=CustomVariables_CustomVariables"
;
- function showDataTableFooter(page)
- {
- page.mouseMove('.dataTableFeatures');
+ function showDataTableFooter(page) {
+ return page.hover('.dataTableFeatures');
}
- it("should pivot a report correctly when the pivot cog option is selected", function (done) {
- expect.screenshot('pivoted').to.be.captureSelector('.dataTable,.expandDataTableFooterDrawer', function (page) {
- page.load(eventsUrl);
- page.click('.dimension:contains(Event Names)');
- showDataTableFooter(page);
- page.evaluate(function(){
- $('.dropdownConfigureIcon').click();
- $('.dataTablePivotBySubtable').click();
- }, 2000);
- page.mouseMove({x: -15, y: -15}); // make sure nothing is highlighted
- }, done);
+ it("should pivot a report correctly when the pivot cog option is selected", async function () {
+ await page.goto(eventsUrl);
+
+ let element = await page.jQuery('.dimension:contains(Event Names)');
+ await element.click();
+ await page.waitForNetworkIdle();
+
+ await showDataTableFooter(page);
+ await page.evaluate(function(){
+ $('.dropdownConfigureIcon').click();
+ $('.dataTablePivotBySubtable').click();
+ });
+ await page.waitForNetworkIdle();
+
+ await page.mouse.move(-150, -150); // make sure nothing is highlighted
+
+ element = await page.$('.theWidgetContent');
+ expect(await element.screenshot()).to.matchImage('pivoted');
});
- it("should not display the pivot option on actions reports", function (done) {
- expect.page(actionsUrl).not.contains('.dataTablePivotBySubtable', function () {}, done);
+ it("should not display the pivot option on actions reports", async function () {
+ await page.goto(actionsUrl);
+
+ const element = await page.$('.dataTablePivotBySubtable');
+ expect(element).to.be.not.ok;
});
- it("should display the pivot option on reports that set a custom columns_to_display", function (done) {
- expect.screenshot('pivoted_columns_report').to.be.captureSelector('.dataTable,.expandDataTableFooterDrawer', function (page) {
- page.load(cvarsUrl);
- showDataTableFooter(page);
- page.click('.dropdownConfigureIcon');
- page.click('.dataTablePivotBySubtable');
- page.mouseMove({x: -15, y: -15}); // make sure nothing is highlighted
- }, done);
+ it("should display the pivot option on reports that set a custom columns_to_display", async function () {
+ await page.goto(cvarsUrl);
+ await showDataTableFooter(page);
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTablePivotBySubtable');
+ await page.waitForNetworkIdle();
+
+ await page.mouse.move(-15, -15); // make sure nothing is highlighted
+
+ expect(await page.screenshotSelector('.dataTable,.expandDataTableFooterDrawer')).to.matchImage('pivoted_columns_report');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/QuickAccess_spec.js b/tests/UI/specs/QuickAccess_spec.js
index 005e91caf0..d509adfb07 100644
--- a/tests/UI/specs/QuickAccess_spec.js
+++ b/tests/UI/specs/QuickAccess_spec.js
@@ -8,69 +8,67 @@
*/
describe("QuickAccess", function () {
+ const selectorToCapture = ".quick-access,.quick-access .dropdown";
+ const url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09";
- var selectorToCapture = ".quick-access,.quick-access .dropdown";
-
- this.timeout(0);
-
- var url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09";
-
- function enterSearchTerm(page, searchTermToAdd)
- {
- page.sendKeys(".quick-access input", searchTermToAdd);
- }
+ async function enterSearchTerm(searchTermToAdd) {
+ await page.evaluate(function () {
+ $('.quick-access input').val('');
+ });
- function captureSelector(screenshotName, done, selector, callback)
- {
- expect.screenshot(screenshotName).to.be.captureSelector(selector, callback, done);
- }
+ await page.focus(".quick-access input");
+ await page.keyboard.type(searchTermToAdd);
+ await page.waitForNetworkIdle();
- function capture(screenshotName, done, callback)
- {
- captureSelector(screenshotName, done, selectorToCapture, callback);
+ await page.evaluate(function () {
+ $('.quick-access input').blur();
+ });
}
- it("should be displayed", function (done) {
- capture('initially', done, function (page) {
- page.load(url);
- });
+ it("should be displayed", async function () {
+ await page.goto(url);
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('initially');
});
- it("should search for something and update view", function (done) {
- capture('search_1', done, function (page) {
- enterSearchTerm(page, 's');
- });
+ it("should search for something and update view", async function () {
+ await enterSearchTerm('s');
+ await page.waitFor(100);
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_1');
});
- it("should search again when typing another letter", function (done) {
- capture('search_2', done, function (page) {
- enterSearchTerm(page, 'a');
- });
+ it("should search again when typing another letter", async function () {
+ await enterSearchTerm('as');
+ await page.waitFor(100);
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_2');
});
- it("should show message if no results", function (done) {
- capture('search_no_result', done, function (page) {
- enterSearchTerm(page, 'alaskdjfs');
- });
+ it("should show message if no results", async function () {
+ await enterSearchTerm('alaskdjfs');
+ await page.waitFor(100);
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_no_result');
});
- it("should be possible to activate via shortcut", function (done) {
- capture('shortcut', done, function (page) {
- page.load(url);
- page.sendKeys("body", 'f');
- });
- });
+ it("should be possible to activate via shortcut", async function () {
+ await page.goto(url);
+ await page.focus('body');
+ await page.keyboard.type('f');
- it("should search for websites", function (done) {
- capture('search_sites', done, function (page) {
- enterSearchTerm(page, 'si');
+ await page.evaluate(function () {
+ $('.quick-access input').blur();
});
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('shortcut');
});
- it("clicking on a category should show all items that belong to that category", function (done) {
- capture('search_category', done, function (page) {
- page.click('.quick-access-category:first');
- });
+ it("should search for websites", async function () {
+ await enterSearchTerm('si');
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_sites');
});
+ it("clicking on a category should show all items that belong to that category", async function () {
+ const element = await page.jQuery('.quick-access-category:first');
+ await element.click();
+ await page.waitForNetworkIdle();
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_category');
+ });
});
diff --git a/tests/UI/specs/ReportExporting_spec.js b/tests/UI/specs/ReportExporting_spec.js
index c4f26b039e..563e01c425 100644
--- a/tests/UI/specs/ReportExporting_spec.js
+++ b/tests/UI/specs/ReportExporting_spec.js
@@ -8,71 +8,89 @@
*/
describe("ReportExporting", function () {
- this.timeout(0);
-
var baseUrl = "?module=Widgetize&action=iframe&idSite=1&period=year&date=2012-08-09&isFooterExpandedInDashboard=1",
referrersGetWebsitesUrl = baseUrl + "&moduleToWidgetize=Referrers&actionToWidgetize=getWebsites&filter_limit=5",
visitsSummaryGetUrl = baseUrl + "&moduleToWidgetize=VisitsSummary&actionToWidgetize=get&forceView=1&viewDataTable=graphEvolution";
function normalReportTest(format) {
- it("should export a normal report correctly when the " + format + " export is chosen", function (done) {
- expect.file('Referrers.getWebsites_exported.' + format.toLowerCase() + '.txt').to.be.pageContents(function (page) {
+ it("should export a normal report correctly when the " + format + " export is chosen", async function () {
+ if (await page.url() !== referrersGetWebsitesUrl) {
+ await page.goto(referrersGetWebsitesUrl);
+ await page.click('.activateExportSelection');
+ }
- if (page.getCurrentUrl() != referrersGetWebsitesUrl) {
- page.load(referrersGetWebsitesUrl);
- page.click('.activateExportSelection');
- }
+ await page.waitForSelector('[name="format"] input[value="'+format+'"] + label');
+ await page.click('[name="format"] input[value="' + format + '"] + label');
+ await page.click('[name="filter_limit_all"] input[value="no"] + label');
+ await page.evaluate(function () {
+ $('[name=filter_limit] input').val(100).trigger('change');
+ });
- page.click('[name=format] input[value='+format+'] + label', 100);
- page.click('[name=filter_limit_all] input[value=no] + label', 100);
- page.evaluate(function(){
- $('[name=filter_limit] input').val(100).trigger('change');
- });
+ var url = await page.evaluate(function () {
+ return $('#reportExport a.btn').attr('href');
+ });
+ var pageContents = await page.downloadUrl(url);
- page.downloadLink('#reportExport a.btn');
- }, done);
+ expect.file('Referrers.getWebsites_exported.' + format.toLowerCase() + '.txt').to.equal(pageContents);
});
}
function evolutionReportTest(format) {
- it("should export an evolution graph report correctly when the " + format + " export is chosen", function (done) {
- expect.file('VisitsSummary.get_exported.' + format.toLowerCase() + '.txt').to.be.pageContents(function (page) {
- if (page.getCurrentUrl() != visitsSummaryGetUrl) {
- page.load(visitsSummaryGetUrl);
- page.click('.activateExportSelection');
- }
-
- page.click('[name=format] input[value='+format+'] + label', 100);
- page.click('[name=filter_limit_all] input[value=no] + label', 100);
- page.evaluate(function(){
- $('[name=filter_limit] input').val(100).trigger('change');
- });
-
- page.downloadLink('#reportExport a.btn');
- }, done);
+ it("should export an evolution graph report correctly when the " + format + " export is chosen", async function () {
+ if (await page.url() !== visitsSummaryGetUrl) {
+ await page.goto(visitsSummaryGetUrl);
+ await page.click('.activateExportSelection');
+ }
+
+ await page.waitForSelector('[name="format"] input[value="'+format+'"] + label');
+
+ await page.click('[name="format"] input[value="'+format+'"] + label');
+ await page.click('[name="filter_limit_all"] input[value="no"] + label');
+ await page.evaluate(function(){
+ $('[name=filter_limit] input').val(100).trigger('change');
+ });
+
+ var url = await page.evaluate(function() {
+ return $('#reportExport a.btn').attr('href');
+ });
+ var pageContents = await page.downloadUrl(url);
+
+ expect.file('VisitsSummary.get_exported.' + format.toLowerCase() + '.txt').to.equal(pageContents);
});
}
function rowEvolutionReportTest(format) {
- it("should export an row evolution graph report correctly when the " + format + " export link is clicked", function (done) {
- expect.file('RowEvolution_exported.' + format.toLowerCase() + '.txt').to.be.pageContents(function (page) {
- if (!page.getCurrentUrl() || page.getCurrentUrl().indexOf('popover') == -1) {
- page.load(referrersGetWebsitesUrl);
- page.mouseMove('tbody tr:first-child');
- page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display
- page.click('a.actionRowEvolution:visible');
- page.click('.ui-dialog .activateExportSelection');
- }
-
- page.click('[name=format] input[value='+format+'] + label', 100);
- page.click('[name=filter_limit_all] input[value=no] + label', 100);
- page.evaluate(function(){
- $('[name=filter_limit] input').val(100).trigger('change');
- });
-
- page.downloadLink('#reportExport a.btn');
- }, done);
+ it("should export an row evolution graph report correctly when the " + format + " export link is clicked", async function () {
+ if (!page.url() || page.url().indexOf('popover') === -1) {
+ await page.goto(referrersGetWebsitesUrl);
+
+ const row = await page.waitForSelector('tbody tr:first-child');
+ await row.hover();
+
+ const icon = await page.waitForSelector('tbody tr:first-child a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ await page.click('.ui-dialog .activateExportSelection');
+ }
+
+ await page.waitForSelector('[name="format"] input[value="'+format+'"] + label');
+
+ await page.click('[name="format"] input[value="'+format+'"] + label');
+ await page.click('[name="filter_limit_all"] input[value="no"] + label');
+ await page.evaluate(function(){
+ $('[name=filter_limit] input').val(100).trigger('change');
+ });
+
+ var url = await page.evaluate(function() {
+ return $('#reportExport a.btn').attr('href');
+ });
+ var pageContents = await page.downloadUrl(url);
+
+ expect.file('RowEvolution_exported.' + format.toLowerCase() + '.txt').to.equal(pageContents);
});
}
diff --git a/tests/UI/specs/RowEvolution_spec.js b/tests/UI/specs/RowEvolution_spec.js
index 00b3ec5c53..fab3a148f6 100644
--- a/tests/UI/specs/RowEvolution_spec.js
+++ b/tests/UI/specs/RowEvolution_spec.js
@@ -10,57 +10,85 @@
describe("RowEvolution", function () {
this.timeout(0);
- var viewDataTableUrl = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=week&date=2012-02-09&"
+ const viewDataTableUrl = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=week&date=2012-02-09&"
+ "actionToWidgetize=getKeywords&viewDataTable=table&filter_limit=5";
- var ecommerceItemReportWidgetized = "?module=Widgetize&action=iframe&moduleToWidgetize=Goals&actionToWidgetize=getItemsSku&idGoal=ecommerceAbandonedCart"
+ const ecommerceItemReportWidgetized = "?module=Widgetize&action=iframe&moduleToWidgetize=Goals&actionToWidgetize=getItemsSku&idGoal=ecommerceAbandonedCart"
+ "&idSite=1&period=year&date=2012-02-09&viewDataTable=ecommerceAbandonedCart&filter_limit=-1";
- it('should load when icon clicked in ViewDataTable', function (done) {
- expect.screenshot('row_evolution').to.be.captureSelector('.ui-dialog', function (page) {
- page.load(viewDataTableUrl);
- page.mouseMove('tbody tr:first-child');
- page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display
- page.click('a.actionRowEvolution:visible');
- }, done);
+ it('should load when icon clicked in ViewDataTable', async function() {
+ await page.goto(viewDataTableUrl);
+ const row = await page.waitForSelector('tbody tr:first-child');
+ await row.hover();
+
+ const icon = await page.waitForSelector('tbody tr:first-child a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('row_evolution');
});
- it('should change the metric shown when a metric sparkline row is clicked', function (done) {
- expect.screenshot('row_evolution_other_metric').to.be.captureSelector('.ui-dialog', function (page) {
- page.click('table.metrics tr[data-i=1]');
- }, done);
+ it('should change the metric shown when a metric sparkline row is clicked', async function() {
+ await page.click('table.metrics tr[data-i="1"]');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('row_evolution_other_metric');
});
- it('should show two serieses when a metric sparkline row is shift+clicked', function (done) {
- expect.screenshot('row_evolution_multiple_series').to.be.captureSelector('.ui-dialog', function (page) {
- page.click('table.metrics tr[data-i=2]', ['shift']);
- }, done);
+ it('should show two serieses when a metric sparkline row is shift+clicked', async function() {
+ await page.keyboard.down('Shift');
+ await page.click('table.metrics tr[data-i="2"]', ['shift']);
+ await page.keyboard.up('Shift');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('row_evolution_multiple_series');
});
- it('should load multi-row evolution correctly', function (done) {
- expect.screenshot('multirow_evolution').to.be.captureSelector('.ui-dialog', function (page) {
- page.click('.rowevolution-startmulti');
- page.mouseMove('tbody tr:nth-child(2)');
- page.mouseMove('a.actionRowEvolution:visible');
- page.click('a.actionRowEvolution:visible');
- }, done);
+ it('should load multi-row evolution correctly', async function() {
+ await page.click('.rowevolution-startmulti');
+
+ const row = await page.waitForSelector('tbody tr:nth-child(2)');
+ await row.hover();
+
+ const icon = await page.waitForSelector('tbody tr:nth-child(2) a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('multirow_evolution');
});
- it('should display a different row evolution metric when the metric selection is changed', function (done) {
- expect.screenshot('multirow_evolution_other_metric').to.be.captureSelector('.ui-dialog', function (page) {
- page.evaluate(function () {
- $('select.multirowevoltion-metric').val($('select.multirowevoltion-metric option:nth-child(3)').val()).change();
- });
- page.wait(1000);
- }, done);
+ it('should display a different row evolution metric when the metric selection is changed', async function() {
+ await page.evaluate(function () {
+ $('select.multirowevoltion-metric').val($('select.multirowevoltion-metric option:nth-child(3)').val()).change();
+ });
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('multirow_evolution_other_metric');
});
- it('should display row evolution for an ecommerce item report correctly', function (done) {
- expect.screenshot('row_evolution_ecommerce_item').to.be.captureSelector('.ui-dialog', function (page) {
- page.load(ecommerceItemReportWidgetized);
- page.mouseMove('tbody tr:first-child');
- page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display
- page.click('a.actionRowEvolution:visible');
- }, done);
+ it('should display row evolution for an ecommerce item report correctly', async function() {
+ await page.goto(ecommerceItemReportWidgetized);
+ const row = await page.waitForSelector('tbody tr:first-child');
+ await row.hover();
+
+ const icon = await page.waitForSelector('tbody tr:first-child a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ const dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('row_evolution_ecommerce_item');
});
});
diff --git a/tests/UI/specs/SiteSelector_spec.js b/tests/UI/specs/SiteSelector_spec.js
index 83c8e4045a..eadb216812 100644
--- a/tests/UI/specs/SiteSelector_spec.js
+++ b/tests/UI/specs/SiteSelector_spec.js
@@ -8,46 +8,58 @@
*/
describe("SiteSelector", function () {
- var selectorToCapture = '[piwik-siteselector],[piwik-siteselector] .dropdown';
-
this.timeout(0);
- var url = "?module=UsersManager&action=userSettings&idSite=1&period=day&date=yesterday";
+ const selectorToCapture = '[piwik-siteselector],[piwik-siteselector] .dropdown';
+ const url = "?module=UsersManager&action=userSettings&idSite=1&period=day&date=yesterday";
+
+ it("should load correctly", async function() {
+ await page.goto(url);
+ await page.waitForNetworkIdle();
- it("should load correctly", function (done) {
- expect.screenshot("loaded").to.be.captureSelector(selectorToCapture, function (page) {
- page.load(url);
- }, done);
+ dialog = await page.$(selectorToCapture);
+ expect(await dialog.screenshot()).to.matchImage('loaded');
});
- it("should display expanded when clicked", function (done) {
- expect.screenshot("expanded").to.be.captureSelector(selectorToCapture, function (page) {
- page.click('.sites_autocomplete .title');
- }, done);
+ it("should display expanded when clicked", async function() {
+ await page.click('.sites_autocomplete .title');
+
+ await page.waitForSelector('.custom_select_ul_list');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('expanded');
});
- it("should show no results when search returns no results", function (done) {
- expect.screenshot("search_no_results").to.be.captureSelector(selectorToCapture, function (page) {
- page.sendKeys(".websiteSearch", "abc");
- }, done);
+ it("should show no results when search returns no results", async function() {
+ await page.type(".websiteSearch", "abc");
+ await page.waitFor(500);
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_no_results');
});
- it("should search when one character typed into search input", function (done) {
- expect.screenshot("search_one_char").to.be.captureSelector(selectorToCapture, function (page) {
- page.click('.reset');
- page.sendKeys(".websiteSearch", "s");
- }, done);
+ it("should search when one character typed into search input", async function() {
+ await page.click('.reset');
+ await page.type(".websiteSearch", "s");
+ await page.waitForNetworkIdle();
+ await page.waitFor(500);
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_one_char');
});
- it("should search again when second character typed into search input", function (done) {
- expect.screenshot("search_two_chars").to.be.captureSelector(selectorToCapture, function (page) {
- page.sendKeys(".websiteSearch", "st");
- }, done);
+ it("should search again when second character typed into search input", async function() {
+ await page.type(".websiteSearch", "t");
+ await page.waitForNetworkIdle();
+ await page.waitFor(500);
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('search_two_chars');
});
- it("should change the site when a site is selected", function (done) {
- expect.screenshot("site_selected").to.be.captureSelector(selectorToCapture, function (page) {
- page.click(".custom_select_ul_list>li:visible");
- }, done);
+ it("should change the site when a site is selected", async function() {
+ elem = await page.jQuery(".custom_select_ul_list>li:visible");
+ elem.click();
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector(selectorToCapture)).to.matchImage('site_selected');
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/Theme_spec.js b/tests/UI/specs/Theme_spec.js
index 93e56fcadc..23620a8ca7 100644
--- a/tests/UI/specs/Theme_spec.js
+++ b/tests/UI/specs/Theme_spec.js
@@ -7,15 +7,28 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-var fs = require('fs');
+var fs = require('fs'),
+ path = require('../../lib/screenshot-testing/support/path');
-describe("Theme", function () {
- this.retries(2);
+var removeTree = function(path) {
+ if (fs.existsSync(path)) {
+ fs.readdirSync(path).forEach(function (file, index) {
+ var curPath = path + "/" + file;
+ if (fs.lstatSync(curPath).isDirectory()) { // recurse
+ removeTree(curPath);
+ } else { // delete file
+ fs.unlinkSync(curPath);
+ }
+ });
+ fs.rmdirSync(path);
+ }
+}
+describe("Theme", function () {
this.timeout(0);
function clearAssets() {
- fs.removeTree(path.join(PIWIK_INCLUDE_PATH, 'tmp', 'assets'));
+ removeTree(path.join(PIWIK_INCLUDE_PATH, 'tmp', 'assets'));
}
before(function () {
@@ -33,15 +46,22 @@ describe("Theme", function () {
clearAssets();
});
- it("should use the current theme", function (done) {
- expect.screenshot("home").to.be.capture(function (page) {
- page.load("?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09");
- }, done);
+ it("should use the current theme", async function () {
+ await page.goto("?module=CoreHome&action=index&idSite=1&period=year&date=2012-08-09");
+ await page.waitFor(500); // wait for angular finished rendering
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('home');
});
- it("should theme the UI demo page", function (done) {
- expect.screenshot("demo").to.be.similar(0.002).to.be.capture(function (page) {
- page.load("?module=Morpheus&action=demo");
- }, done);
+ it("should theme the UI demo page", async function () {
+ await page.goto("?module=Morpheus&action=demo");
+ await page.waitFor('.progressbar img');
+ await page.evaluate(() => {
+ $('img[src~=loading],.progressbar img').each(function () {
+ $(this).hide();
+ });
+ });
+ await page.waitFor(500); // wait for angular finished rendering
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('demo');
});
});
diff --git a/tests/UI/specs/UIIntegration_spec.js b/tests/UI/specs/UIIntegration_spec.js
index f63d3dc814..d96611c0aa 100644
--- a/tests/UI/specs/UIIntegration_spec.js
+++ b/tests/UI/specs/UIIntegration_spec.js
@@ -18,7 +18,7 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
segment = encodeURIComponent("browserCode==FF") // from OmniFixture
;
- before(function (done) {
+ before(async function () {
testEnvironment.queryParamOverride = {
forceNowValue: testEnvironment.forcedNowTimestamp,
visitorId: testEnvironment.forcedIdVisitor,
@@ -26,10 +26,10 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
};
testEnvironment.save();
- testEnvironment.callApi("SitesManager.setSiteAliasUrls", {idSite: 3, urls: []}, done);
-
testEnvironment.pluginsToLoad = ['CustomDirPlugin'];
testEnvironment.save();
+
+ await testEnvironment.callApi("SitesManager.setSiteAliasUrls", {idSite: 3, urls: []});
});
beforeEach(function () {
@@ -48,615 +48,762 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
testEnvironment.testUseMockAuth = 1;
testEnvironment.save();
});
-
+
// dashboard tests
- it("should load dashboard1 correctly", function (done) {
- expect.screenshot("dashboard1").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=1");
+ it("should load dashboard1 correctly", async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=1");
+ await page.waitForNetworkIdle();
+ await page.evaluate(function () {
+ // Prevent random sizing error eg. http://builds-artifacts.piwik.org/ui-tests.master/2301.1/screenshot-diffs/diffviewer.html
+ $("[widgetid=widgetActionsgetOutlinks] .widgetContent").text('Displays different at random -> hidden');
+ });
- page.evaluate(function () {
- // Prevent random sizing error eg. http://builds-artifacts.piwik.org/ui-tests.master/2301.1/screenshot-diffs/diffviewer.html
- $("[widgetid=widgetActionsgetOutlinks] .widgetContent").text('Displays different at random -> hidden');
- });
- }, done);
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('dashboard1');
});
- it("should load dashboard2 correctly", function (done) {
- expect.screenshot("dashboard2").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=2");
- }, done);
+ it("should load dashboard2 correctly", async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=2");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('dashboard2');
});
- it("should load dashboard3 correctly", function (done) {
- expect.screenshot("dashboard3").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=3");
- }, done);
+ it("should load dashboard3 correctly", async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=3");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('dashboard3');
});
- it("should load dashboard4 correctly", function (done) {
- expect.screenshot("dashboard4").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=4");
- }, done);
+ it("should load dashboard4 correctly", async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=4");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('dashboard4');
});
- it("should display dashboard correctly on a mobile phone", function (done) {
- expect.screenshot("dashboard5_mobile").to.be.capture(function (page) { // capture with menu
- page.setViewportSize(480, 320);
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=5");
- }, done);
+ it("should display dashboard correctly on a mobile phone", async function () {
+ await page.webpage.setViewport({
+ width: 480,
+ height: 320
+ });
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=5");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('dashboard5_mobile');
+
+ await page.webpage.setViewport({
+ width: 1350,
+ height: 768
+ });
});
- it("should load the page of a plugin located in a custom directory", function (done) {
- expect.screenshot("customdirplugin").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?module=CustomDirPlugin&action=index&idSite=1&period=day&date=yesterday");
- }, done);
+ it("should load the page of a plugin located in a custom directory", async function () {
+ await page.goto("?module=CustomDirPlugin&action=index&idSite=1&period=day&date=yesterday");
+
+ const pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('customdirplugin');
});
+
// shortcuts help
- it("should show shortcut help", function (done) {
- expect.screenshot("shortcuts").to.be.captureSelector('.modal.open', function (page) {
- page.userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
- page.load("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=1");
- page.sendKeys('body', '?', 100);
- }, done);
+ it("should show shortcut help", async function () {
+ await page.setUserAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Dashboard_Dashboard&subcategory=1");
+ await page.waitForNetworkIdle();
+ await page.keyboard.press('?');
+ await page.waitFor(500); // wait for animation to end
+
+ modal = await page.$('.modal.open');
+ expect(await modal.screenshot()).to.matchImage('shortcuts');
});
// visitors pages
- it('should load visitors > overview page correctly', function (done) {
- expect.screenshot("visitors_overview").to.be.captureSelector('.pageWrap', function (page) {
- // use columns query param to make sure columns works when supplied in URL fragment
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=General_Overview&columns=nb_visits,nb_actions");
- }, done);
+ it('should load visitors > overview page correctly', async function () {
+ await page.keyboard.press('Escape'); // close shortcut screen
+
+ // use columns query param to make sure columns works when supplied in URL fragment
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=General_Overview&columns=nb_visits,nb_actions");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_overview');
});
- it('should reload the visitors > overview page when clicking on the visitors overview page element again', function (done) {
- expect.screenshot("visitors_overview").to.be.captureSelector("visitors_overview_reloaded", '.pageWrap', function (page) {
- page.click('#VisitsSummary_index > a.item');
- }, done);
+ it('should reload the visitors > overview page when clicking on the visitors overview page element again', async function () {
+ await page.click('#secondNavBar ul li.active li.active a.item');
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_overview');
});
// skipped as phantom seems to crash at this test sometimes
- it.skip('should load visitors > visitor log page correctly', function (done) {
- expect.screenshot("visitors_visitorlog").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=Live_VisitorLog");
- }, done);
+ it.skip('should load visitors > visitor log page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=Live_VisitorLog");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_visitorlog');
});
// this test often fails for unknown reasons?
// the visitor log with site search is also currently tested in plugins/Live/tests/UI/expected-ui-screenshots/Live_visitor_log.png
- it.skip('should load visitors with site search > visitor log page correctly', function (done) {
- expect.screenshot("visitors_with_site_search_visitorlog").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=Live_VisitorLog&period=day&date=2012-01-11");
- }, done);
+ it.skip('should load visitors with site search > visitor log page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=Live_VisitorLog&period=day&date=2012-01-11");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_with_site_search_visitorlog');
});
- it('should load the visitors > devices page correctly', function (done) {
- expect.screenshot("visitors_devices").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=DevicesDetection_Devices");
- }, done);
+ it('should load the visitors > devices page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=DevicesDetection_Devices");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_devices');
});
- it('should load visitors > locations & provider page correctly', function (done) {
- expect.screenshot("visitors_locations_provider").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=UserCountry_SubmenuLocations");
- }, done);
+ it('should load visitors > locations & provider page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=UserCountry_SubmenuLocations");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_locations_provider');
});
- it('should load the visitors > software page correctly', function (done) {
- expect.screenshot("visitors_software").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=DevicesDetection_Software");
- }, done);
+ it('should load the visitors > software page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=DevicesDetection_Software");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_software');
});
- it('should load the visitors > times page correctly', function (done) {
- expect.screenshot("visitors_times").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=VisitTime_SubmenuTimes");
- }, done);
+ it('should load the visitors > times page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=VisitTime_SubmenuTimes");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_times');
});
- it('should load the visitors > engagement page correctly', function (done) {
- expect.screenshot("visitors_engagement").to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=VisitorInterest_Engagement");
- }, done);
+ it('should load the visitors > engagement page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=VisitorInterest_Engagement");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_engagement');
});
- it('should load the visitors > custom variables page correctly', function (done) {
- expect.screenshot('visitors_custom_vars').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=CustomVariables_CustomVariables");
- }, done);
+ it('should load the visitors > custom variables page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=CustomVariables_CustomVariables");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_custom_vars');
});
- it('should load the visitors > real-time map page correctly', function (done) {
- expect.screenshot('visitors_realtime_map').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + idSite2Params + "&category=General_Visitors&subcategory=UserCountryMap_RealTimeMap"
+ it('should load the visitors > real-time map page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + idSite2Params + "&category=General_Visitors&subcategory=UserCountryMap_RealTimeMap"
+ "&showDateTime=0&realtimeWindow=last2&changeVisitAlpha=0&enableAnimation=0&doNotRefreshVisits=1"
+ "&removeOldVisits=0");
- page.mouseMove('circle');
- page.evaluate(function(){
- $('.ui-tooltip:visible .rel-time').data('actiontime', Math.floor(new Date((new Date()).getTime()-(4*3600*24000))/1000));
- }, 100);
- }, done);
+
+ await page.waitForSelector('circle');
+ var pos = await page.webpage.evaluate(() => {
+ var circle = $('circle:first').offset();
+ return {
+ x: circle.left + 5,
+ y: circle.top + 5
+ };
+ });
+ console.log(pos.x, pos.y);
+ await page.mouse.move(pos.x, pos.y);
+ await page.waitFor(100); // wait for tooltip
+ await page.evaluate(function(){
+ $('.ui-tooltip:visible .rel-time').data('actiontime', Math.floor(new Date((new Date()).getTime()-(4*3600*24000))/1000));
+ });
+
+ pageWrap = await page.$('.pageWrap,.ui-tooltip');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_realtime_map');
});
- it('should load the visitors > real-time visits page correctly', function (done) {
- expect.screenshot('visitors_realtime_visits').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + idSite2Params + "&category=General_Visitors&subcategory=General_RealTime");
- }, done);
+ it('should load the visitors > real-time visits page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + idSite2Params + "&category=General_Visitors&subcategory=General_RealTime");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('visitors_realtime_visits');
});
// actions pages
- it('should load the actions > pages page correctly', function (done) {
- expect.screenshot('actions_pages').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
- }, done);
+ it('should load the actions > pages page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
+ await page.mouse.move(-10, -10);
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_pages');
});
// actions pages
- it('should load the actions > pages help tooltip, including the "Report generated time"', function (done) {
- expect.screenshot('actions_pages_tooltip_help').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
- page.mouseMove('[piwik-enriched-headline]');
- page.click('.helpIcon');
- page.evaluate(function () {
- $('.helpDate:visible').hide();
- }, 100);
- }, done);
+ it('should load the actions > pages help tooltip, including the "Report generated time"', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages");
+ await page.waitForSelector('[piwik-enriched-headline]');
+ elem = await page.$('[piwik-enriched-headline]');
+ await elem.hover();
+ await page.click('.helpIcon');
+ await page.waitFor(100);
+ await page.evaluate(function () {
+ $('.helpDate:visible').hide();
+ });
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_pages_tooltip_help');
});
- it('should load the actions > entry pages page correctly', function (done) {
- expect.screenshot('actions_entry_pages').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPagesEntry", 2000);
- }, done);
+ it('should load the actions > entry pages page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPagesEntry");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_entry_pages');
});
- it('should load the actions > exit pages page correctly', function (done) {
- expect.screenshot('actions_exit_pages').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPagesExit", 2000);
- }, done);
+ it('should load the actions > exit pages page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPagesExit");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_exit_pages');
});
- it('should load the actions > page titles page correctly', function (done) {
- expect.screenshot('actions_page_titles').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPageTitles");
- }, done);
+ it('should load the actions > page titles page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuPageTitles");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_page_titles');
});
- it('should load the actions > site search page correctly', function (done) {
- expect.screenshot('actions_site_search').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuSitesearch");
- }, done);
+ it('should load the actions > site search page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Actions_SubmenuSitesearch");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_site_search');
});
- it('should load the actions > outlinks page correctly', function (done) {
- expect.screenshot('actions_outlinks').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Outlinks", 1500);
- }, done);
+ it('should load the actions > outlinks page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Outlinks");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_outlinks');
});
- it('should load the actions > downloads page correctly', function (done) {
- expect.screenshot('actions_downloads').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Downloads");
- }, done);
+ it('should load the actions > downloads page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Downloads");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_downloads');
});
- it('should load the actions > contents page correctly', function (done) {
- expect.screenshot('actions_contents').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Contents_Contents&period=day&date=2012-01-01");
- }, done);
+ it('should load the actions > contents page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Contents_Contents&period=day&date=2012-01-01");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_contents');
});
- it("should show all corresponding content pieces when clicking on a content name", function (done) {
- expect.screenshot("actions_content_name_piece").to.be.captureSelector('.pageWrap', function (page) {
- page.click('.dataTable .subDataTable .value:contains(ImageAd)');
- }, done);
+ it("should show all corresponding content pieces when clicking on a content name", async function () {
+ elem = await page.jQuery('.dataTable .subDataTable .value:contains(ImageAd)');
+ await elem.click();
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_content_name_piece');
});
- it("should show all tracked content pieces when clicking on the table", function (done) {
- expect.screenshot("actions_content_piece").to.be.captureSelector('.pageWrap', function (page) {
- page.click('.reportDimension .dimension:contains(Content Piece)');
- }, done);
+ it("should show all tracked content pieces when clicking on the table", async function () {
+ elem = await page.jQuery('.reportDimension .dimension:contains(Content Piece)');
+ await elem.click();
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_content_piece');
});
- it("should show all corresponding content names when clicking on a content piece", function (done) {
- expect.screenshot("actions_content_piece_name").to.be.captureSelector('.pageWrap', function (page) {
- page.click('.dataTable .subDataTable .value:contains(Click NOW)');
- }, done);
+ it("should show all corresponding content names when clicking on a content piece", async function () {
+ elem = await page.jQuery('.dataTable .subDataTable .value:contains(Click NOW)');
+ await elem.click();
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('actions_content_piece_name');
});
// referrers pages
- it('should load the referrers > overview page correctly', function (done) {
- expect.screenshot('referrers_overview').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=General_Overview");
- }, done);
+ it('should load the referrers > overview page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=General_Overview");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_overview');
});
// referrers pages
- it('should load the referrers > overview page correctly', function (done) {
- expect.screenshot('referrers_allreferrers').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_WidgetGetAll");
- }, done);
+ it('should load the referrers > overview page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_WidgetGetAll");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_allreferrers');
});
- it('should display metric tooltip correctly', function (done) {
- expect.screenshot("metric_tooltip").to.be.captureSelector('.pageWrap,.columnDocumentation:visible', function (page) {
- page.mouseMove('[data-report="Referrers.getReferrerType"] #nb_visits .thDIV', 500);
- }, done);
+ it('should display metric tooltip correctly', async function () {
+ let elem = await page.$('[data-report="Referrers.getReferrerType"] #nb_visits .thDIV');
+ await elem.hover();
+
+ await page.waitFor(500);
+
+ elem = await page.jQuery('.columnDocumentation:visible', { waitFor: true });
+ expect(await elem.screenshot()).to.matchImage('metric_tooltip');
});
- it('should load the referrers > search engines & keywords page correctly', function (done) {
- this.retries(3);
- expect.screenshot('referrers_search_engines_keywords').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_SubmenuSearchEngines");
- }, done);
+ it('should load the referrers > search engines & keywords page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_SubmenuSearchEngines");
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_search_engines_keywords');
});
- it('should load the referrers > websites correctly', function (done) {
- expect.screenshot('referrers_websites').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_SubmenuWebsitesOnly");
- }, done);
+ it('should load the referrers > websites correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_SubmenuWebsitesOnly");
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_websites');
});
- it('should load the referrers > social page correctly', function (done) {
- expect.screenshot('referrers_socials').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_Socials");
- }, done);
+ it('should load the referrers > social page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_Socials");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_socials');
});
- it('should load the referrers > campaigns page correctly', function (done) {
- expect.screenshot('referrers_campaigns').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_Campaigns");
- }, done);
+ it('should load the referrers > campaigns page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Referrers_Referrers&subcategory=Referrers_Campaigns");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('referrers_campaigns');
});
// goals pages
- it('should load the goals > ecommerce page correctly', function (done) {
- expect.screenshot('goals_ecommerce').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load( "?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=General_Overview")
- }, done);
+ it('should load the goals > ecommerce page correctly', async function () {
+ await page.goto( "?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=General_Overview")
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector('.pageWrap')).to.matchImage('goals_ecommerce');
});
- it('should load the goals > overview page correctly', function (done) {
- expect.screenshot('goals_overview').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load( "?" + urlBase + "#?" + generalParams + "&category=Goals_Goals&subcategory=General_Overview");
- }, done);
+ it('should load the goals > overview page correctly', async function () {
+ await page.goto( "?" + urlBase + "#?" + generalParams + "&category=Goals_Goals&subcategory=General_Overview");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector('.pageWrap')).to.matchImage('goals_overview');
});
- it('should load the goals > management page correctly', function (done) {
- expect.screenshot('goals_manage').to.be.captureSelector('#content,.top_bar_sites_selector,.entityContainer', function (page) {
- page.load("?" + generalParams + "&module=Goals&action=manage", 2000);
- }, done);
+ it('should load the goals > management page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=Goals&action=manage");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector('#content,.top_bar_sites_selector,.entityContainer')).to.matchImage('goals_manage');
});
- it('should load the goals > single goal page correctly', function (done) {
- expect.screenshot('goals_individual_goal').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Goals_Goals&subcategory=1");
- }, done);
+ it('should load the goals > single goal page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Goals_Goals&subcategory=1");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector('.pageWrap')).to.matchImage('goals_individual_goal');
});
- it('should update the evolution chart if a sparkline is clicked', function (done) {
- expect.screenshot('goals_individual_goal_updated').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.click('.sparkline.linked:contains(%)');
- }, done);
+ it('should update the evolution chart if a sparkline is clicked', async function () {
+ elem = await page.jQuery('.sparkline.linked:contains(%)');
+ await elem.click();
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+
+ expect(await page.screenshotSelector('.pageWrap')).to.matchImage('goals_individual_goal_updated');
});
// should load the row evolution [see #11526]
- it('should show rov evolution for goal tables', function (done) {
- expect.screenshot('goals_individual_row_evolution').to.be.captureSelector('.ui-dialog', function (page) {
- page.mouseMove('table.dataTable tbody tr:first-child');
- page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display
- page.click('a.actionRowEvolution:visible');
- page.wait(2000);
- }, done);
+ it('should show rov evolution for goal tables', async function () {
+ await page.waitForNetworkIdle();
+
+ const row = await page.waitForSelector('.dataTable tbody tr:first-child');
+ await row.hover();
+
+ const icon = await page.waitForSelector('.dataTable tbody tr:first-child a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.rowevolution');
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshotSelector('.ui-dialog')).to.matchImage('goals_individual_row_evolution');
});
// Events pages
- it('should load the Events > index page correctly', function (done) {
- expect.screenshot('events_overview').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Events_Events");
- }, done);
+ it('should load the Events > index page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=Events_Events");
+ await page.mouse.move(-10, -10);
+
+ expect(await page.screenshotSelector('.pageWrap,.dataTable')).to.matchImage('events_overview');
});
// one page w/ segment
- it('should load the visitors > overview page correctly when a segment is specified', function (done) {
- expect.screenshot('visitors_overview_segment').to.be.captureSelector('.pageWrap,.top_controls', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=General_Overview&segment=" + segment);
- }, done);
+ it('should load the visitors > overview page correctly when a segment is specified', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=General_Overview&segment=" + segment);
+
+ expect(await page.screenshotSelector('.pageWrap,.top_controls')).to.matchImage('visitors_overview_segment');
});
// example ui pages
- it('should load the example ui > dataTables page correctly', function (done) {
- expect.screenshot('exampleui_dataTables').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=ExampleUI_GetTemperaturesDataTable");
- }, done);
+ it('should load the example ui > dataTables page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=ExampleUI_GetTemperaturesDataTable");
+ await page.mouse.move(-10, -10);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_dataTables');
});
- it('should load the example ui > barGraph page correctly', function (done) {
- expect.screenshot('exampleui_barGraph').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Bar%20graph");
- }, done);
+ it('should load the example ui > barGraph page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Bar%20graph");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_barGraph');
});
- it('should load the example ui > pieGraph page correctly', function (done) {
- expect.screenshot('exampleui_pieGraph').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Pie%20graph");
- }, done);
+ it('should load the example ui > pieGraph page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Pie%20graph");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_pieGraph');
});
- it('should load the example ui > tagClouds page correctly', function (done) {
- expect.screenshot('exampleui_tagClouds').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Tag%20clouds");
- }, done);
+ it('should load the example ui > tagClouds page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Tag%20clouds");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_tagClouds');
});
- it('should load the example ui > sparklines page correctly', function (done) {
- expect.screenshot('exampleui_sparklines').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Sparklines");
- }, done);
+ it('should load the example ui > sparklines page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Sparklines");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_sparklines');
});
- it('should load the example ui > evolution graph page correctly', function (done) {
- expect.screenshot('exampleui_evolutionGraph').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Evolution%20Graph");
- }, done);
+ it('should load the example ui > evolution graph page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Evolution%20Graph");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_evolutionGraph');
});
- it('should load the example ui > treemap page correctly', function (done) {
- expect.screenshot('exampleui_treemap').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Treemap");
- page.wait(2000);
- }, done);
+ it('should load the example ui > treemap page correctly', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=ExampleUI_UiFramework&subcategory=Treemap");
+ await page.waitForNetworkIdle();
+ await page.waitFor(500);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('exampleui_treemap');
});
// widgetize
- it('should load the widgetized visitor log correctly', function (done) {
- this.retries(3);
- expect.screenshot('widgetize_visitor_log').to.be.capture(function (page) {
- expect.screenshot("widgetize_visitor_log").to.be.skippedOnAbort();
- page.load("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorLog");
- page.evaluate(function () {
- $('.expandDataTableFooterDrawer').click();
- }, 3000);
- }, done);
+ it('should load the widgetized visitor log correctly', async function () {
+ await page.goto("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorLog");
+ await page.evaluate(function () {
+ $('.expandDataTableFooterDrawer').click();
+ });
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('widgetize_visitor_log');
});
- it('should load the widgetized all websites dashboard correctly', function (done) {
- this.retries(3);
- expect.screenshot('widgetize_allwebsites').to.be.capture(function (page) {
- page.load("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=MultiSites&actionToWidgetize=standalone");
- page.wait(1000);
- }, done);
+ it('should load the widgetized all websites dashboard correctly', async function () {
+ await page.goto("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=MultiSites&actionToWidgetize=standalone");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('widgetize_allwebsites');
});
- it('should widgetize the ecommerce log correctly', function (done) {
- this.retries(3);
- expect.screenshot('widgetize_ecommercelog').to.be.capture(function (page) {
- page.load("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Ecommerce&actionToWidgetize=getEcommerceLog&filter_limit=-1");
- }, done);
+ it('should widgetize the ecommerce log correctly', async function () {
+ await page.goto("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Ecommerce&actionToWidgetize=getEcommerceLog&filter_limit=-1");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('widgetize_ecommercelog');
});
// Do not allow API response to be displayed
- it('should not allow to widgetize an API call', function (done) {
- expect.screenshot('widgetize_apidisallowed').to.be.capture(function (page) {
- page.load("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=API&actionToWidgetize=index&method=SitesManager.getImageTrackingCode&piwikUrl=test");
- }, done);
+ it('should not allow to widgetize an API call', async function () {
+ await page.goto("?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=API&actionToWidgetize=index&method=SitesManager.getImageTrackingCode&piwikUrl=test");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('widgetize_apidisallowed');
});
- it('should not display API response in the content and redirect to dashboard instead', function (done) {
- expect.page().contains('#dashboardWidgetsArea', /*'menu_apidisallowed',*/ function (page) {
- var url = "?" + urlBase + "#?" + generalParams + "&module=API&action=SitesManager.getImageTrackingCode";
- page.load(url, 2000);
- }, done);
+ it('should not display API response in the content and redirect to dashboard instead', async function () {
+ var url = "?" + urlBase + "#?" + generalParams + "&module=API&action=SitesManager.getImageTrackingCode";
+ await page.goto(url);
+ await page.waitForNetworkIdle();
+
+ // check dashboard is present
+ await page.waitForSelector('#dashboardWidgetsArea');
});
// Ecommerce
- it('should load the ecommerce overview page', function (done) {
- expect.screenshot('ecommerce_overview').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=General_Overview");
- }, done);
+ it('should load the ecommerce overview page', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=General_Overview");
+
+ expect(await page.screenshotSelector('.pageWrap,.dataTable')).to.matchImage('ecommerce_overview');
});
- it('should load the ecommerce log page', function (done) {
- this.retries(3);
- expect.screenshot('ecommerce_log').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_EcommerceLog");
- }, done);
+ it('should load the ecommerce log page', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_EcommerceLog");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('ecommerce_log');
});
- it('should load the ecommerce log page with segment', function (done) {
- this.retries(3);
- expect.screenshot('ecommerce_log_segmented').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + urlBase + "&segment=countryCode%3D%3DUS#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_EcommerceLog&segment=countryCode%3D%3DUS");
- }, done);
+ it('should load the ecommerce log page with segment', async function () {
+ await page.goto("?" + urlBase + "&segment=countryCode%3D%3DUS#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_EcommerceLog&segment=countryCode%3D%3DUS");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('ecommerce_log_segmented');
});
- it('should load the ecommerce products page', function (done) {
- expect.screenshot('ecommerce_products').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_Products");
- }, done);
+ it('should load the ecommerce products page', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Goals_Products");
+
+ expect(await page.screenshotSelector('.pageWrap,.dataTable')).to.matchImage('ecommerce_products');
});
- it('should load the ecommerce sales page', function (done) {
- expect.screenshot('ecommerce_sales').to.be.captureSelector('.pageWrap,.dataTable', function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Ecommerce_Sales");
- }, done);
+ it('should load the ecommerce sales page', async function () {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=Goals_Ecommerce&subcategory=Ecommerce_Sales");
+
+ expect(await page.screenshotSelector('.pageWrap,.dataTable')).to.matchImage('ecommerce_sales');
});
- it('should load the Admin home page correct', function (done) {
- expect.screenshot('admin_home').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CoreAdminHome&action=home");
- }, done);
+ it('should load the Admin home page correct', async function () {
+ await page.goto("?" + generalParams + "&module=CoreAdminHome&action=home");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_home');
});
// Admin user settings (plugins not displayed)
- it('should load the Manage > Websites admin page correctly', function (done) {
- expect.screenshot('admin_manage_websites').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=SitesManager&action=index");
- page.evaluate(function () {
- $('.form-help:contains(UTC time is)').hide();
- });
- }, done);
+ it('should load the Manage > Websites admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=SitesManager&action=index");
+ await page.evaluate(function () {
+ $('.form-help:contains(UTC time is)').hide();
+ });
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_manage_websites');
});
- it('should load the user settings admin page correctly', function (done) {
- expect.screenshot('admin_user_settings').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=UsersManager&action=userSettings");
- }, done);
+ it('should load the user settings admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=UsersManager&action=userSettings");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_user_settings');
});
- it('should ask for password confirmation when changing email', function (done) {
- expect.screenshot('admin_user_settings_asks_confirmation').to.be.captureSelector('.modal.open', function (page) {
- page.evaluate(function () {
- $('#userSettingsTable input#email').val('testlogin123@example.com').change();
- });
- page.click('#userSettingsTable [piwik-save-button] .btn');
- }, done);
+ it('should ask for password confirmation when changing email', async function () {
+ await page.evaluate(function () {
+ $('#userSettingsTable input#email').val('testlogin123@example.com').change();
+ });
+ await page.click('#userSettingsTable [piwik-save-button] .btn');
+ await page.waitFor(500); // wait for animation
+
+ pageWrap = await page.$('.modal.open');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_user_settings_asks_confirmation');
});
- it('should load error when wrong password specified', function (done) {
- expect.screenshot('admin_user_settings_wrong_password_confirmed').to.be.captureSelector('#notificationContainer', function (page) {
- page.sendKeys('.modal.open #currentPassword', 'foobartest123');
- page.click('.modal.open .modal-action:not(.modal-no)');
- }, done);
+ it('should load error when wrong password specified', async function () {
+ await page.type('.modal.open #currentPassword', 'foobartest123');
+ btnNo = await page.jQuery('.modal.open .modal-action:not(.modal-no)');
+ await btnNo.click();
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('#notificationContainer');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_user_settings_wrong_password_confirmed');
});
- it('should load the Manage > Tracking Code admin page correctly', function (done) {
- expect.screenshot('admin_manage_tracking_code').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CoreAdminHome&action=trackingCodeGenerator");
- page.wait(1000); // for some extra JS to execute
- }, done);
+ it('should load the Manage > Tracking Code admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=CoreAdminHome&action=trackingCodeGenerator");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_manage_tracking_code');
});
- it('should load the Settings > General Settings admin page correctly', function (done) {
- expect.screenshot('admin_settings_general').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CoreAdminHome&action=generalSettings");
- // angular might need a little to render after page has loaded
- page.wait(1000);
- page.evaluate(function () {
- $('textarea:eq(0)').trigger('focus');
- });
- page.wait(1000);
- }, done);
+ it('should load the Settings > General Settings admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=CoreAdminHome&action=generalSettings");
+ await page.waitForSelector('.pageWrap');
+ await page.waitForNetworkIdle();
+ await page.evaluate(function () {
+ $('textarea:eq(0)').trigger('focus');
+ });
+ await page.waitFor(750);
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_settings_general');
});
- it('should load the Privacy Opt out iframe correctly', function (done) {
- expect.screenshot('admin_privacy_optout_iframe').to.be.capture(function (page) {
- page.load("?module=CoreAdminHome&action=optOut&language=de");
- }, done);
+ it('should load the Privacy Opt out iframe correctly', async function () {
+ await page.goto("?module=CoreAdminHome&action=optOut&language=de");
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('admin_privacy_optout_iframe');
});
- it('should load the Settings > Mobile Messaging admin page correctly', function (done) {
- expect.screenshot('admin_settings_mobilemessaging').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=MobileMessaging&action=index");
- }, done);
+ it('should load the Settings > Mobile Messaging admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=MobileMessaging&action=index");
+ await page.waitForNetworkIdle();
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_settings_mobilemessaging');
});
- it('should switch the SMS provider correctly', function (done) {
- expect.screenshot('admin_settings_mobilemessaging_provider').to.be.captureSelector('.pageWrap', function (page) {
- page.evaluate(function() {
- $('[name=smsProviders] ul li:nth-child(2)').click();
- }, 150);
- }, done);
+ it('should switch the SMS provider correctly', async function () {
+ await page.evaluate(function() {
+ $('[name=smsProviders] ul li:nth-child(3)').click();
+ });
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_settings_mobilemessaging_provider');
});
- it('should load the themes admin page correctly', function (done) {
- expect.screenshot('admin_themes').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CorePluginsAdmin&action=themes");
- }, done);
+ it('should load the themes admin page correctly', async function () {
+ await page.goto("?" + generalParams + "&module=CorePluginsAdmin&action=themes");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_themes');
});
- it('should load the plugins admin page correctly', function (done) {
- expect.screenshot('admin_plugins').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CorePluginsAdmin&action=plugins");
- }, done);
+ it('should load the plugins admin page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=CorePluginsAdmin&action=plugins");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_plugins');
});
- it('should load the plugins admin page correctly', function (done) {
+ it('should load the plugins admin page correctly', async function () {
testEnvironment.overrideConfig('General', {
enable_internet_features: 0
});
testEnvironment.save();
- expect.screenshot('admin_plugins_no_internet').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=CorePluginsAdmin&action=plugins");
- }, done);
+ await page.goto("?" + generalParams + "&module=CorePluginsAdmin&action=plugins");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_plugins_no_internet');
});
- it('should load the config file page correctly', function (done) {
- expect.screenshot('admin_diagnostics_configfile').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=Diagnostics&action=configfile");
- }, done);
+ it('should load the config file page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=Diagnostics&action=configfile");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_diagnostics_configfile');
});
- it('should load the Settings > Visitor Generator admin page correctly', function (done) {
- expect.screenshot('admin_visitor_generator').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=VisitorGenerator&action=index");
+ it('should load the Settings > Visitor Generator admin page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=VisitorGenerator&action=index");
+ await page.evaluate(function () {
+ var $p = $('#content p:eq(1)');
+ $p.text($p.text().replace(/\(change .*\)/g, ''));
+ });
- page.evaluate(function () {
- var $p = $('#content p:eq(1)');
- $p.text($p.text().replace(/\(change .*\)/g, ''));
- });
- }, done);
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('admin_visitor_generator');
});
// Notifications
- it('should load the notifications page correctly', function (done) {
- expect.screenshot('notifications').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=ExampleUI&action=notifications&idSite=1&period=day&date=yesterday");
- page.evaluate(function () {
- $('#header').hide();
- });
- }, done);
+ it('should load the notifications page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=ExampleUI&action=notifications&idSite=1&period=day&date=yesterday");
+ await page.evaluate(function () {
+ $('#header').hide();
+ });
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('notifications');
});
// Fatal error safemode
- it('should load the safemode fatal error page correctly', function (done) {
- var message = "Call%20to%20undefined%20function%20Piwik%5CPlugins%5CFoobar%5CPiwik_Translate()",
- file = "%2Fhome%2Fvagrant%2Fwww%2Fpiwik%2Fplugins%2FFoobar%2FFoobar.php%20line%205",
- line = 58;
-
- expect.screenshot('fatal_error_safemode').to.be.capture(function (page) {
- page.load("?" + generalParams + "&module=CorePluginsAdmin&action=safemode&idSite=1&period=day&date=yesterday&activated"
- + "&error_message=" + message + "&error_file=" + file + "&error_line=" + line + "&tests_hide_piwik_version=1");
- page.evaluate(function () {
- var elements = document.querySelectorAll('table tr td:nth-child(2)');
- for (var i in elements) {
- if (elements.hasOwnProperty(i) && elements[i].innerText.match(/^[0-9]\.[0-9]\.[0-9]$/)) {
- elements[i].innerText = '3.0.0'
- }
+ it('should load the safemode fatal error page correctly', async function() {
+ const message = "Call%20to%20undefined%20function%20Piwik%5CPlugins%5CFoobar%5CPiwik_Translate()";
+ const file = "%2Fhome%2Fvagrant%2Fwww%2Fpiwik%2Fplugins%2FFoobar%2FFoobar.php%20line%205";
+ const line = 58;
+
+ await page.goto("?" + generalParams + "&module=CorePluginsAdmin&action=safemode&idSite=1&period=day&date=yesterday&activated"
+ + "&error_message=" + message + "&error_file=" + file + "&error_line=" + line + "&tests_hide_piwik_version=1");
+ await page.evaluate(function () {
+ var elements = document.querySelectorAll('table tr td:nth-child(2)');
+ for (var i in elements) {
+ if (elements.hasOwnProperty(i) && elements[i].innerText.match(/^[0-9]\.[0-9]\.[0-9]$/)) {
+ elements[i].innerText = '3.0.0'
}
- });
- }, done);
+ }
+ });
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('fatal_error_safemode');
});
// invalid site parameter
- it('should show login form for non super user if invalid idsite given', function (done) {
+ it('should show login form for non super user if invalid idsite given', async function() {
testEnvironment.testUseMockAuth = 0;
testEnvironment.save();
- expect.screenshot('invalid_idsite').to.be.capture(function (page) {
- page.load("?module=CoreHome&action=index&idSite=10006&period=week&date=2017-06-04");
- }, done);
+ await page.goto("?module=CoreHome&action=index&idSite=10006&period=week&date=2017-06-04");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('invalid_idsite');
});
- it('should show error for super user if invalid idsite given', function (done) {
- expect.screenshot('invalid_idsite_superuser').to.be.capture(function (page) {
- page.load("?module=CoreHome&action=index&idSite=10006&period=week&date=2017-06-04");
- }, done);
+ it('should show error for super user if invalid idsite given', async function() {
+ await page.goto("?module=CoreHome&action=index&idSite=10006&period=week&date=2017-06-04");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('invalid_idsite_superuser');
});
- it('should load the glossary correctly', function (done) {
- expect.screenshot('glossary').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=API&action=glossary");
- }, done);
+ it('should load the glossary correctly', async function() {
+ await page.goto("?" + generalParams + "&module=API&action=glossary");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('glossary');
});
- it('should load the glossary correctly widgetized', function (done) {
- expect.screenshot('glossary_widgetized').to.be.capture(function (page) {
- page.load("?" + generalParams + "&module=API&action=glossary&widget=1");
- }, done);
+ it('should load the glossary correctly widgetized', async function() {
+ await page.goto("?" + generalParams + "&module=API&action=glossary&widget=1");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('glossary_widgetized');
});
// DB error message
- it('should fail correctly when db information in config is incorrect', function (done) {
+ it('should fail correctly when db information in config is incorrect', async function() {
testEnvironment.overrideConfig('database', {
host: config.phpServer.REMOTE_ADDR,
@@ -667,184 +814,206 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
});
testEnvironment.save();
- expect.screenshot('db_connect_error').to.be.capture(function (page) {
- page.load("");
- }, done);
+ await page.goto("");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('db_connect_error');
});
// top bar pages
- it('should load the widgets listing page correctly', function (done) {
- expect.screenshot('widgets_listing').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=Widgetize&action=index");
-
- page.mouseMove('.widgetpreview-categorylist>li:contains(Visitors):first');
- page.click('.widgetpreview-categorylist>li:contains(Visitors):first');
- page.mouseMove('.widgetpreview-widgetlist li:contains(Visits Over Time)');
- page.click('.widgetpreview-widgetlist li:contains(Visits Over Time)');
- page.evaluate(function () {
- $('.formEmbedCode').each(function () {
- var val = $(this).val();
- val = val.replace(/localhost\:[0-9]+/g, 'localhost');
- $(this).val(val);
- });
+ it('should load the widgets listing page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=Widgetize&action=index");
+
+ visitors = await page.jQuery('.widgetpreview-categorylist>li:contains(Visitors):first');
+ await visitors.hover();
+ await visitors.click();
+ await page.waitFor(100);
+
+ visitorsOT = await page.jQuery('.widgetpreview-widgetlist li:contains(Visits Over Time)');
+ await visitorsOT.hover();
+ await visitorsOT.click();
+ await page.waitForNetworkIdle();
+
+ await page.evaluate(function () {
+ $('.formEmbedCode').each(function () {
+ var val = $(this).val();
+ val = val.replace(/localhost\:[0-9]+/g, 'localhost');
+ $(this).val(val);
});
- }, done);
- });
+ });
- it('should load the API listing page correctly', function (done) {
- expect.screenshot('api_listing').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=API&action=listAllAPI");
- }, done);
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('widgets_listing');
});
- it('should load the email reports page correctly', function (done) {
- expect.screenshot('email_reports').to.be.captureSelector('.pageWrap', function (page) {
- page.load("?" + generalParams + "&module=ScheduledReports&action=index");
- page.evaluate(function () {
- $('#header').hide();
- });
- }, done);
+ it('should load the API listing page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=API&action=listAllAPI");
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('api_listing');
});
- it('should load the scheduled reports when Edit button is clicked', function (done) {
- expect.screenshot('email_reports_editor').to.be.captureSelector('.pageWrap', function (page) {
- page.click('.entityTable tr:nth-child(4) button[title=Edit]');
- }, done);
+ it('should load the email reports page correctly', async function() {
+ await page.goto("?" + generalParams + "&module=ScheduledReports&action=index");
+ await page.evaluate(function () {
+ $('#header').hide();
+ });
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('email_reports');
});
- it('should load the feedback form when the feedback form link is clicked', function (done) {
- expect.screenshot('feedback_form').to.be.captureSelector('.pageWrap', function (page) {
+ it('should load the scheduled reports when Edit button is clicked', async function() {
+ await page.click('.entityTable tr:nth-child(4) button[title="Edit"]');
- page.load("?" + generalParams + "&module=Feedback&action=index");
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('email_reports_editor');
+ });
- page.evaluate(function () {
- $('.enrichedHeadline .title').each(function () {
- if ($(this).text().indexOf("Matomo") !== -1) {
- var replace = $(this).text().replace(/Matomo\s*\d+\.\d+(\.\d+)?([\-a-z]*\d+)?/g, 'Matomo');
- $(this).text(replace);
- }
- });
+ it('should load the feedback form when the feedback form link is clicked', async function() {
+ await page.goto("?" + generalParams + "&module=Feedback&action=index");
+
+ await page.evaluate(function () {
+ $('.enrichedHeadline .title').each(function () {
+ if ($(this).text().indexOf("Matomo") !== -1) {
+ var replace = $(this).text().replace(/Matomo\s*\d+\.\d+(\.\d+)?([\-a-z]*\d+)?/g, 'Matomo');
+ $(this).text(replace);
+ }
});
- }, done);
+ });
+
+ pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('feedback_form');
});
// date range clicked
- it('should reload to the correct date when a date range is selected in the period selector', function (done) {
- expect.screenshot('period_select_date_range_click').to.be.capture(function (page) {
- page.load("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=VisitTime_SubmenuTimes");
- page.wait(1000);
- page.click('#date.title');
- // we need to make sure there to wait for a bit till date is opened and period selected
- page.click('#period_id_range');
- page.evaluate(function () {
- $(document).ready(function () {
- $('#inputCalendarFrom').val('2012-08-02');
- $('#inputCalendarTo').val('2012-08-12');
- setTimeout(function () {$('#calendarApply').click();}, 500);
- });
- });
- }, done);
+ it('should reload to the correct date when a date range is selected in the period selector', async function() {
+ await page.goto("?" + urlBase + "#?" + generalParams + "&category=General_Visitors&subcategory=VisitTime_SubmenuTimes");
+ await page.waitForNetworkIdle();
+ await page.click('#date.title');
+ await page.click('label[for=period_id_range]');
+ await page.evaluate(function () {
+ $('#inputCalendarFrom').val('2012-08-02');
+ $('#inputCalendarTo').val('2012-08-12');
+ });
+ await page.waitFor(500);
+ await page.evaluate(() => $('#calendarApply').click());
+
+ await page.mouse.move(-10, -10);
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('period_select_date_range_click');
});
// visitor profile popup
- it('should load the visitor profile popup correctly', function (done) {
- this.retries(3);
+ it('should load the visitor profile popup correctly', async function() {
+ await page.goto("?" + widgetizeParams + "&" + idSite2Params + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorProfilePopup"
+ + "&enableAnimation=0");
- expect.screenshot('visitor_profile_popup').to.be.capture(function (page) {
- page.load("?" + widgetizeParams + "&" + idSite2Params + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorProfilePopup"
- + "&enableAnimation=0");
+ await (await page.waitForSelector('.visitor-profile-show-map')).click();
+ await page.waitForNetworkIdle();
+ await page.waitFor(200);
- page.evaluate(function () {
- $(document).ready(function () {
- $('.visitor-profile-show-map').click();
- });
- });
-
- page.wait(1000);
- }, done);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('visitor_profile_popup');
});
// opt out page
- it('should load the opt out page correctly', function (done) {
- expect.screenshot('opt_out').to.be.capture(function (page) {
- testEnvironment.testUseMockAuth = 0;
- testEnvironment.save();
+ it('should load the opt out page correctly', async function() {
+ testEnvironment.testUseMockAuth = 0;
+ testEnvironment.save();
- page.load("?module=CoreAdminHome&action=optOut&language=en");
- }, done);
+ await page.goto("?module=CoreAdminHome&action=optOut&language=en");
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('opt_out');
});
// extra segment tests
- it('should load the row evolution page correctly when a segment is selected', function (done) {
- this.retries(3);
- expect.page().contains('.ui-dialog > .ui-dialog-content > div.rowevolution:visible', /*'segmented_rowevolution',*/ function (page) {
- var url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-01-13#?category=General_Visitors&subcategory=CustomVariables_CustomVariables&idSite=1&period=year&date=2012-01-13";
- page.load(url, 1000);
- page.click('.segmentationTitle');
- page.click('.segname:contains(From Europe)', 1000);
-
- page.mouseMove('table.dataTable tbody tr:first-child');
- page.mouseMove('a.actionRowEvolution:visible'); // necessary to get popover to display
- page.click('a.actionRowEvolution:visible');
- page.wait(2000);
-
- }, done);
- });
-
- it('should load the segmented visitor log correctly when a segment is selected', function (done) {
- this.retries(3);
- expect.screenshot('segmented_visitorlog').to.be.captureSelector('.ui-dialog > .ui-dialog-content > div.dataTableVizVisitorLog', function (page) {
- var url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-01-13#?category=General_Visitors&subcategory=CustomVariables_CustomVariables&idSite=1&period=year&date=2012-01-13";
- page.load(url, 1000);
- page.evaluate(function(){
- $('.segmentationTitle').click();
- $('.segname:contains(From Europe)').click();
- }, 5000);
- page.mouseMove('table.dataTable tbody tr:first-child');
- page.evaluate(function(){
- var visitorLogLinkSelector = 'table.dataTable tbody tr:first-child a.actionSegmentVisitorLog';
- $(visitorLogLinkSelector).click();
- }, 2000);
- page.mouseMove('#secondNavBar');
- }, done);
- });
-
- it('should not apply current segmented when opening visitor log', function (done) {
- this.retries(3);
+ it('should load the row evolution page correctly when a segment is selected', async function() {
+ const url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-01-13#?category=General_Visitors&subcategory=CustomVariables_CustomVariables&idSite=1&period=year&date=2012-01-13";
+ await page.goto(url);
+ const segmentTitle = await page.waitForSelector('.segmentationTitle');
+ await segmentTitle.click();
+ await page.waitForFunction("$('.segname:contains(From Europe)').length > 0");
+ const segment = await page.jQuery('.segname:contains(From Europe)');
+ await segment.click();
+ await page.waitForNetworkIdle();
+
+ const row = await page.waitForSelector('.dataTable tbody tr:first-child');
+ await row.hover();
+
+ const icon = await page.waitForSelector('.dataTable tbody tr:first-child a.actionRowEvolution');
+ await icon.click();
+
+ await page.waitForSelector('.ui-dialog');
+ await page.waitForNetworkIdle();
+
+ // test succeeds if the element is present
+ await page.waitForSelector('.ui-dialog > .ui-dialog-content > div.rowevolution');
+ });
+
+ it('should load the segmented visitor log correctly when a segment is selected', async function() {
+ const url = "?module=CoreHome&action=index&idSite=1&period=year&date=2012-01-13#?category=General_Visitors&subcategory=CustomVariables_CustomVariables&idSite=1&period=year&date=2012-01-13";
+ await page.goto(url);
+ await page.waitForNetworkIdle();
+ await page.evaluate(function(){
+ $('.segmentationTitle').click();
+ $('.segname:contains(From Europe)').click();
+ });
+ await page.waitForNetworkIdle();
+
+ elem = await page.$('table.dataTable tbody tr:first-child');
+ await elem.hover();
+ await page.evaluate(function(){
+ var visitorLogLinkSelector = 'table.dataTable tbody tr:first-child a.actionSegmentVisitorLog';
+ $(visitorLogLinkSelector).click();
+ });
+ await page.waitForNetworkIdle();
+ elem = await page.$('#secondNavBar');
+ await elem.hover();
+ pageWrap = await page.$('.ui-dialog > .ui-dialog-content > div.dataTableVizVisitorLog');
+ expect(await pageWrap.screenshot()).to.matchImage('segmented_visitorlog');
+ });
+
+ it('should not apply current segmented when opening visitor log', async function() {
delete testEnvironment.queryParamOverride.visitorId;
testEnvironment.save();
- expect.screenshot("visitor_profile_not_segmented").to.be.similar(0.002).to.capture(function (page) {
- var url = "?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorLog&segment=visitCount==2&enableAnimation=0";
- page.load(url, 1000);
+ const url = "?" + widgetizeParams + "&" + generalParams + "&moduleToWidgetize=Live&actionToWidgetize=getVisitorLog&segment=visitCount==2&enableAnimation=0";
+ await page.goto(url);
+ await page.waitForNetworkIdle();
- page.evaluate(function () {
- $('.visitor-log-visitor-profile-link').first().click();
- }, 500);
+ await page.evaluate(function () {
+ $('.visitor-log-visitor-profile-link').first().click();
+ });
- page.wait(2000);
- }, done);
+ await page.waitForNetworkIdle();
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('visitor_profile_not_segmented');
});
- it('should display API errors properly without showing them as notifications', function (done) {
- expect.screenshot("api_error").to.be.captureSelector('.pageWrap', function (page) {
- var url = "?" + generalParams + "&module=CoreHome&action=index#?" + generalParams + "&category=%7B%7Bconstructor.constructor(%22_x(45)%22)()%7D%7D&subcategory=%7B%7Bconstructor.constructor(%22_x(48)%22)()%7D%7D&forceError=1";
- var adminUrl = "?" + generalParams + "&module=CoreAdminHome&action=home";
- page.load(url, 1000);
- page.load(adminUrl, 1000);
- }, done);
+ it('should display API errors properly without showing them as notifications', async function () {
+ var url = "?" + generalParams + "&module=CoreHome&action=index#?" + generalParams + "&category=%7B%7Bconstructor.constructor(%22_x(45)%22)()%7D%7D&subcategory=%7B%7Bconstructor.constructor(%22_x(48)%22)()%7D%7D&forceError=1";
+ var adminUrl = "?" + generalParams + "&module=CoreAdminHome&action=home";
+
+ await page.goto(url);
+ await page.waitForNetworkIdle();
+
+ await page.goto(adminUrl);
+ await page.waitFor('#notificationContainer');
+
+ const pageWrap = await page.$('.pageWrap');
+ expect(await pageWrap.screenshot()).to.matchImage('api_error');
});
// embedding whole app
describe('enable_framed_pages', function () {
- before(function () {
+ beforeEach(function () {
testEnvironment.testUseMockAuth = 0;
testEnvironment.overrideConfig('General', 'enable_framed_pages', 1);
testEnvironment.save();
});
- after(function () {
+ afterEach(function () {
testEnvironment.testUseMockAuth = 1;
if (testEnvironment.configOverride.General && testEnvironment.configOverride.General.enable_framed_pages) {
delete testEnvironment.configOverride.General.enable_framed_pages;
@@ -852,11 +1021,15 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
testEnvironment.save();
});
- it('should allow embedding the entire app', function (done) {
- expect.screenshot("embed_whole_app").to.be.capture(function (page) {
- var url = "/tests/resources/embed-file.html#" + encodeURIComponent(page.baseUrl + '?' + urlBase + '&token_auth=' + testEnvironment.tokenAuth);
- page.load(url, 20000);
- }, done);
+ it('should allow embedding the entire app', async function () {
+ var url = "tests/resources/embed-file.html#" + encodeURIComponent(page.baseUrl + 'index.php?' + urlBase + '&token_auth=' + testEnvironment.tokenAuth);
+ await page.goto(url);
+ await page.waitForNetworkIdle();
+
+ const frame = page.frames().find(f => f.name() === 'embed');
+ await frame.waitFor('.widget');
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('embed_whole_app');
});
});
});
diff --git a/tests/UI/specs/ViewDataTable_spec.js b/tests/UI/specs/ViewDataTable_spec.js
index 9ee13e655f..65159a6ab5 100644
--- a/tests/UI/specs/ViewDataTable_spec.js
+++ b/tests/UI/specs/ViewDataTable_spec.js
@@ -8,168 +8,184 @@
*/
describe("ViewDataTableTest", function () { // TODO: should remove Test suffix from images instead of naming suites ...Test
- this.timeout(0);
-
// TODO: rename screenshot files, remove numbers
var url = "?module=Widgetize&action=iframe&moduleToWidgetize=Referrers&idSite=1&period=year&date=2012-08-09&"
+ "actionToWidgetize=getKeywords&viewDataTable=table&filter_limit=5&isFooterExpandedInDashboard=1";
- it("should load correctly", function (done) {
- expect.screenshot("0_initial").to.be.capture(function (page) {
- page.load(url);
- }, done);
+ it("should load correctly", async function () {
+ await page.goto(url);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('0_initial');
});
- it("should load all columns when all columns clicked", function (done) {
- expect.screenshot("1_all_columns").to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=tableAllColumns]');
- }, done);
+ it("should load all columns when all columns clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=tableAllColumns]');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('1_all_columns');
});
- it("should sort a column in descending order when column clicked initially", function (done) {
- expect.screenshot("2_column_sorted_desc").to.be.capture(function (page) {
- page.click('th#avg_time_on_site');
- }, done);
+ it("should sort a column in descending order when column clicked initially", async function () {
+ await page.click('th#avg_time_on_site');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('2_column_sorted_desc');
});
- it("should sort a column in ascending order when column clicked second time", function (done) {
- expect.screenshot("3_column_sorted_asc").to.be.capture(function (page) {
- page.click('th#avg_time_on_site');
- }, done);
+ it("should sort a column in ascending order when column clicked second time", async function () {
+ await page.click('th#avg_time_on_site');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('3_column_sorted_asc');
});
- it("should show all available visualizations for this report", function (done) {
- expect.screenshot("5_visualizations").to.be.captureSelector('.dataTableFooterIcons', function (page) {
- page.click('.activateVisualizationSelection');
- }, done);
+ it("should show all available visualizations for this report", async function () {
+ await page.click('.activateVisualizationSelection');
+
+ const element = await page.$('.dataTableFooterIcons');
+ expect(await element.screenshot()).to.matchImage('5_visualizations');
});
- it("should load goals table when goals footer icon clicked", function (done) {
- expect.screenshot("5_goals").to.be.capture(function (page) {
- page.click('.tableIcon[data-footer-icon-id=tableGoals]');
- }, done);
+ it("should load goals table when goals footer icon clicked", async function () {
+ await page.click('.tableIcon[data-footer-icon-id=tableGoals]');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('5_goals');
});
- it("should load bar graph when bar graph footer icon clicked", function (done) {
- expect.screenshot('6_bar_graph').to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=graphVerticalBar]');
- }, done);
+ it("should load bar graph when bar graph footer icon clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=graphVerticalBar]');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('6_bar_graph');
});
- it("should load pie graph when pie graph footer icon clicked", function (done) {
- expect.screenshot('7_pie_graph').to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=graphPie]');
- }, done);
+ it("should load pie graph when pie graph footer icon clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=graphPie]');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('7_pie_graph');
});
- it("should load a tag cloud when tag cloud footer icon clicked", function (done) {
- expect.screenshot('8_tag_cloud').to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=cloud]');
- }, done);
+ it("should load a tag cloud when tag cloud footer icon clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=cloud]');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('8_tag_cloud');
});
- it("should load normal table when normal table footer icon clicked", function (done) {
- expect.screenshot('9_normal_table').to.be.capture(function (page) {
- page.click('.activateVisualizationSelection');
- page.click('.tableIcon[data-footer-icon-id=table]');
- page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
- }, done);
+ it("should load normal table when normal table footer icon clicked", async function () {
+ await page.click('.activateVisualizationSelection');
+ await page.click('.tableIcon[data-footer-icon-id=table]');
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10); // mae sure no row is highlighted
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('9_normal_table');
});
- it("should show the limit selector when the limit selector is clicked", function (done) {
- expect.screenshot('limit_selector_open').to.be.capture(function (page) {
- page.click('.limitSelection input');
- }, done);
+ it("should show the limit selector when the limit selector is clicked", async function () {
+ await page.click('.limitSelection input');
+ await page.waitFor(200);
+ await page.mouse.move(-10, -10);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('limit_selector_open');
});
- it("should change the number of rows when new limit selected", function (done) {
- expect.screenshot('10_change_limit').to.be.capture(function (page) {
- page.evaluate(function () {
- $('.limitSelection ul li:contains(10):first span').click();
- });
- }, done);
+ it("should change the number of rows when new limit selected", async function () {
+ await page.evaluate(function () {
+ $('.limitSelection ul li:contains(10):first span').click();
+ });
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('10_change_limit');
});
- it("should flatten the table when the flatten link is clicked", function (done) {
- expect.screenshot('11_flattened').to.be.capture(function (page) {
- page.click('.dropdownConfigureIcon');
- page.click('.dataTableFlatten');
- page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
- }, done);
+ it("should flatten the table when the flatten link is clicked", async function () {
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTableFlatten');
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('11_flattened');
});
- it("should show aggregate rows when the aggregate rows option is clicked", function (done) {
- expect.screenshot('12_aggregate_shown').to.be.capture(function (page) {
- page.click('.dropdownConfigureIcon');
- page.click('.dataTableIncludeAggregateRows');
- page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
- }, done);
+ it("should show aggregate rows when the aggregate rows option is clicked", async function () {
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTableIncludeAggregateRows');
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('12_aggregate_shown');
});
- it("should make the report hierarchical when the flatten link is clicked again", function (done) {
- expect.screenshot('13_make_hierarchical').to.be.capture(function (page) {
- page.click('.dropdownConfigureIcon');
- page.click('.dataTableFlatten');
- page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
- }, done);
+ it("should make the report hierarchical when the flatten link is clicked again", async function () {
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTableFlatten');
+ await page.waitForNetworkIdle();
+ await page.mouse.move(-10, -10);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('13_make_hierarchical');
});
- it("should show the visits percent when hovering over a column", function (done) {
- expect.screenshot('14_visits_percent').to.be.capture(function (page) {
- page.mouseMove('td.column:not(.label)');
- }, done);
+ it("should show the visits percent when hovering over a column", async function () {
+ await page.hover('td.column:not(.label)');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('14_visits_percent');
});
- it("should load subtables correctly when row clicked", function (done) {
- expect.screenshot('subtables_loaded').to.be.capture(function (page) {
- page.click('tr.subDataTable:first');
- page.click('tr.subDataTable:eq(2)');
- }, done);
+ it("should load subtables correctly when row clicked", async function () {
+ (await page.$$('tr.subDataTable'))[0].click();
+ await page.waitForNetworkIdle();
+
+ (await page.$$('tr.subDataTable'))[2].click();
+ await page.waitForNetworkIdle();
+
+ await page.waitFor(function () {
+ return $('.cellSubDataTable > .dataTable').length === 2;
+ });
+
+ await page.mouse.move(-10, -10); // mae sure no row is highlighted
+
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('subtables_loaded');
});
- it("should search the table when a search string is entered and the search button clicked", function (done) {
- expect.screenshot('15_search').to.be.capture(function (page) {
- page.click('.dataTableAction.searchAction');
- page.sendKeys('.searchAction .dataTableSearchInput', 'term');
- page.click('.searchAction .icon-search');
- }, done);
+ it("should search the table when a search string is entered and the search button clicked", async function () {
+ await page.click('.dataTableAction.searchAction');
+ await page.focus('.searchAction .dataTableSearchInput');
+ await page.keyboard.type('term');
+ await page.click('.searchAction .icon-search');
+ await page.waitForNetworkIdle();
+ await page.evaluate(() => document.activeElement.blur());
+ await page.waitFor(500);
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('15_search');
});
- it("should display the export popover when clicking the export icon", function (done) {
- expect.screenshot('export_options').to.be.captureSelector('.ui-dialog', function (page) {
- page.click('.activateExportSelection');
- }, done);
+ it("should display the export popover when clicking the export icon", async function () {
+ await page.click('.activateExportSelection');
+ await page.waitFor('#reportExport .btn');
+
+ dialog = await page.$('.ui-dialog');
+ expect(await dialog.screenshot()).to.matchImage('export_options');
});
- it("should show the totals row when the config link is clicked", function (done) {
- expect.screenshot('totals_row').to.be.capture(function (page) {
- page.load(url);
- page.click('.dropdownConfigureIcon');
- page.click('.dataTableShowTotalsRow');
- }, done);
+ it("should show the totals row when the config link is clicked", async function () {
+ await page.goto(url);
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTableShowTotalsRow');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('totals_row');
});
+ it("should display a related report when related report link is clicked", async function () {
+ const newReportUrl = url.replace("=Referrers", "=DevicesDetection").replace("=getKeywords", "=getOsFamilies");
+ await page.goto(newReportUrl);
- it("should display a related report when related report link is clicked", function (done) {
- expect.screenshot('related_report_click').to.be.capture(function (page) {
- var newReportUrl = url.replace("=Referrers", "=DevicesDetection").replace("=getKeywords", "=getOsFamilies");
+ const visibleSpan = await page.jQuery('.datatableRelatedReports li>span:visible');
+ await visibleSpan.click();
+ await page.waitForNetworkIdle();
- page.load(newReportUrl);
- page.click('.datatableRelatedReports li>span:visible');
- }, done);
+ await page.mouse.move(-10, -10); // mae sure no row is highlighted
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('related_report_click');
});
- it("should exclude low population rows when low population clicked", function (done) {
- var newUrl = url.replace('moduleToWidgetize=Referrers', 'moduleToWidgetize=Actions').replace('actionToWidgetize=getKeywords', 'actionToWidgetize=getPageUrls');
- expect.screenshot("exclude_low_population").to.be.capture(function (page) {
- page.load(newUrl);
- page.click('.dropdownConfigureIcon');
- page.click('.dataTableExcludeLowPopulation');
- }, done);
+ it("should exclude low population rows when low population clicked", async function () {
+ const newUrl = url
+ .replace('moduleToWidgetize=Referrers', 'moduleToWidgetize=Actions')
+ .replace('actionToWidgetize=getKeywords', 'actionToWidgetize=getPageUrls');
+ await page.goto(newUrl);
+ await page.click('.dropdownConfigureIcon');
+ await page.click('.dataTableExcludeLowPopulation');
+ await page.waitForNetworkIdle();
+ expect(await page.screenshot({ fullPage: true })).to.matchImage('exclude_low_population');
});
-
}); \ No newline at end of file