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
diff options
context:
space:
mode:
-rw-r--r--core/API/DocumentationGenerator.php2
-rw-r--r--core/API/Request.php2
-rw-r--r--core/DataTable.php20
-rw-r--r--core/DataTable/Filter/ColumnDelete.php22
-rw-r--r--core/Segment.php17
-rw-r--r--lang/en.php1
-rw-r--r--libs/PiwikTracker/PiwikTracker.php2
-rw-r--r--plugins/API/API.php66
-rw-r--r--plugins/Actions/Actions.php54
-rw-r--r--plugins/CoreUpdater/CoreUpdater.php3
-rw-r--r--plugins/Live/API.php130
-rw-r--r--plugins/Live/Visitor.php38
-rw-r--r--plugins/Transitions/API.php12
-rw-r--r--plugins/UserCountry/UserCountry.php13
-rw-r--r--plugins/UserSettings/UserSettings.php4
-rw-r--r--tests/PHPUnit/Core/PluginsFunctions/WidgetsListTest.php6
-rw-r--r--tests/PHPUnit/Core/SegmentTest.php6
-rw-r--r--tests/PHPUnit/DatabaseTestCase.php11
-rw-r--r--tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php45
-rw-r--r--tests/PHPUnit/Integration/AutoSuggestAPITest.php132
-rwxr-xr-xtests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php8
-rwxr-xr-xtests/PHPUnit/Integration/OneVisitorOneWebsite_SeveralDaysDateRange_ArchivingTestsTest.php2
-rw-r--r--tests/PHPUnit/Integration/TrackingAPI_SetVisitorIdTest.php1
-rwxr-xr-xtests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_year.xml1246
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__API.getSuggestedValuesForSegment.xml11
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__API.getSuggestedValuesForSegment.xml7
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml13
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName2__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName3__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName4__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName1__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName3__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue1__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__API.getSuggestedValuesForSegment.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue3__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__API.getSuggestedValuesForSegment.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__API.getSuggestedValuesForSegment.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue2__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue3__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue4__API.getSuggestedValuesForSegment.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__API.getSuggestedValuesForSegment.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml9
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml9
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__API.getSuggestedValuesForSegment.xml6
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__API.getSuggestedValuesForSegment.xml11
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__API.getSuggestedValuesForSegment.xml7
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__API.getSuggestedValuesForSegment.xml20
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__API.getSuggestedValuesForSegment.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__API.getSuggestedValuesForSegment.xml13
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml547
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml289
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml96
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml219
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml269
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCity_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getContinent_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCountry_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getRegion_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_continent__UserCountry.getCountry_month.xml109
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCity_month.xml23
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getContinent_month.xml23
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCountry_month.xml23
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getRegion_month.xml23
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCity_month.xml34
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getContinent_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCountry_month.xml17
-rwxr-xr-xtests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getRegion_month.xml17
-rw-r--r--tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml16
-rw-r--r--tests/PHPUnit/Integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml13
-rw-r--r--tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml20
-rw-r--r--tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml56
-rw-r--r--tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml187
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Actions.getPageUrls_range.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__CustomVariables.getCustomVariables_range.xml48
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml2
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml59
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getCampaigns_range.xml4
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getKeywords_range.xml12
-rw-r--r--tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__VisitsSummary.get_range.xml2
-rwxr-xr-xtests/PHPUnit/IntegrationTestCase.php49
-rwxr-xr-xtests/PHPUnit/Plugins/PrivacyManagerTest.php4
161 files changed, 4102 insertions, 887 deletions
diff --git a/core/API/DocumentationGenerator.php b/core/API/DocumentationGenerator.php
index 1c2d9a62a4..ff830133e7 100644
--- a/core/API/DocumentationGenerator.php
+++ b/core/API/DocumentationGenerator.php
@@ -132,6 +132,7 @@ class Piwik_API_DocumentationGenerator
'lastMinutes' => '30',
'abandonedCarts' => '0',
'ip' => '194.57.91.215',
+// 'segmentName' => 'browserCode',
);
foreach ($parametersToSet as $name => $value) {
@@ -231,4 +232,5 @@ class Piwik_API_DocumentationGenerator
$sParameters = implode(", ", $asParameters);
return "($sParameters)";
}
+
}
diff --git a/core/API/Request.php b/core/API/Request.php
index 1ce66abf37..b30fd663c1 100644
--- a/core/API/Request.php
+++ b/core/API/Request.php
@@ -111,7 +111,7 @@ class Piwik_API_Request
* It then calls the API Proxy which will call the requested method.
*
* @throws Piwik_FrontController_PluginDeactivatedException
- * @return mixed The data resulting from the API call
+ * @return Piwik_DataTable|mixed The data resulting from the API call
*/
public function process()
{
diff --git a/core/DataTable.php b/core/DataTable.php
index 1784802799..b5e2064980 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -676,6 +676,26 @@ class Piwik_DataTable
}
/**
+ * Returns the array containing all rows values of all columns which name starts with $name
+ *
+ * @param $name
+ * @return array
+ */
+ public function getColumnsStartingWith($name)
+ {
+ $columnValues = array();
+ foreach ($this->getRows() as $row) {
+ $columns = $row->getColumns();
+ foreach($columns as $column => $value) {
+ if(strpos($column, $name) === 0) {
+ $columnValues[] = $row->getColumn($column);
+ }
+ }
+ }
+ return $columnValues;
+ }
+
+ /**
* Returns an array containing the rows Metadata values
*
* @param string $name Metadata column to return
diff --git a/core/DataTable/Filter/ColumnDelete.php b/core/DataTable/Filter/ColumnDelete.php
index 3ac3f5b244..709d56a02e 100644
--- a/core/DataTable/Filter/ColumnDelete.php
+++ b/core/DataTable/Filter/ColumnDelete.php
@@ -34,6 +34,14 @@ class Piwik_DataTable_Filter_ColumnDelete extends Piwik_DataTable_Filter
private $columnsToKeep;
/**
+ * Hack: when specifying "showColumns", sometimes we'd like to also keep columns that "look" like a given column,
+ * without manually specifying all these columns (which may not be possible if column names are generated dynamically)
+ *
+ * Column will be kept, if they match any name in the $columnsToKeep, or if they look like anyColumnToKeep__anythingHere
+ */
+ const APPEND_TO_COLUMN_NAME_TO_KEEP = '__';
+
+ /**
* Delete the column, only if the value was zero
*
* @var bool
@@ -101,8 +109,18 @@ class Piwik_DataTable_Filter_ColumnDelete extends Piwik_DataTable_Filter
if (!empty($this->columnsToKeep)) {
foreach ($table->getRows() as $row) {
foreach ($row->getColumns() as $name => $value) {
- // label cannot be removed via whitelisting
- if ($name != 'label' && !isset($this->columnsToKeep[$name])) {
+
+ $keep = false;
+ // @see self::APPEND_TO_COLUMN_NAME_TO_KEEP
+ foreach($this->columnsToKeep as $nameKeep => $true) {
+ if(strpos($name, $nameKeep . self::APPEND_TO_COLUMN_NAME_TO_KEEP) === 0) {
+ $keep = true;
+ }
+ }
+
+ if (!$keep
+ && $name != 'label' // label cannot be removed via whitelisting
+ && !isset($this->columnsToKeep[$name])) {
$row->deleteColumn($name);
}
}
diff --git a/core/Segment.php b/core/Segment.php
index 7802ba440d..6ba00c6478 100644
--- a/core/Segment.php
+++ b/core/Segment.php
@@ -58,11 +58,6 @@ class Piwik_Segment
$segment->setSubExpressionsAfterCleanup($cleanedExpressions);
}
- public function getPrettyString()
- {
- //@TODO segment.getPrettyString
- }
-
public function isEmpty()
{
return empty($this->string);
@@ -71,16 +66,6 @@ class Piwik_Segment
protected $availableSegments = array();
protected $segmentsHumanReadable = '';
- private function getUniqueSqlFields()
- {
- $expressions = $this->segment->parsedSubExpressions;
- $uniqueFields = array();
- foreach ($expressions as $expression) {
- $uniqueFields[] = $expression[Piwik_SegmentExpression::INDEX_OPERAND][0];
- }
- return $uniqueFields;
- }
-
protected function getCleanedExpression($expression)
{
if (empty($this->availableSegments)) {
@@ -114,7 +99,7 @@ class Piwik_Segment
if (isset($segment['sqlFilter'])
&& !empty($segment['sqlFilter'])
) {
- $value = call_user_func($segment['sqlFilter'], $value, $segment['sqlSegment'], $matchType);
+ $value = call_user_func($segment['sqlFilter'], $value, $segment['sqlSegment'], $matchType, $name);
// sqlFilter-callbacks might return arrays for more complex cases
// e.g. see Piwik_Actions::getIdActionFromSegment()
diff --git a/lang/en.php b/lang/en.php
index bdba2286c3..4063febf0b 100644
--- a/lang/en.php
+++ b/lang/en.php
@@ -413,6 +413,7 @@ $translations = array(
'Actions_ColumnSearchCategory' => 'Search Category',
'Actions_ColumnSearchResultsCount' => 'Search Results Count',
'Actions_ColumnSearchKeyword' => 'Keyword',
+ 'Actions_SiteSearchKeyword' => 'Keyword (Site Search)',
'Actions_ColumnClickedURL' => 'Clicked URL',
'Actions_ColumnDownloadURL' => 'Download URL',
'Actions_ColumnEntryPageURL' => 'Entry Page URL',
diff --git a/libs/PiwikTracker/PiwikTracker.php b/libs/PiwikTracker/PiwikTracker.php
index 97e5acbc82..7f609317ca 100644
--- a/libs/PiwikTracker/PiwikTracker.php
+++ b/libs/PiwikTracker/PiwikTracker.php
@@ -839,7 +839,7 @@ class PiwikTracker
*/
public function setDebugStringAppend($string)
{
- $this->DEBUG_APPEND_URL = $string;
+ $this->DEBUG_APPEND_URL = '&' . $string;
}
/**
diff --git a/plugins/API/API.php b/plugins/API/API.php
index 5ca4e2156c..9c69be2d5c 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -78,7 +78,8 @@ class Piwik_API extends Piwik_Plugin
* <li>the list of metrics that will be returned by each method, along with their human readable name, via "getDefaultMetrics" and "getDefaultProcessedMetrics"</li>
* <li>the list of segments metadata supported by all functions that have a 'segment' parameter</li>
* <li>the (truly magic) method "getProcessedReport" will return a human readable version of any other report, and include the processed metrics such as
- * conversion rate, time on site, etc. which are not directly available in other methods.
+ * conversion rate, time on site, etc. which are not directly available in other methods.</li>
+ * <li>the method "getSuggestedValuesForSegment" returns top suggested values for a particular segment. It uses the Live.getLastVisitsDetails API to fetch the most recently used values, and will return the most often used values first.</li>
* </ul>
* The Metadata API is for example used by the Piwik Mobile App to automatically display all Piwik reports, with translated report & columns names and nicely formatted values.
* More information on the <a href='http://piwik.org/docs/analytics-api/metadata/' target='_blank'>Metadata API documentation page</a>
@@ -912,7 +913,7 @@ class Piwik_API_API
foreach ($columns as $name => $ignore) {
// if the current column should not be kept, remove it
$idx = array_search($name, $columnsToKeep);
- if ($idx === FALSE) // if $name is not in $columnsToKeep
+ if ($idx === false) // if $name is not in $columnsToKeep
{
unset($columns[$name]);
}
@@ -1625,4 +1626,65 @@ class Piwik_API_API
}
return $result;
}
+
+ /**
+ * Given a segment, will return a list of the most used values for this particular segment.
+ * @param $segmentName
+ * @param $idSite
+ * @throws Exception
+ */
+ public function getSuggestedValuesForSegment($segmentName, $idSite)
+ {
+ Piwik::checkUserHasViewAccess($idSite);
+ $maxSuggestionsToReturn = 30;
+ $segmentsMetadata = $this->getSegmentsMetadata($idSite, $_hideImplementationData = false);
+
+ $segmentFound = false;
+ foreach($segmentsMetadata as $segmentMetadata) {
+ if($segmentMetadata['segment'] == $segmentName) {
+ $segmentFound = $segmentMetadata;
+ break;
+ }
+ }
+ if(empty($segmentFound)) {
+ throw new Exception("Requested segment not found.");
+ }
+
+ $startDate = Piwik_Date::now()->subDay(60)->toString();
+
+ // we know which SQL field this segment matches to: call the LIVE api to get last 1000 visitors values
+ $request = new Piwik_API_Request("method=Live.getLastVisitsDetails
+ &idSite=$idSite
+ &period=range
+ &date=$startDate,today
+ &filter_limit=10000
+ &format=original
+ &serialize=0
+ &flat=1
+ &segment=");
+ $table = $request->process();
+ if(empty($table)) {
+ throw new Exception("There was no data to suggest for $segmentName");
+ }
+
+ // Cleanup data to return the top suggested (non empty) labels for this segment
+ $values = $table->getColumn($segmentName);
+
+ // Select also flattened keys (custom variables "page" scope, page URLs for one visit, page titles for one visit)
+ $valuesBis = $table->getColumnsStartingWith($segmentName . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP);
+ $values = array_merge($values, $valuesBis);
+
+ // remove false values (while keeping zeros)
+ $values = array_filter( $values, 'strlen' );
+
+ // we have a list of all values. let's show the most frequently used first.
+ $values = array_count_values( $values );
+ arsort($values);
+ $values = array_keys($values);
+
+ $values = array_map( array('Piwik_Common', 'unsanitizeInputValue'), $values);
+
+ $values = array_slice($values, 0, $maxSuggestionsToReturn);
+ return $values;
+ }
}
diff --git a/plugins/Actions/Actions.php b/plugins/Actions/Actions.php
index 097d2e3dee..8a9be015d7 100644
--- a/plugins/Actions/Actions.php
+++ b/plugins/Actions/Actions.php
@@ -103,7 +103,14 @@ class Piwik_Actions extends Piwik_Plugin
'sqlSegment' => 'log_link_visit_action.idaction_name',
'sqlFilter' => $sqlFilter,
);
- // TODO here could add keyword segment and hack $sqlFilter to make it select the right idaction
+ $segments[] = array(
+ 'type' => 'dimension',
+ 'category' => 'Actions_Actions',
+ 'name' => 'Actions_SiteSearchKeyword',
+ 'segment' => 'siteSearchKeyword',
+ 'sqlSegment' => 'log_link_visit_action.idaction_name',
+ 'sqlFilter' => $sqlFilter,
+ );
}
/**
@@ -113,30 +120,29 @@ class Piwik_Actions extends Piwik_Plugin
* Usually, these callbacks only return a value that should be compared to the
* column in the database. In this case, that doesn't work since multiple IDs
* can match an expression (e.g. "pageUrl=@foo").
- * @param string $string
+ * @param string $valueToMatch
* @param string $sqlField
* @param string $matchType
* @throws Exception
* @return array|int|string
*/
- public function getIdActionFromSegment($string, $sqlField, $matchType = '==')
+ public function getIdActionFromSegment($valueToMatch, $sqlField, $matchType, $segmentName)
{
- // Field is visit_*_idaction_url or visit_*_idaction_name
- $actionType = strpos($sqlField, '_name') === false
- ? Piwik_Tracker_Action::TYPE_ACTION_URL
- : Piwik_Tracker_Action::TYPE_ACTION_NAME;
+ $actionType = $this->guessActionTypeFromSegment($segmentName);
if ($actionType == Piwik_Tracker_Action::TYPE_ACTION_URL) {
// for urls trim protocol and www because it is not recorded in the db
- $string = preg_replace('@^http[s]?://(www\.)?@i', '', $string);
+ $valueToMatch = preg_replace('@^http[s]?://(www\.)?@i', '', $valueToMatch);
}
+ $valueToMatch = Piwik_Common::sanitizeInputValue(Piwik_Common::unsanitizeInputValue($valueToMatch));
+
// exact matches work by returning the id directly
if ($matchType == Piwik_SegmentExpression::MATCH_EQUAL
|| $matchType == Piwik_SegmentExpression::MATCH_NOT_EQUAL
) {
$sql = Piwik_Tracker_Action::getSqlSelectActionId();
- $bind = array($string, $string, $actionType);
+ $bind = array($valueToMatch, $valueToMatch, $actionType);
$idAction = Piwik_FetchOne($sql, $bind);
// if the action is not found, we hack -100 to ensure it tries to match against an integer
// otherwise binding idaction_name to "false" returns some rows for some reasons (in case &segment=pageTitle==Větrnásssssss)
@@ -150,23 +156,24 @@ class Piwik_Actions extends Piwik_Plugin
// build the expression based on the match type
$sql = 'SELECT idaction FROM ' . Piwik_Common::prefixTable('log_action') . ' WHERE ';
+ $sqlMatchType = 'AND type = ' . $actionType;
switch ($matchType) {
case '=@':
// use concat to make sure, no %s occurs because some plugins use %s in their sql
- $sql .= '( name LIKE CONCAT(\'%\', ?, \'%\') AND type = ' . $actionType . ' )';
+ $sql .= '( name LIKE CONCAT(\'%\', ?, \'%\') ' . $sqlMatchType . ' )';
break;
case '!@':
- $sql .= '( name NOT LIKE CONCAT(\'%\', ?, \'%\') AND type = ' . $actionType . ' )';
+ $sql .= '( name NOT LIKE CONCAT(\'%\', ?, \'%\') ' . $sqlMatchType . ' )';
break;
default:
- throw new Exception("This match type is not available for action-segments.");
+ throw new Exception("This match type $matchType is not available for action-segments.");
break;
}
return array(
// mark that the returned value is an sql-expression instead of a literal value
'SQL' => $sql,
- 'bind' => $string
+ 'bind' => $valueToMatch,
);
}
@@ -600,5 +607,26 @@ class Piwik_Actions extends Piwik_Plugin
{
return Piwik_PluginsManager::getInstance()->isPluginActivated('CustomVariables');
}
+
+ /**
+ * @param $segmentName
+ * @return int
+ * @throws Exception
+ */
+ protected function guessActionTypeFromSegment($segmentName)
+ {
+ if (stripos($segmentName, 'pageurl') !== false) {
+ $actionType = Piwik_Tracker_Action::TYPE_ACTION_URL;
+ return $actionType;
+ } elseif (stripos($segmentName, 'pagetitle') !== false) {
+ $actionType = Piwik_Tracker_Action::TYPE_ACTION_NAME;
+ return $actionType;
+ } elseif (stripos($segmentName, 'sitesearch') !== false) {
+ $actionType = Piwik_Tracker_Action::TYPE_SITE_SEARCH;
+ return $actionType;
+ } else {
+ throw new Exception(" The segment $segmentName has an unexpected value.");
+ }
+ }
}
diff --git a/plugins/CoreUpdater/CoreUpdater.php b/plugins/CoreUpdater/CoreUpdater.php
index 30a28f76a6..865c3da4ad 100644
--- a/plugins/CoreUpdater/CoreUpdater.php
+++ b/plugins/CoreUpdater/CoreUpdater.php
@@ -69,7 +69,8 @@ class Piwik_CoreUpdater extends Piwik_Plugin
&& $action == 'saveLanguage')
) {
if (Piwik_FrontController::shouldRethrowException()) {
- throw new Exception("Piwik and/or some plugins have been upgraded to a new version. Please run the update process first. See documentation: http://piwik.org/docs/update/");
+ throw new Exception("Piwik and/or some plugins have been upgraded to a new version. \n".
+ "--> Please run the update process first. See documentation: http://piwik.org/docs/update/ \n");
} else {
Piwik::redirectToModule('CoreUpdater');
}
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 919afb0682..5cb3043839 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -97,13 +97,15 @@ class Piwik_Live_API
* @param int $visitorId
* @param int $idSite
* @param int $filter_limit
+ * @param bool $flat Whether to flatten the visitor details array
+ *
* @return Piwik_DataTable
*/
- public function getLastVisitsForVisitor($visitorId, $idSite, $filter_limit = 10)
+ public function getLastVisitsForVisitor($visitorId, $idSite, $filter_limit = 10, $flat = false)
{
Piwik::checkUserHasViewAccess($idSite);
$visitorDetails = $this->loadLastVisitorDetailsFromDatabase($idSite, $period = false, $date = false, $segment = false, $filter_limit, $filter_offset = false, $visitorId);
- $table = $this->getCleanedVisitorsFromDetails($visitorDetails, $idSite);
+ $table = $this->getCleanedVisitorsFromDetails($visitorDetails, $idSite, $flat);
return $table;
}
@@ -121,25 +123,23 @@ class Piwik_Live_API
*
* @return Piwik_DataTable
*/
- public function getLastVisitsDetails($idSite, $period, $date, $segment = false, $filter_limit = false, $filter_offset = false, $minTimestamp = false)
+ public function getLastVisitsDetails($idSite, $period, $date, $segment = false, $filter_limit = false, $filter_offset = false, $minTimestamp = false, $flat = false)
{
if (empty($filter_limit)) {
$filter_limit = 10;
}
Piwik::checkUserHasViewAccess($idSite);
$visitorDetails = $this->loadLastVisitorDetailsFromDatabase($idSite, $period, $date, $segment, $filter_limit, $filter_offset, $visitorId = false, $minTimestamp);
- $dataTable = $this->getCleanedVisitorsFromDetails($visitorDetails, $idSite);
-
+ $dataTable = $this->getCleanedVisitorsFromDetails($visitorDetails, $idSite, $flat);
return $dataTable;
}
/**
* @deprecated
*/
-
public function getLastVisits($idSite, $filter_limit = 10, $minTimestamp = false)
{
- return $this->getLastVisitsDetails($idSite, $period = false, $date = false, $segment = false, $filter_limit, $filter_offset = false, $minTimestamp);
+ return $this->getLastVisitsDetails($idSite, $period = false, $date = false, $segment = false, $filter_limit, $filter_offset = false, $minTimestamp, $flat = false);
}
/**
@@ -147,9 +147,10 @@ class Piwik_Live_API
* as well as make the data human readable
* @param array $visitorDetails
* @param int $idSite
+ * @param bool $flat whether to flatten the array (eg. 'customVariables' names/values will appear in the root array rather than in 'customVariables' key
* @return Piwik_DataTable
*/
- private function getCleanedVisitorsFromDetails($visitorDetails, $idSite)
+ private function getCleanedVisitorsFromDetails($visitorDetails, $idSite, $flat = false)
{
$actionsLimit = (int)Piwik_Config::getInstance()->General['visitor_log_maximum_actions_per_visit'];
@@ -200,6 +201,7 @@ class Piwik_Live_API
LEFT JOIN " . Piwik_Common::prefixTable('log_action') . " AS log_action_title
ON log_link_visit_action.idaction_name = log_action_title.idaction
WHERE log_link_visit_action.idvisit = ?
+ ORDER BY server_time ASC
LIMIT 0, $actionsLimit
";
$actionDetails = Piwik_FetchAll($sql, array($idvisit));
@@ -212,8 +214,8 @@ class Piwik_Live_API
$cvarKey = $actionDetail['custom_var_k' . $i];
$cvarKey = $this->getCustomVariablePrettyKey($cvarKey);
$customVariablesPage[$i] = array(
- 'customVariableName' . $i => $cvarKey,
- 'customVariableValue' . $i => $actionDetail['custom_var_v' . $i],
+ 'customVariablePageName' . $i => $cvarKey,
+ 'customVariablePageValue' . $i => $actionDetail['custom_var_v' . $i],
);
}
unset($actionDetail['custom_var_k' . $i]);
@@ -222,21 +224,30 @@ class Piwik_Live_API
if (!empty($customVariablesPage)) {
$actionDetail['customVariables'] = $customVariablesPage;
}
- // reconstruct url from prefix
+
+ // Reconstruct url from prefix
$actionDetail['url'] = Piwik_Tracker_Action::reconstructNormalizedUrl($actionDetail['url'], $actionDetail['url_prefix']);
unset($actionDetail['url_prefix']);
- // set the time spent for this action (which is the timeSpentRef of the next action)
+
+ // Set the time spent for this action (which is the timeSpentRef of the next action)
if (isset($actionDetails[$actionIdx + 1])) {
$actionDetail['timeSpent'] = $actionDetails[$actionIdx + 1]['timeSpentRef'];
$actionDetail['timeSpentPretty'] = Piwik::getPrettyTimeFromSeconds($actionDetail['timeSpent']);
}
unset($actionDetails[$actionIdx]['timeSpentRef']); // not needed after timeSpent is added
- // handle generation time
+
+ // Handle generation time
if ($actionDetail['custom_float'] > 0) {
$actionDetail['generationTime'] = Piwik::getPrettyTimeFromSeconds($actionDetail['custom_float'] / 1000);
}
unset($actionDetail['custom_float']);
+
+ // Handle Site Search
+ if($actionDetail['type'] == Piwik_Tracker_Action::TYPE_SITE_SEARCH) {
+ $actionDetail['siteSearchKeyword'] = $actionDetail['pageTitle'];
+ unset($actionDetail['pageTitle']);
+ }
}
// If the visitor converted a goal, we shall select all Goals
@@ -244,6 +255,7 @@ class Piwik_Live_API
SELECT
'goal' as type,
goal.name as goalName,
+ goal.idgoal as goalId,
goal.revenue as revenue,
log_conversion.idlink_va as goalPageId,
log_conversion.server_time as serverTimePretty,
@@ -256,6 +268,7 @@ class Piwik_Live_API
AND goal.deleted = 0
WHERE log_conversion.idvisit = ?
AND log_conversion.idgoal > 0
+ ORDER BY server_time ASC
LIMIT 0, $actionsLimit
";
$goalDetails = Piwik_FetchAll($sql, array($idvisit));
@@ -274,6 +287,7 @@ class Piwik_Live_API
FROM " . Piwik_Common::prefixTable('log_conversion') . " AS log_conversion
WHERE idvisit = ?
AND idgoal <= " . Piwik_Tracker_GoalManager::IDGOAL_ORDER . "
+ ORDER BY server_time ASC
LIMIT 0, $actionsLimit";
$ecommerceDetails = Piwik_FetchAll($sql, array($idvisit));
@@ -365,9 +379,13 @@ class Piwik_Live_API
// Convert datetimes to the site timezone
$dateTimeVisit = Piwik_Date::factory($details['serverTimePretty'], $timezone);
$details['serverTimePretty'] = $dateTimeVisit->getLocalized(Piwik_Translate('CoreHome_ShortDateFormat') . ' %time%');
+
}
$visitorDetailsArray['goalConversions'] = count($goalDetails);
+ if($flat) {
+ $visitorDetailsArray = $this->flattenVisitorDetailsArray($visitorDetailsArray);
+ }
$table->addRowFromArray(array(Piwik_DataTable_Row::COLUMNS => $visitorDetailsArray));
}
return $table;
@@ -385,6 +403,92 @@ class Piwik_Live_API
return $key;
}
+ /**
+ * The &flat=1 feature is used by API.getSuggestedValuesForSegment
+ *
+ * @param $visitorDetailsArray
+ * @return array
+ */
+ private function flattenVisitorDetailsArray($visitorDetailsArray)
+ {
+ // flatten visit custom variables
+ if (is_array($visitorDetailsArray['customVariables'])) {
+ foreach ($visitorDetailsArray['customVariables'] as $thisCustomVar) {
+ $visitorDetailsArray = array_merge($visitorDetailsArray, $thisCustomVar);
+ }
+ unset($visitorDetailsArray['customVariables']);
+ }
+
+ // flatten page views custom variables
+ $count = 1;
+ foreach ($visitorDetailsArray['actionDetails'] as $action) {
+ if (!empty($action['customVariables'])) {
+ foreach ($action['customVariables'] as $thisCustomVar) {
+ foreach ($thisCustomVar as $cvKey => $cvValue) {
+ $flattenedKeyName = $cvKey . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP . $count;
+ $visitorDetailsArray[$flattenedKeyName] = $cvValue;
+ $count++;
+ }
+ }
+ }
+ }
+ // Flatten Goals
+ $count = 1;
+ foreach($visitorDetailsArray['actionDetails'] as $action) {
+ if(!empty($action['goalId'])) {
+ $flattenedKeyName = 'visitConvertedGoalId' . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP . $count;
+ $visitorDetailsArray[$flattenedKeyName] = $action['goalId'];
+ $count++;
+ }
+ }
+
+ // Flatten Page Titles/URLs
+ $count = 1;
+ foreach($visitorDetailsArray['actionDetails'] as $action) {
+ if(!empty($action['url'])) {
+ $flattenedKeyName = 'pageUrl' . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP . $count;
+ $visitorDetailsArray[$flattenedKeyName] = $action['url'];
+ }
+
+ if(!empty($action['pageTitle'])) {
+ $flattenedKeyName = 'pageTitle' . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP . $count;
+ $visitorDetailsArray[$flattenedKeyName] = $action['pageTitle'];
+ }
+
+ if(!empty($action['siteSearchKeyword'])) {
+ $flattenedKeyName = 'siteSearchKeyword' . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP . $count;
+ $visitorDetailsArray[$flattenedKeyName] = $action['siteSearchKeyword'];
+ }
+ $count++;
+ }
+
+ // Entry/exit pages
+ $firstAction = $lastAction = false;
+ foreach($visitorDetailsArray['actionDetails'] as $action) {
+ if($action['type'] == 'action') {
+ if(empty($firstAction)) {
+ $firstAction = $action;
+ }
+ $lastAction = $action;
+ }
+ }
+
+ if(!empty($firstAction['pageTitle'])) {
+ $visitorDetailsArray['entryPageTitle'] = $firstAction['pageTitle'];
+ }
+ if(!empty($firstAction['url'])) {
+ $visitorDetailsArray['entryPageUrl'] = $firstAction['url'];
+ }
+ if(!empty($lastAction['pageTitle'])) {
+ $visitorDetailsArray['exitPageTitle'] = $lastAction['pageTitle'];
+ }
+ if(!empty($lastAction['url'])) {
+ $visitorDetailsArray['exitPageUrl'] = $lastAction['url'];
+ }
+
+ return $visitorDetailsArray;
+ }
+
private function sortByServerTime($a, $b)
{
$ta = strtotime($a['serverTimePretty']);
diff --git a/plugins/Live/Visitor.php b/plugins/Live/Visitor.php
index aaa4e8a61d..45a3ec7f08 100644
--- a/plugins/Live/Visitor.php
+++ b/plugins/Live/Visitor.php
@@ -60,6 +60,8 @@ class Piwik_Live_Visitor
// all time entries
'serverDate' => $this->getServerDate(),
'visitLocalTime' => $this->getVisitLocalTime(),
+ 'visitLocalHour' => $this->getVisitLocalHour(),
+ 'visitServerHour' => $this->getVisitServerHour(),
'firstActionTimestamp' => $this->getTimestampFirstAction(),
'lastActionTimestamp' => $this->getTimestampLastAction(),
'lastActionDateTime' => $this->getDateTimeLastAction(),
@@ -77,6 +79,7 @@ class Piwik_Live_Visitor
'countryCode' => $this->getCountryCode(),
'countryFlag' => $this->getCountryFlag(),
'region' => $this->getRegionName(),
+ 'regionCode' => $this->getRegionCode(),
'city' => $this->getCityName(),
'location' => $this->getPrettyLocation(),
'latitude' => $this->getLatitude(),
@@ -93,12 +96,15 @@ class Piwik_Live_Visitor
'referrerSearchEngineUrl' => $this->getSearchEngineUrl(),
'referrerSearchEngineIcon' => $this->getSearchEngineIcon(),
'operatingSystem' => $this->getOperatingSystem(),
+ 'operatingSystemCode' => $this->getOperatingSystemCode(),
'operatingSystemShortName' => $this->getOperatingSystemShortName(),
'operatingSystemIcon' => $this->getOperatingSystemIcon(),
'browserFamily' => $this->getBrowserFamily(),
'browserFamilyDescription' => $this->getBrowserFamilyDescription(),
'browserName' => $this->getBrowser(),
'browserIcon' => $this->getBrowserIcon(),
+ 'browserCode' => $this->getBrowserCode(),
+ 'browserVersion' => $this->getBrowserVersion(),
'screenType' => $this->getScreenType(),
'resolution' => $this->getResolution(),
'screenTypeIcon' => $this->getScreenTypeIcon(),
@@ -120,6 +126,16 @@ class Piwik_Live_Visitor
return $this->details['visitor_localtime'];
}
+ function getVisitServerHour()
+ {
+ return date('G', strtotime($this->details['visit_last_action_time']));
+ }
+
+ function getVisitLocalHour()
+ {
+ return date('G', strtotime('2012-12-21 ' . $this->details['visitor_localtime']));
+ }
+
function getVisitCount()
{
return $this->details['visitor_count_visits'];
@@ -249,7 +265,7 @@ class Piwik_Live_Visitor
public function getRegionName()
{
- $region = $this->details['location_region'];
+ $region = $this->getRegionCode();
if ($region != '' && $region != Piwik_Tracker_Visit::UNKNOWN_CODE) {
return Piwik_UserCountry_LocationProvider_GeoIp::getRegionNameFromCodes(
$this->details['location_country'], $region);
@@ -257,6 +273,11 @@ class Piwik_Live_Visitor
return null;
}
+ public function getRegionCode()
+ {
+ return $this->details['location_region'];
+ }
+
function getPrettyLocation()
{
$parts = array();
@@ -430,6 +451,11 @@ class Piwik_Live_Visitor
return null;
}
+ function getOperatingSystemCode()
+ {
+ return $this->details['config_os'];
+ }
+
function getOperatingSystem()
{
return Piwik_getOSLabel($this->details['config_os']);
@@ -455,6 +481,16 @@ class Piwik_Live_Visitor
return Piwik_getBrowserFamily($this->details['config_browser_name']);
}
+ function getBrowserCode()
+ {
+ return $this->details['config_browser_name'];
+ }
+
+ function getBrowserVersion()
+ {
+ return $this->details['config_browser_version'];
+ }
+
function getBrowser()
{
return Piwik_getBrowserLabel($this->details['config_browser_name'] . ";" . $this->details['config_browser_version']);
diff --git a/plugins/Transitions/API.php b/plugins/Transitions/API.php
index 80afa16d94..4457d71046 100644
--- a/plugins/Transitions/API.php
+++ b/plugins/Transitions/API.php
@@ -134,25 +134,25 @@ class Piwik_Transitions_API
case 'url':
$originalActionName = $actionName;
$actionName = Piwik_Common::unsanitizeInputValue($actionName);
- $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_url');
+ $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_url', Piwik_SegmentExpression::MATCH_EQUAL, 'pageUrl');
if ($id < 0) {
// an example where this is needed is urls containing < or >
$actionName = $originalActionName;
- $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_url');
+ $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_url', Piwik_SegmentExpression::MATCH_EQUALs, 'pageUrl');
}
return $id;
case 'title':
- $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_name');
+ $id = $actionsPlugin->getIdActionFromSegment($actionName, 'idaction_name', Piwik_SegmentExpression::MATCH_EQUAL, 'pageTitle');
if ($id < 0) {
- $unkown = Piwik_Actions_ArchivingHelper::getUnknownActionName(
+ $unknown = Piwik_Actions_ArchivingHelper::getUnknownActionName(
Piwik_Tracker_Action::TYPE_ACTION_NAME);
- if (trim($actionName) == trim($unkown)) {
- $id = $actionsPlugin->getIdActionFromSegment('', 'idaction_name');
+ if (trim($actionName) == trim($unknown)) {
+ $id = $actionsPlugin->getIdActionFromSegment('', 'idaction_name', Piwik_SegmentExpression::MATCH_EQUAL, 'pageTitle');
}
}
diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php
index 20d2935248..34003af178 100644
--- a/plugins/UserCountry/UserCountry.php
+++ b/plugins/UserCountry/UserCountry.php
@@ -164,7 +164,7 @@ class Piwik_UserCountry extends Piwik_Plugin
'type' => 'dimension',
'category' => 'Visit Location',
'name' => Piwik_Translate('UserCountry_Country'),
- 'segment' => 'country',
+ 'segment' => 'countryCode',
'sqlSegment' => 'log_visit.location_country',
'acceptedValues' => 'de, us, fr, in, es, etc.',
);
@@ -172,7 +172,7 @@ class Piwik_UserCountry extends Piwik_Plugin
'type' => 'dimension',
'category' => 'Visit Location',
'name' => Piwik_Translate('UserCountry_Continent'),
- 'segment' => 'continent',
+ 'segment' => 'continentCode',
'sqlSegment' => 'log_visit.location_country',
'acceptedValues' => 'eur, asi, amc, amn, ams, afr, ant, oce',
'sqlFilter' => array('Piwik_UserCountry', 'getCountriesForContinent'),
@@ -181,7 +181,7 @@ class Piwik_UserCountry extends Piwik_Plugin
'type' => 'dimension',
'category' => 'Visit Location',
'name' => Piwik_Translate('UserCountry_Region'),
- 'segment' => 'region',
+ 'segment' => 'regionCode',
'sqlSegment' => 'log_visit.location_region',
'acceptedValues' => '01 02, OR, P8, etc.<br/>eg. region=A1;country=fr',
);
@@ -197,7 +197,7 @@ class Piwik_UserCountry extends Piwik_Plugin
'type' => 'dimension',
'category' => 'Visit Location',
'name' => Piwik_Translate('UserCountry_Latitude'),
- 'segment' => 'lat',
+ 'segment' => 'latitude',
'sqlSegment' => 'log_visit.location_latitude',
'acceptedValues' => '-33.578, 40.830, etc.<br/>You can select visitors within a lat/long range using &segment=lat&gt;X;lat&lt;Y;long&gt;M;long&lt;N.',
);
@@ -205,7 +205,7 @@ class Piwik_UserCountry extends Piwik_Plugin
'type' => 'dimension',
'category' => 'Visit Location',
'name' => Piwik_Translate('UserCountry_Longitude'),
- 'segment' => 'long',
+ 'segment' => 'longitude',
'sqlSegment' => 'log_visit.location_longitude',
'acceptedValues' => '-70.664, 14.326, etc.',
);
@@ -489,9 +489,8 @@ class Piwik_UserCountry extends Piwik_Plugin
*/
public static function getCountriesForContinent($continent)
{
- $continent = strtolower($continent);
-
$result = array();
+ $continent = strtolower($continent);
foreach (Piwik_Common::getCountriesList() as $countryCode => $continentCode) {
if ($continent == $continentCode) {
$result[] = $countryCode;
diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php
index d46b952c56..90be882806 100644
--- a/plugins/UserSettings/UserSettings.php
+++ b/plugins/UserSettings/UserSettings.php
@@ -59,7 +59,7 @@ class Piwik_UserSettings extends Piwik_Plugin
'UserSettings',
'getBrowser',
'UserSettings_ColumnBrowser',
- 'browserName',
+ 'browserCode',
'log_visit.config_browser_name',
'FF, IE, CH, SF, OP, etc.',
null,),
@@ -110,7 +110,7 @@ class Piwik_UserSettings extends Piwik_Plugin
'UserSettings',
'getOS',
'UserSettings_ColumnOperatingSystem',
- 'operatingSystem',
+ 'operatingSystemCode',
'log_visit.config_os',
'WXP, WI7, MAC, LIN, AND, IPD, etc.',
null,),
diff --git a/tests/PHPUnit/Core/PluginsFunctions/WidgetsListTest.php b/tests/PHPUnit/Core/PluginsFunctions/WidgetsListTest.php
index bd7983cdf6..7c2c0e598c 100644
--- a/tests/PHPUnit/Core/PluginsFunctions/WidgetsListTest.php
+++ b/tests/PHPUnit/Core/PluginsFunctions/WidgetsListTest.php
@@ -24,9 +24,7 @@ class WidgetsListTest extends DatabaseTestCase
$_GET['idSite'] = 1;
- $pluginsManager = Piwik_PluginsManager::getInstance();
- $pluginsToLoad = Piwik_Config::getInstance()->Plugins['Plugins'];
- $pluginsManager->loadPlugins($pluginsToLoad);
+ IntegrationTestCase::loadAllPlugins();
Piwik_WidgetsList::_reset();
$widgets = Piwik_GetWidgetsList();
@@ -52,6 +50,7 @@ class WidgetsListTest extends DatabaseTestCase
foreach ($numberOfWidgets AS $category => $widgetCount) {
$this->assertEquals($widgetCount, count($widgets[$category]), sprintf("Widget: %s", $category));
}
+ IntegrationTestCase::unloadAllPlugins();
}
/**
@@ -132,4 +131,5 @@ class WidgetsListTest extends DatabaseTestCase
}
}
+
}
diff --git a/tests/PHPUnit/Core/SegmentTest.php b/tests/PHPUnit/Core/SegmentTest.php
index 2d021ea65c..35da2a58a3 100644
--- a/tests/PHPUnit/Core/SegmentTest.php
+++ b/tests/PHPUnit/Core/SegmentTest.php
@@ -44,17 +44,17 @@ class SegmentTest extends PHPUnit_Framework_TestCase
{
return array(
// Normal segment
- array('country==France', array(
+ array('countryCode==France', array(
'where' => ' log_visit.location_country = ? ',
'bind' => array('France'))),
// unescape the comma please
- array('country==a\,==', array(
+ array('countryCode==a\,==', array(
'where' => ' log_visit.location_country = ? ',
'bind' => array('a,=='))),
// AND, with 2 values rewrites
- array('country==a;visitorType!=returning;visitorType==new', array(
+ array('countryCode==a;visitorType!=returning;visitorType==new', array(
'where' => ' log_visit.location_country = ? AND log_visit.visitor_returning <> ? AND log_visit.visitor_returning = ? ',
'bind' => array('a', '1', '0'))),
diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php
index 2b0627f251..9f91c7910c 100644
--- a/tests/PHPUnit/DatabaseTestCase.php
+++ b/tests/PHPUnit/DatabaseTestCase.php
@@ -15,6 +15,7 @@
*/
class DatabaseTestCase extends PHPUnit_Framework_TestCase
{
+
/**
* Setup the database and create the base tables for all tests
*/
@@ -58,14 +59,7 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
public function tearDown()
{
parent::tearDown();
- try {
- $plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
- foreach ($plugins AS $plugin) {
- $plugin->uninstall();
- }
- Piwik_PluginsManager::getInstance()->unloadPlugins();
- } catch (Exception $e) {
- }
+ IntegrationTestCase::unloadAllPlugins();
Piwik::dropDatabase();
Piwik_DataTable_Manager::getInstance()->deleteAll();
Piwik_Option::getInstance()->clearCache();
@@ -76,4 +70,5 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
Piwik_TablePartitioning::$tablesAlreadyInstalled = null;
Zend_Registry::_unsetInstance();
}
+
}
diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
index 33f2f7006c..88cd783ae1 100644
--- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
+++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
@@ -30,6 +30,9 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
'103.29.196.229', // in Indonesia (Bali), (only Indonesia will show up)
);
+ protected $idGoal;
+ protected $idGoal2;
+
public function setUp()
{
$this->setUpWebsitesAndGoals();
@@ -58,7 +61,8 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
private function setUpWebsitesAndGoals()
{
self::createWebsite($this->dateTime, 0, "Site 1");
- Piwik_Goals_API::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5);
+ $this->idGoal = Piwik_Goals_API::getInstance()->addGoal($this->idSite, 'all', 'url', 'http', 'contains', false, 5);
+ $this->idGoal2 = Piwik_Goals_API::getInstance()->addGoal($this->idSite, 'two', 'url', 'xxxxxxxxxxxxx', 'contains', false, 5);
}
private function trackVisits($visitorCount, $setIp = false, $useLocal = true, $doBulk = false)
@@ -73,7 +77,7 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
$t->setTokenAuth(self::getTokenAuth());
}
for ($i = 0; $i != $visitorCount; ++$i) {
- $t->setNewVisitorId();
+ $t->setVisitorId( substr(md5($i + 1000), 0, $t::LENGTH_VISITOR_ID));
if ($setIp) {
$t->setIp(current($this->ips));
next($this->ips);
@@ -85,7 +89,12 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
$date = Piwik_Date::factory($dateTime)->addDay($i);
$t->setForceVisitDateTime($date->getDatetime());
$t->setUrl("http://piwik.net/grue/lair");
- $r = $t->doTrackPageView('It\'s pitch black...');
+ $t->setCustomVariable(1, 'Cvar 1 name', 'Cvar1 value is ' .$i , 'visit');
+ $t->setCustomVariable(5, 'Cvar 5 name', 'Cvar5 value is ' .$i , 'visit');
+ $t->setCustomVariable(2, 'Cvar 2 PAGE name', 'Cvar2 PAGE value is ' .$i, 'page');
+ $t->setCustomVariable(5, 'Cvar 5 PAGE name', 'Cvar5 PAGE value is ' .$i, 'page');
+
+ $r = $t->doTrackPageView('It\'s <script> pitch black...');
if (!$doBulk) {
self::checkResponse($r);
}
@@ -94,7 +103,34 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
$date = $date->addHour(1);
$t->setForceVisitDateTime($date->getDatetime());
$t->setUrl("http://piwik.net/space/quest/iv");
+
+ // Manually record some data
+ $t->setDebugStringAppend(
+ '&_idts='. $date->subDay(100)->getTimestampUTC(). // first visit timestamp
+ '&_ects='. $date->subDay(50)->getTimestampUTC(). // Timestamp ecommerce
+ '&_viewts='. $date->subDay(10)->getTimestampUTC(). // Last visit timestamp
+ '&_idvc=5' // Visit count
+ );
$r = $t->doTrackPageView("Space Quest XII");
+
+ if (!$doBulk) {
+ self::checkResponse($r);
+ }
+
+ // Track site search (for AutoSuggestAPI test)
+ // Only for half visitors so they don't all have a "site search" as last action and some of them have a standard page view as last action
+ if( ($i % 2) == 0) {
+ $date = $date->addHour(0.1);
+ $t->setForceVisitDateTime($date->getDatetime());
+ $r = $t->doTrackSiteSearch('Bring on the party', 'CAT');
+ if (!$doBulk) {
+ self::checkResponse($r);
+ }
+ }
+
+ $date = $date->addHour(0.2);
+ $t->setForceVisitDateTime($date->getDatetime());
+ $r = $t->doTrackGoal($this->idGoal2);
if (!$doBulk) {
self::checkResponse($r);
}
@@ -110,6 +146,7 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
$idSite = $this->idSite;
$t = self::getTracker($idSite, $dateTime, $defaultInit = true);
+ $t->setVisitorId('fed33392d3a48ab2');
$t->setTokenAuth(self::getTokenAuth());
$t->setForceVisitDateTime(Piwik_Date::factory($dateTime)->addDay(20)->getDatetime());
$t->setIp('194.57.91.215');
@@ -119,6 +156,7 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
$t->setLatitude(1);
$t->setLongitude(2);
$t->setUrl("http://piwik.net/grue/lair");
+ $t->setUrlReferrer('http://google.com/?q=Wikileaks FTW');
self::checkResponse($t->doTrackPageView('It\'s pitch black...'));
}
@@ -176,4 +214,5 @@ class Test_Piwik_Fixture_ManyVisitsWithGeoIP extends Test_Piwik_BaseFixture
{
Piwik_UserCountry_LocationProvider::setCurrentProvider('default');
}
+
}
diff --git a/tests/PHPUnit/Integration/AutoSuggestAPITest.php b/tests/PHPUnit/Integration/AutoSuggestAPITest.php
new file mode 100644
index 0000000000..ebe96f5332
--- /dev/null
+++ b/tests/PHPUnit/Integration/AutoSuggestAPITest.php
@@ -0,0 +1,132 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * testing a the auto suggest API for all known segments
+ */
+class Test_Piwik_Integration_AutoSuggestAPITest extends IntegrationTestCase
+{
+ public static $fixture = null; // initialized below class definition
+
+ protected static $processed = 0;
+ protected static $skipped = array();
+
+ public static function tearDownAfterClass()
+ {
+ parent::tearDownAfterClass();
+ }
+
+ /**
+ * @dataProvider getApiForTesting
+ * @group Integration
+ * @group AutoSuggestAPITest
+ */
+ public function testApi($api, $params)
+ {
+ $this->runApiTests($api, $params);
+ }
+
+
+ public function getApiForTesting()
+ {
+ // we will test all segments from all plugins
+ self::loadAllPlugins();
+
+ $idSite = self::$fixture->idSite;
+ $apiForTesting = array();
+
+ $segments = Piwik_API_API::getInstance()->getSegmentsMetadata(self::$fixture->idSite);
+ foreach($segments as $segment) {
+ $apiForTesting[] = $this->getApiForTestingForSegment($idSite, $segment['segment']);
+ }
+
+ $apiForTesting[] = array('Live.getLastVisitsDetails',
+ array('idSite' => $idSite,
+ 'date' => date('Y-m-d', strtotime(self::$fixture->dateTime)),
+ 'period' => 'year'));
+ return $apiForTesting;
+ }
+
+
+ /**
+ * @param $idSite
+ * @param $segment
+ * @return array
+ */
+ protected function getApiForTestingForSegment($idSite, $segment)
+ {
+ return array('API.getSuggestedValuesForSegment',
+ array('idSite' => $idSite,
+ 'testSuffix' => '_' . $segment,
+ 'otherRequestParameters' => array('segmentName' => $segment)));
+ }
+
+ /**
+ * @depends testApi
+ * @dataProvider getAnotherApiForTesting
+ * @group Integration
+ * @group AutoSuggestAPITest
+ */
+ public function testAnotherApi($api, $params)
+ {
+ // Get the top segment value
+ $request = new Piwik_API_Request(
+ 'method=API.getSuggestedValuesForSegment'
+ . '&segmentName=' . $params['segmentToComplete']
+ . '&idSite=' . $params['idSite']
+ . '&format=php&serialize=0'
+ );
+ $response = $request->process();
+ $topSegmentValue = @$response[0];
+
+ if($topSegmentValue !== false && !is_null($topSegmentValue)) {
+ // Now build the segment request
+ $segmentValue = rawurlencode(html_entity_decode($topSegmentValue));
+ $params['segment'] = $params['segmentToComplete'] . '==' . $segmentValue;
+ unset($params['segmentToComplete']);
+ $this->runApiTests($api, $params);
+ self::$processed++;
+ } else {
+ self::$skipped[] = $params['segmentToComplete'];
+ }
+
+ }
+
+ public function getAnotherApiForTesting()
+ {
+ $apiForTesting = array();
+ $segments = Piwik_API_API::getInstance()->getSegmentsMetadata(self::$fixture->idSite);
+ foreach($segments as $segment) {
+ $apiForTesting[] = array('VisitsSummary.get',
+ array('idSite' => self::$fixture->idSite,
+ 'date' => date("Y-m-d", strtotime(self::$fixture->dateTime)) . ',today',
+ 'period' => 'range',
+ 'testSuffix' => '_' . $segment['segment'],
+ 'segmentToComplete' => $segment['segment']));
+ }
+ return $apiForTesting;
+ }
+
+ /**
+ * @depends testAnotherApi
+ */
+ public function testCheckOtherTestsWereComplete()
+ {
+ // Check that only a few haven't been tested specifically (these are all custom variables slots since we only test slot 1, 2, 5 (see the fixture))
+ $maximumSegmentsToSkip = 10;
+ $this->assertTrue( count(self::$skipped) <= $maximumSegmentsToSkip, 'SKIPPED '.count(self::$skipped).' segments --> some segments had no "auto-suggested values"
+ but we should try and test the autosuggest for all new segments. Segments skipped were: ' . implode(', ', self::$skipped));
+
+ // and check that most others have been tested
+ $minimumSegmentsToTest = 47;
+ $this->assertTrue(self::$processed >= $minimumSegmentsToTest, 'PROCESSED '.self::$processed.' segments --> it seems some segments "auto-suggested values" haven\'t been tested as we were expecting');
+ }
+}
+
+Test_Piwik_Integration_AutoSuggestAPITest::$fixture = new Test_Piwik_Fixture_ManyVisitsWithGeoIP();
+Test_Piwik_Integration_AutoSuggestAPITest::$fixture->dateTime = Piwik_Date::yesterday()->subDay(30)->getDatetime();
diff --git a/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php b/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php
index 677c5c3ff7..c8ee83e0a7 100755
--- a/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php
+++ b/tests/PHPUnit/Integration/ManyVisitorsOneWebsiteTest.php
@@ -47,25 +47,25 @@ class Test_Piwik_Integration_ManyVisitorsOneWebsiteTest extends IntegrationTestC
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_region',
- 'segment' => 'region==P3;country==gb')),
+ 'segment' => 'regionCode==P3;countryCode==gb')),
array($apiToCall, array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_city',
- 'segment' => 'city==Stratford-upon-Avon;region==P3;country==gb')),
+ 'segment' => 'city==Stratford-upon-Avon;regionCode==P3;countryCode==gb')),
array($apiToCall, array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_lat_long',
- 'segment' => 'lat>45;lat<49.3;long>-125;long<-122')),
+ 'segment' => 'latitude>45;latitude<49.3;longitude>-125;longitude<-122')),
array('UserCountry.getCountry', array('idSite' => $idSite,
'date' => $dateTime,
'periods' => array('month'),
'testSuffix' => '_segment_continent',
- 'segment' => 'continent==eur')),
+ 'segment' => 'continentCode==eur')),
array(array('UserCountry.getLocationFromIP', 'Live.getLastVisitsDetails'), array(
'idSite' => $idSite,
diff --git a/tests/PHPUnit/Integration/OneVisitorOneWebsite_SeveralDaysDateRange_ArchivingTestsTest.php b/tests/PHPUnit/Integration/OneVisitorOneWebsite_SeveralDaysDateRange_ArchivingTestsTest.php
index cbeaf000b5..b99d754b85 100755
--- a/tests/PHPUnit/Integration/OneVisitorOneWebsite_SeveralDaysDateRange_ArchivingTestsTest.php
+++ b/tests/PHPUnit/Integration/OneVisitorOneWebsite_SeveralDaysDateRange_ArchivingTestsTest.php
@@ -42,7 +42,7 @@ class Test_Piwik_Integration_OneVisitorOneWebsite_SeveralDaysDateRange_Archiving
// 2 segments: ALL and another way of expressing ALL but triggering the Segment code path
$segments = array(
false,
- 'country!=aa',
+ 'countryCode!=aa',
'pageUrl!=ThisIsNotKnownPageUrl',
);
diff --git a/tests/PHPUnit/Integration/TrackingAPI_SetVisitorIdTest.php b/tests/PHPUnit/Integration/TrackingAPI_SetVisitorIdTest.php
index 5ed1db98f0..e956272a66 100644
--- a/tests/PHPUnit/Integration/TrackingAPI_SetVisitorIdTest.php
+++ b/tests/PHPUnit/Integration/TrackingAPI_SetVisitorIdTest.php
@@ -37,7 +37,6 @@ class Test_Piwik_Integration_TrackingAPI_SetVisitorId extends IntegrationTestCas
public function getApiForTesting()
{
return array(
- // test hideColumns && showColumns parameters
array('VisitsSummary.get', array('idSite' => self::$fixture->idSite,
'date' => self::$fixture->dateTime,
'periods' => 'day',
diff --git a/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php b/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php
index 0d721f4c7b..3ec0be949b 100755
--- a/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php
+++ b/tests/PHPUnit/Integration/TwoVisitsWithCustomVariables_SegmentMatchNONETest.php
@@ -25,6 +25,8 @@ class Test_Piwik_Integration_TwoVisitsWithCustomVariables_SegmentMatchNONE exten
public function getApiForTesting()
{
+ IntegrationTestCase::loadAllPlugins();
+
$apiToCall = array('VisitsSummary.get', 'CustomVariables.getCustomVariables');
return array(
@@ -40,6 +42,9 @@ class Test_Piwik_Integration_TwoVisitsWithCustomVariables_SegmentMatchNONE exten
{
// Segment matching NONE
$segments = Piwik_API_API::getInstance()->getSegmentsMetadata(self::$fixture->idSite);
+
+ $minimumExpectedSegmentsCount = 55; // as of Piwik 1.12
+ $this->assertTrue( count($segments) >= $minimumExpectedSegmentsCount);
$segmentExpression = array();
$seenVisitorId = false;
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_year.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_year.xml
new file mode 100644
index 0000000000..f4fb13bd4d
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_year.xml
@@ -0,0 +1,1246 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>27</idVisit>
+ <visitIp>194.57.91.215</visitIp>
+
+ <visitorType>new</visitorType>
+ <visitorTypeIcon />
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>44</goalPageId>
+
+ <url>http://piwik.net/grue/lair</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/grue/lair</url>
+ <pageTitle>It&amp;#039;s pitch black...</pageTitle>
+ <pageIdAction>2</pageIdAction>
+ <pageId>44</pageId>
+
+ <icon />
+ </row>
+ </actionDetails>
+ <customVariables>
+ </customVariables>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <visitCount>1</visitCount>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <daysSinceFirstVisit>0</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <continent>North America</continent>
+ <continentCode>amn</continentCode>
+ <country>United States</country>
+ <countryCode>us</countryCode>
+ <countryFlag>plugins/UserCountry/flags/us.png</countryFlag>
+ <region>California</region>
+ <regionCode>CA</regionCode>
+ <city>not a city</city>
+ <location>not a city, California, United States</location>
+ <latitude>1.000000</latitude>
+ <longitude>2.000000</longitude>
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>search</referrerType>
+ <referrerTypeName>Search Engines</referrerTypeName>
+ <referrerName>Google</referrerName>
+ <referrerKeyword>wikileaks ftw</referrerKeyword>
+ <referrerKeywordPosition />
+ <referrerUrl>http://google.com/?q=Wikileaks FTW</referrerUrl>
+ <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
+ <referrerSearchEngineIcon>plugins/Referers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>18</idVisit>
+ <visitIp>1.2.4.8</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>1</searches>
+ <actions>2</actions>
+ <actionDetails>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>22</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>22</goalPageId>
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>23</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 8</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 8</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>2</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
+ <continent>Unknown</continent>
+ <continentCode>unk</continentCode>
+ <country>Unknown</country>
+ <countryCode>xx</countryCode>
+ <countryFlag>plugins/UserCountry/flags/xx.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>Unknown</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>17</idVisit>
+ <visitIp>1.2.4.8</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>21</goalPageId>
+
+ <url>http://piwik.net/grue/lair</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/grue/lair</url>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
+ <pageIdAction>2</pageIdAction>
+ <pageId>21</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 8</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 8</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <icon />
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 8</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 8</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
+ <continent>Unknown</continent>
+ <continentCode>unk</continentCode>
+ <country>Unknown</country>
+ <countryCode>xx</countryCode>
+ <countryFlag>plugins/UserCountry/flags/xx.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>Unknown</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>16</idVisit>
+ <visitIp>1.2.4.7</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>20</pageId>
+
+ <icon />
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>20</goalPageId>
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 7</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 7</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>2</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>725</visitDuration>
+ <visitDurationPretty>12 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Macedonia, the Former Yugoslav Republic of</country>
+ <countryCode>mk</countryCode>
+ <countryFlag>plugins/UserCountry/flags/mk.png</countryFlag>
+ <region>Miravci</region>
+ <regionCode>66</regionCode>
+ <city>Stratford-upon-Avon</city>
+ <location>Stratford-upon-Avon, Miravci, Macedonia, the Former Yugoslav Republic of</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>15</idVisit>
+ <visitIp>1.2.4.7</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>19</goalPageId>
+
+ <url>http://piwik.net/grue/lair</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/grue/lair</url>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
+ <pageIdAction>2</pageIdAction>
+ <pageId>19</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 7</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 7</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <icon />
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 7</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 7</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Macedonia, the Former Yugoslav Republic of</country>
+ <countryCode>mk</countryCode>
+ <countryFlag>plugins/UserCountry/flags/mk.png</countryFlag>
+ <region>Miravci</region>
+ <regionCode>66</regionCode>
+ <city>Stratford-upon-Avon</city>
+ <location>Stratford-upon-Avon, Miravci, Macedonia, the Former Yugoslav Republic of</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>14</idVisit>
+ <visitIp>1.2.4.6</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>1</searches>
+ <actions>2</actions>
+ <actionDetails>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>17</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>17</goalPageId>
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>18</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 6</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 6</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>2</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Russian Federation</country>
+ <countryCode>ru</countryCode>
+ <countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
+ <region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
+ <city>Hluboká nad Vltavou</city>
+ <location>Hluboká nad Vltavou, Saint Petersburg City, Russian Federation</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>13</idVisit>
+ <visitIp>1.2.4.6</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>16</goalPageId>
+
+ <url>http://piwik.net/grue/lair</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/grue/lair</url>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
+ <pageIdAction>2</pageIdAction>
+ <pageId>16</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 6</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 6</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <icon />
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 6</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 6</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Russian Federation</country>
+ <countryCode>ru</countryCode>
+ <countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
+ <region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
+ <city>Hluboká nad Vltavou</city>
+ <location>Hluboká nad Vltavou, Saint Petersburg City, Russian Federation</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>12</idVisit>
+ <visitIp>1.2.4.5</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>15</pageId>
+
+ <icon />
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>15</goalPageId>
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 5</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 5</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>2</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>725</visitDuration>
+ <visitDurationPretty>12 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Russian Federation</country>
+ <countryCode>ru</countryCode>
+ <countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
+ <region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
+ <city>Stratford-upon-Avon</city>
+ <location>Stratford-upon-Avon, Saint Petersburg City, Russian Federation</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>11</idVisit>
+ <visitIp>1.2.4.5</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>0</searches>
+ <actions>1</actions>
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>14</goalPageId>
+
+ <url>http://piwik.net/grue/lair</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/grue/lair</url>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
+ <pageIdAction>2</pageIdAction>
+ <pageId>14</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 5</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 5</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <icon />
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 5</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 5</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>Russian Federation</country>
+ <countryCode>ru</countryCode>
+ <countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
+ <region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
+ <city>Stratford-upon-Avon</city>
+ <location>Stratford-upon-Avon, Saint Petersburg City, Russian Federation</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>10</idVisit>
+ <visitIp>1.2.4.4</visitIp>
+
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <searches>1</searches>
+ <actions>2</actions>
+ <actionDetails>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>12</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>12</goalPageId>
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>13</pageId>
+
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ </actionDetails>
+ <customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 4</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 4</customVariableValue5>
+ </row>
+ </customVariables>
+ <goalConversions>2</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+
+
+
+
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>United Kingdom</country>
+ <countryCode>gb</countryCode>
+ <countryFlag>plugins/UserCountry/flags/gb.png</countryFlag>
+ <region>Kent</region>
+ <regionCode>G5</regionCode>
+ <city>Stratford-upon-Avon</city>
+ <location>Stratford-upon-Avon, Kent, United Kingdom</location>
+ <latitude />
+ <longitude />
+ <provider>Unknown</provider>
+ <providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
+ <operatingSystemShortName>Win XP</operatingSystemShortName>
+ <operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
+ <browserFamily>gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browserName>Firefox 3.6</browserName>
+ <browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <screenType>normal</screenType>
+ <resolution>1024x768</resolution>
+ <screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/UserSettings/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..261327f8d0
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>1</row>
+ <row>2</row>
+ <row>3</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..0e3245bec0
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_actions__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>14</nb_visits>
+ <nb_actions>14</nb_actions>
+ <nb_visits_converted>14</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>2900</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>207</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..9eb777a0b7
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>FF</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..abcc43c819
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>3.6</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..ce63144a3b
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Stratford-upon-Avon</row>
+ <row>Vancouver</row>
+ <row>Nuneaton and Bedworth</row>
+ <row>London</row>
+ <row>Hluboká nad Vltavou</row>
+ <row>Besançon</row>
+ <row>Lhasa</row>
+ <row>not a city</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..1b299addfd
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_city__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>10</nb_visits>
+ <nb_actions>15</nb_actions>
+ <nb_visits_converted>10</nb_visits_converted>
+ <bounce_count>7</bounce_count>
+ <sum_visit_length>2537</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>70%</bounce_rate>
+ <nb_actions_per_visit>1.5</nb_actions_per_visit>
+ <avg_time_on_site>254</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..f002a6ceae
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>eur</row>
+ <row>amn</row>
+ <row>asi</row>
+ <row>unk</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..1d9f90e821
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_continentCode__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>19</nb_visits>
+ <nb_actions>31</nb_actions>
+ <nb_visits_converted>19</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>5795</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>305</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..620d22f23c
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>gb</row>
+ <row>ru</row>
+ <row>ca</row>
+ <row>xx</row>
+ <row>mk</row>
+ <row>fr</row>
+ <row>it</row>
+ <row>ti</row>
+ <row>us</row>
+ <row>id</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..c159bea68c
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_countryCode__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>10</nb_visits>
+ <nb_actions>17</nb_actions>
+ <nb_visits_converted>10</nb_visits_converted>
+ <bounce_count>5</bounce_count>
+ <sum_visit_length>1089</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>109</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..d301db94df
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar 1 name</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..a9974ffdf6
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName1__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>26</nb_visits>
+ <nb_actions>43</nb_actions>
+ <nb_visits_converted>26</nb_visits_converted>
+ <bounce_count>13</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>321</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName2__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName2__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName2__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName3__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName3__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName3__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName4__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName4__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName4__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..3b00ef3096
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar 5 name</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..a9974ffdf6
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableName5__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>26</nb_visits>
+ <nb_actions>43</nb_actions>
+ <nb_visits_converted>26</nb_visits_converted>
+ <bounce_count>13</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>321</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName1__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName1__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName1__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..8698fbbd4d
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar 2 PAGE name</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..59f83afa72
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName2__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>29</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>9</bounce_count>
+ <sum_visit_length>8</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName3__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName3__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName3__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..522fc54866
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Search Category</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..d8bcdace18
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName4__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>0</nb_visits>
+ <nb_actions>0</nb_actions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>0</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>0</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..3e34700999
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar 5 PAGE name</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..59f83afa72
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageName5__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>29</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>9</bounce_count>
+ <sum_visit_length>8</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue1__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue1__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue1__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..18b4e9b372
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar2 PAGE value is 1</row>
+ <row>Cvar2 PAGE value is 0</row>
+ <row>Cvar2 PAGE value is 2</row>
+ <row>Cvar2 PAGE value is 3</row>
+ <row>Cvar2 PAGE value is 4</row>
+ <row>Cvar2 PAGE value is 7</row>
+ <row>Cvar2 PAGE value is 6</row>
+ <row>Cvar2 PAGE value is 5</row>
+ <row>Cvar2 PAGE value is 8</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..cd71c5c600
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue2__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>4</nb_visits>
+ <nb_actions>7</nb_actions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>3</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>25%</bounce_rate>
+ <nb_actions_per_visit>1.8</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue3__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue3__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue3__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..f7624776eb
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>CAT</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..28cc9efad5
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue4__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>9</nb_visits>
+ <nb_actions>22</nb_actions>
+ <nb_visits_converted>9</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>5429</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>2.4</nb_actions_per_visit>
+ <avg_time_on_site>603</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..0425837789
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar5 PAGE value is 1</row>
+ <row>Cvar5 PAGE value is 0</row>
+ <row>Cvar5 PAGE value is 2</row>
+ <row>Cvar5 PAGE value is 3</row>
+ <row>Cvar5 PAGE value is 4</row>
+ <row>Cvar5 PAGE value is 7</row>
+ <row>Cvar5 PAGE value is 6</row>
+ <row>Cvar5 PAGE value is 5</row>
+ <row>Cvar5 PAGE value is 8</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..cd71c5c600
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariablePageValue5__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>4</nb_visits>
+ <nb_actions>7</nb_actions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>3</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>25%</bounce_rate>
+ <nb_actions_per_visit>1.8</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..b157cb068a
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar1 value is 1</row>
+ <row>Cvar1 value is 0</row>
+ <row>Cvar1 value is 2</row>
+ <row>Cvar1 value is 3</row>
+ <row>Cvar1 value is 4</row>
+ <row>Cvar1 value is 7</row>
+ <row>Cvar1 value is 6</row>
+ <row>Cvar1 value is 5</row>
+ <row>Cvar1 value is 8</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..751c0c27bc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue1__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>5</nb_visits>
+ <nb_actions>8</nb_actions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <bounce_count>2</bounce_count>
+ <sum_visit_length>728</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>40%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>146</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue2__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue2__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue2__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue3__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue3__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue3__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue4__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue4__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..c234bed59e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue4__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result /> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..40b2b0992a
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Cvar5 value is 1</row>
+ <row>Cvar5 value is 0</row>
+ <row>Cvar5 value is 2</row>
+ <row>Cvar5 value is 3</row>
+ <row>Cvar5 value is 4</row>
+ <row>Cvar5 value is 7</row>
+ <row>Cvar5 value is 6</row>
+ <row>Cvar5 value is 5</row>
+ <row>Cvar5 value is 8</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..751c0c27bc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_customVariableValue5__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>5</nb_visits>
+ <nb_actions>8</nb_actions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <bounce_count>2</bounce_count>
+ <sum_visit_length>728</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>40%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>146</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..487ce13284
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>100</row>
+ <row>101</row>
+ <row>0</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..2526263baf
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceFirstVisit__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>34</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>24%</bounce_rate>
+ <nb_actions_per_visit>2</nb_actions_per_visit>
+ <avg_time_on_site>490</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..ab150e6b32
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>50</row>
+ <row>51</row>
+ <row>0</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..2526263baf
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastEcommerceOrder__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>34</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>24%</bounce_rate>
+ <nb_actions_per_visit>2</nb_actions_per_visit>
+ <avg_time_on_site>490</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..9a04ddc8c8
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>10</row>
+ <row>11</row>
+ <row>0</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..2526263baf
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_daysSinceLastVisit__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>34</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>24%</bounce_rate>
+ <nb_actions_per_visit>2</nb_actions_per_visit>
+ <avg_time_on_site>490</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..9916600524
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>It's &lt;script&gt; pitch black...</row>
+ <row>Space Quest XII</row>
+ <row>It's pitch black...</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..14faab994a
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageTitle__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>9</nb_visits>
+ <nb_actions>9</nb_actions>
+ <nb_visits_converted>9</nb_visits_converted>
+ <bounce_count>9</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..4d3c877fce
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>http://piwik.net/grue/lair</row>
+ <row>http://piwik.net/space/quest/iv</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..724075c272
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_entryPageUrl__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>10</nb_visits>
+ <nb_actions>10</nb_actions>
+ <nb_visits_converted>10</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..d0706b262e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Space Quest XII</row>
+ <row>It's &lt;script&gt; pitch black...</row>
+ <row>It's pitch black...</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..4cd6c8c576
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageTitle__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>4</nb_visits>
+ <nb_actions>4</nb_actions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>2900</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>725</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..162ce8a72b
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>http://piwik.net/space/quest/iv</row>
+ <row>http://piwik.net/grue/lair</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..4cd6c8c576
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_exitPageUrl__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>4</nb_visits>
+ <nb_actions>4</nb_actions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>2900</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>725</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..bb23f68008
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>49.250000</row>
+ <row>123.456001</row>
+ <row>124.456001</row>
+ <row>47.249001</row>
+ <row>29.650000</row>
+ <row>1.000000</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..05e3e19194
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_latitude__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>3</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>2.3</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..5e43d5d315
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>-123.133003</row>
+ <row>21.320999</row>
+ <row>22.231001</row>
+ <row>6.018000</row>
+ <row>91.099998</row>
+ <row>2.000000</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..d8bcdace18
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_longitude__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>0</nb_visits>
+ <nb_actions>0</nb_actions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>0</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>0</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..5a4388b3a1
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>WXP</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..9916600524
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>It's &lt;script&gt; pitch black...</row>
+ <row>Space Quest XII</row>
+ <row>It's pitch black...</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..59f83afa72
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageTitle__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>29</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>9</bounce_count>
+ <sum_visit_length>8</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..162ce8a72b
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>http://piwik.net/space/quest/iv</row>
+ <row>http://piwik.net/grue/lair</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..2526263baf
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_pageUrl__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>17</nb_visits>
+ <nb_actions>34</nb_actions>
+ <nb_visits_converted>17</nb_visits_converted>
+ <bounce_count>4</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>24%</bounce_rate>
+ <nb_actions_per_visit>2</nb_actions_per_visit>
+ <avg_time_on_site>490</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..b406b0dc48
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Unknown</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..d8bcdace18
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_provider__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>0</nb_visits>
+ <nb_actions>0</nb_actions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>0</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>0</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..2959b13a9c
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>wikileaks ftw</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..dfa3a20623
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerKeyword__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..6ca2019597
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Google</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..dfa3a20623
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerName__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..9b61eb17b1
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>direct</row>
+ <row>search</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..a9974ffdf6
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerType__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>26</nb_visits>
+ <nb_actions>43</nb_actions>
+ <nb_visits_converted>26</nb_visits_converted>
+ <bounce_count>13</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>321</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..f7cd8deb3b
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>http://google.com/?q=Wikileaks FTW</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..dfa3a20623
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_referrerUrl__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..8261244cc9
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>P3</row>
+ <row>66</row>
+ <row>BC</row>
+ <row>H9</row>
+ <row>G5</row>
+ <row>A6</row>
+ <row>1</row>
+ <row>CA</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..e7a2197c1a
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_regionCode__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>6</nb_visits>
+ <nb_actions>11</nb_actions>
+ <nb_visits_converted>6</nb_visits_converted>
+ <bounce_count>3</bounce_count>
+ <sum_visit_length>3</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.8</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..5a29930810
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>1024x768</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_resolution__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..727df89075
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>0</row>
+ <row>1</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..7d41cbbc1e
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_searches__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>18</nb_visits>
+ <nb_actions>22</nb_actions>
+ <nb_visits_converted>18</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>2904</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>78%</bounce_rate>
+ <nb_actions_per_visit>1.2</nb_actions_per_visit>
+ <avg_time_on_site>161</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..0690d54c62
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Bring on the party</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..28cc9efad5
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_siteSearchKeyword__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>9</nb_visits>
+ <nb_actions>22</nb_actions>
+ <nb_visits_converted>9</nb_visits_converted>
+ <bounce_count>0</bounce_count>
+ <sum_visit_length>5429</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>0%</bounce_rate>
+ <nb_actions_per_visit>2.4</nb_actions_per_visit>
+ <avg_time_on_site>603</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..1099070756
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>1</row>
+ <row>2</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConvertedGoalId__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..70bdb9e417
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>1</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitConverted__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..cec58f0121
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>5</row>
+ <row>1</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..02a51f80fb
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitCount__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>25</nb_visits>
+ <nb_actions>42</nb_actions>
+ <nb_visits_converted>25</nb_visits_converted>
+ <bounce_count>12</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>48%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>333</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..72a9bf5dea
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>0</row>
+ <row>1</row>
+ <row>1085</row>
+ <row>725</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..724075c272
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitDuration__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>10</nb_visits>
+ <nb_actions>10</nb_actions>
+ <nb_visits_converted>10</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>0</sum_visit_length>
+ <max_actions>1</max_actions>
+ <bounce_rate>100%</bounce_rate>
+ <nb_actions_per_visit>1</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..405fd9750c
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>none</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitEcommerceStatus__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..fabf23f0cd
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>1.2.4.3</row>
+ <row>194.57.91.215</row>
+ <row>1.2.4.2</row>
+ <row>1.2.4.0</row>
+ <row>1.2.4.1</row>
+ <row>1.2.4.4</row>
+ <row>1.2.4.8</row>
+ <row>1.2.4.7</row>
+ <row>1.2.4.6</row>
+ <row>1.2.4.5</row>
+ <row>151.100.101.92</row>
+ <row>137.82.130.0</row>
+ <row>137.82.0.0</row>
+ <row>2001:db8:85a3::8a2e:370:7334</row>
+ <row>113.62.1.1</row>
+ <row>103.29.196.229</row>
+ <row>::ffff:137.82.130.49</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..358d3a0162
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitIp__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>2</nb_visits>
+ <nb_actions>3</nb_actions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>1</sum_visit_length>
+ <max_actions>2</max_actions>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>1.5</nb_actions_per_visit>
+ <avg_time_on_site>1</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..e8a749dda2
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>12</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..03424fccbc
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitLocalHour__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>44</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>14</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>52%</bounce_rate>
+ <nb_actions_per_visit>1.6</nb_actions_per_visit>
+ <avg_time_on_site>309</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..727df89075
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>0</row>
+ <row>1</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..cf7fd5e1a4
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitServerHour__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>18</nb_visits>
+ <nb_actions>30</nb_actions>
+ <nb_visits_converted>18</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>8</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>56%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>0</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..2d985a9a67
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>a9b7ba70783b617e</row>
+ <row>b8c37e33defde51c</row>
+ <row>aa68c75c4a77c87f</row>
+ <row>fba9d88164f3e2d9</row>
+ <row>fed33392d3a48aa1</row>
+ <row>2387337ba1e0b024</row>
+ <row>1587965fb4d4b5af</row>
+ <row>d7322ed717dedf1e</row>
+ <row>9246444d94f081e3</row>
+ <row>fed33392d3a48ab2</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..48825a55d1
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorId__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>5</nb_visits>
+ <nb_actions>12</nb_actions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <bounce_count>1</bounce_count>
+ <sum_visit_length>1088</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>20%</bounce_rate>
+ <nb_actions_per_visit>2.4</nb_actions_per_visit>
+ <avg_time_on_site>218</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..84613aaaf2
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>returningCustomer</row>
+ <row>new</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..02a51f80fb
--- /dev/null
+++ b/tests/PHPUnit/Integration/expected/test_AutoSuggestAPITest_visitorType__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>25</nb_visits>
+ <nb_actions>42</nb_actions>
+ <nb_visits_converted>25</nb_visits_converted>
+ <bounce_count>12</bounce_count>
+ <sum_visit_length>8333</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>48%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>333</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
index b3648771e2..a4b34bfc7b 100644
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__Live.getLastVisitsDetails_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<idSite>1</idSite>
- <idVisit>35</idVisit>
+ <idVisit>27</idVisit>
<visitIp>194.57.91.215</visitIp>
<visitorType>new</visitorType>
@@ -17,8 +17,9 @@
<row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>35</goalPageId>
+ <goalPageId>44</goalPageId>
<url>http://piwik.net/grue/lair</url>
<icon>themes/default/images/goal.png</icon>
@@ -28,7 +29,7 @@
<url>http://piwik.net/grue/lair</url>
<pageTitle>It&amp;#039;s pitch black...</pageTitle>
<pageIdAction>2</pageIdAction>
- <pageId>35</pageId>
+ <pageId>44</pageId>
<icon />
</row>
@@ -40,6 +41,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
@@ -55,27 +58,31 @@
<countryCode>us</countryCode>
<countryFlag>plugins/UserCountry/flags/us.png</countryFlag>
<region>California</region>
+ <regionCode>CA</regionCode>
<city>not a city</city>
<location>not a city, California, United States</location>
<latitude>1.000000</latitude>
<longitude>2.000000</longitude>
<provider>Unknown</provider>
<providerUrl>http://piwik.org/faq/general/#faq_52</providerUrl>
- <referrerType>direct</referrerType>
- <referrerTypeName>Direct Entry</referrerTypeName>
- <referrerName />
- <referrerKeyword />
+ <referrerType>search</referrerType>
+ <referrerTypeName>Search Engines</referrerTypeName>
+ <referrerName>Google</referrerName>
+ <referrerKeyword>wikileaks ftw</referrerKeyword>
<referrerKeywordPosition />
- <referrerUrl />
- <referrerSearchEngineUrl />
- <referrerSearchEngineIcon />
+ <referrerUrl>http://google.com/?q=Wikileaks FTW</referrerUrl>
+ <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
+ <referrerSearchEngineIcon>plugins/Referers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -101,56 +108,95 @@
<idVisit>18</idVisit>
<visitIp>1.2.4.8</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
<visitEcommerceStatusIcon />
- <searches>0</searches>
- <actions>1</actions>
+ <searches>1</searches>
+ <actions>2</actions>
<actionDetails>
<row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>22</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>18</goalPageId>
+ <goalPageId>22</goalPageId>
<url>http://piwik.net/space/quest/iv</url>
<icon>themes/default/images/goal.png</icon>
</row>
<row>
- <type>action</type>
- <url>http://piwik.net/space/quest/iv</url>
- <pageTitle>Space Quest XII</pageTitle>
- <pageIdAction>4</pageIdAction>
- <pageId>18</pageId>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>23</pageId>
- <icon />
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 8</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 8</customVariableValue5>
+ </row>
</customVariables>
- <goalConversions>1</goalConversions>
+ <goalConversions>2</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
- <visitDuration>0</visitDuration>
- <visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
<continent>Unknown</continent>
<continentCode>unk</continentCode>
<country>Unknown</country>
<countryCode>xx</countryCode>
<countryFlag>plugins/UserCountry/flags/xx.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>Unknown</location>
<latitude />
@@ -166,12 +212,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -197,8 +246,8 @@
<idVisit>17</idVisit>
<visitIp>1.2.4.8</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -209,8 +258,9 @@
<row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>17</goalPageId>
+ <goalPageId>21</goalPageId>
<url>http://piwik.net/grue/lair</url>
<icon>themes/default/images/goal.png</icon>
@@ -218,35 +268,56 @@
<row>
<type>action</type>
<url>http://piwik.net/grue/lair</url>
- <pageTitle>It&amp;#039;s pitch black...</pageTitle>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
<pageIdAction>2</pageIdAction>
- <pageId>17</pageId>
+ <pageId>21</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 8</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 8</customVariablePageValue5>
+ </row>
+ </customVariables>
<icon />
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 8</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 8</customVariableValue5>
+ </row>
</customVariables>
<goalConversions>1</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
<visitDuration>0</visitDuration>
<visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
<continent>Unknown</continent>
<continentCode>unk</continentCode>
<country>Unknown</country>
<countryCode>xx</countryCode>
<countryFlag>plugins/UserCountry/flags/xx.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>Unknown</location>
<latitude />
@@ -262,12 +333,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -293,8 +367,8 @@
<idVisit>16</idVisit>
<visitIp>1.2.4.7</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -303,46 +377,68 @@
<actions>1</actions>
<actionDetails>
<row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>20</pageId>
+
+ <icon />
+ </row>
+ <row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>16</goalPageId>
+ <goalPageId>20</goalPageId>
<url>http://piwik.net/space/quest/iv</url>
<icon>themes/default/images/goal.png</icon>
</row>
<row>
- <type>action</type>
- <url>http://piwik.net/space/quest/iv</url>
- <pageTitle>Space Quest XII</pageTitle>
- <pageIdAction>4</pageIdAction>
- <pageId>16</pageId>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
- <icon />
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 7</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 7</customVariableValue5>
+ </row>
</customVariables>
- <goalConversions>1</goalConversions>
+ <goalConversions>2</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
- <visitDuration>0</visitDuration>
- <visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>725</visitDuration>
+ <visitDurationPretty>12 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Macedonia, the Former Yugoslav Republic of</country>
<countryCode>mk</countryCode>
<countryFlag>plugins/UserCountry/flags/mk.png</countryFlag>
<region>Miravci</region>
+ <regionCode>66</regionCode>
<city>Stratford-upon-Avon</city>
<location>Stratford-upon-Avon, Miravci, Macedonia, the Former Yugoslav Republic of</location>
<latitude />
@@ -358,12 +454,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -389,8 +488,8 @@
<idVisit>15</idVisit>
<visitIp>1.2.4.7</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -401,8 +500,9 @@
<row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>15</goalPageId>
+ <goalPageId>19</goalPageId>
<url>http://piwik.net/grue/lair</url>
<icon>themes/default/images/goal.png</icon>
@@ -410,35 +510,56 @@
<row>
<type>action</type>
<url>http://piwik.net/grue/lair</url>
- <pageTitle>It&amp;#039;s pitch black...</pageTitle>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
<pageIdAction>2</pageIdAction>
- <pageId>15</pageId>
+ <pageId>19</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 7</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 7</customVariablePageValue5>
+ </row>
+ </customVariables>
<icon />
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 7</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 7</customVariableValue5>
+ </row>
</customVariables>
<goalConversions>1</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
<visitDuration>0</visitDuration>
<visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Macedonia, the Former Yugoslav Republic of</country>
<countryCode>mk</countryCode>
<countryFlag>plugins/UserCountry/flags/mk.png</countryFlag>
<region>Miravci</region>
+ <regionCode>66</regionCode>
<city>Stratford-upon-Avon</city>
<location>Stratford-upon-Avon, Miravci, Macedonia, the Former Yugoslav Republic of</location>
<latitude />
@@ -454,12 +575,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -485,56 +609,95 @@
<idVisit>14</idVisit>
<visitIp>1.2.4.6</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
<visitEcommerceStatusIcon />
- <searches>0</searches>
- <actions>1</actions>
+ <searches>1</searches>
+ <actions>2</actions>
<actionDetails>
<row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>17</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>14</goalPageId>
+ <goalPageId>17</goalPageId>
<url>http://piwik.net/space/quest/iv</url>
<icon>themes/default/images/goal.png</icon>
</row>
<row>
- <type>action</type>
- <url>http://piwik.net/space/quest/iv</url>
- <pageTitle>Space Quest XII</pageTitle>
- <pageIdAction>4</pageIdAction>
- <pageId>14</pageId>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>18</pageId>
- <icon />
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 6</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 6</customVariableValue5>
+ </row>
</customVariables>
- <goalConversions>1</goalConversions>
+ <goalConversions>2</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
- <visitDuration>0</visitDuration>
- <visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Russian Federation</country>
<countryCode>ru</countryCode>
<countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
<region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
<city>Hluboká nad Vltavou</city>
<location>Hluboká nad Vltavou, Saint Petersburg City, Russian Federation</location>
<latitude />
@@ -550,12 +713,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -581,8 +747,8 @@
<idVisit>13</idVisit>
<visitIp>1.2.4.6</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -593,8 +759,9 @@
<row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>13</goalPageId>
+ <goalPageId>16</goalPageId>
<url>http://piwik.net/grue/lair</url>
<icon>themes/default/images/goal.png</icon>
@@ -602,35 +769,56 @@
<row>
<type>action</type>
<url>http://piwik.net/grue/lair</url>
- <pageTitle>It&amp;#039;s pitch black...</pageTitle>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
<pageIdAction>2</pageIdAction>
- <pageId>13</pageId>
+ <pageId>16</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 6</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 6</customVariablePageValue5>
+ </row>
+ </customVariables>
<icon />
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 6</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 6</customVariableValue5>
+ </row>
</customVariables>
<goalConversions>1</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
<visitDuration>0</visitDuration>
<visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Russian Federation</country>
<countryCode>ru</countryCode>
<countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
<region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
<city>Hluboká nad Vltavou</city>
<location>Hluboká nad Vltavou, Saint Petersburg City, Russian Federation</location>
<latitude />
@@ -646,12 +834,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -677,8 +868,8 @@
<idVisit>12</idVisit>
<visitIp>1.2.4.5</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -687,46 +878,68 @@
<actions>1</actions>
<actionDetails>
<row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>15</pageId>
+
+ <icon />
+ </row>
+ <row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>12</goalPageId>
+ <goalPageId>15</goalPageId>
<url>http://piwik.net/space/quest/iv</url>
<icon>themes/default/images/goal.png</icon>
</row>
<row>
- <type>action</type>
- <url>http://piwik.net/space/quest/iv</url>
- <pageTitle>Space Quest XII</pageTitle>
- <pageIdAction>4</pageIdAction>
- <pageId>12</pageId>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
- <icon />
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 5</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 5</customVariableValue5>
+ </row>
</customVariables>
- <goalConversions>1</goalConversions>
+ <goalConversions>2</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
- <visitDuration>0</visitDuration>
- <visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>725</visitDuration>
+ <visitDurationPretty>12 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Russian Federation</country>
<countryCode>ru</countryCode>
<countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
<region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
<city>Stratford-upon-Avon</city>
<location>Stratford-upon-Avon, Saint Petersburg City, Russian Federation</location>
<latitude />
@@ -742,12 +955,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -773,8 +989,8 @@
<idVisit>11</idVisit>
<visitIp>1.2.4.5</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
@@ -785,8 +1001,9 @@
<row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>11</goalPageId>
+ <goalPageId>14</goalPageId>
<url>http://piwik.net/grue/lair</url>
<icon>themes/default/images/goal.png</icon>
@@ -794,35 +1011,56 @@
<row>
<type>action</type>
<url>http://piwik.net/grue/lair</url>
- <pageTitle>It&amp;#039;s pitch black...</pageTitle>
+ <pageTitle>It&amp;#039;s &lt;script&gt; pitch black...</pageTitle>
<pageIdAction>2</pageIdAction>
- <pageId>11</pageId>
+ <pageId>14</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2>
+ <customVariablePageValue2>Cvar2 PAGE value is 5</customVariablePageValue2>
+ </row>
+ <row>
+ <customVariablePageName5>Cvar 5 PAGE name</customVariablePageName5>
+ <customVariablePageValue5>Cvar5 PAGE value is 5</customVariablePageValue5>
+ </row>
+ </customVariables>
<icon />
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 5</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 5</customVariableValue5>
+ </row>
</customVariables>
<goalConversions>1</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
<visitDuration>0</visitDuration>
<visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>11</daysSinceLastVisit>
+ <daysSinceFirstVisit>101</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>51</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>Russian Federation</country>
<countryCode>ru</countryCode>
<countryFlag>plugins/UserCountry/flags/ru.png</countryFlag>
<region>Saint Petersburg City</region>
+ <regionCode>66</regionCode>
<city>Stratford-upon-Avon</city>
<location>Stratford-upon-Avon, Saint Petersburg City, Russian Federation</location>
<latitude />
@@ -838,12 +1076,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -869,56 +1110,95 @@
<idVisit>10</idVisit>
<visitIp>1.2.4.4</visitIp>
- <visitorType>new</visitorType>
- <visitorTypeIcon />
+ <visitorType>returningCustomer</visitorType>
+ <visitorTypeIcon>plugins/Live/templates/images/returningVisitor.gif</visitorTypeIcon>
<visitConverted>1</visitConverted>
<visitConvertedIcon>themes/default/images/goal.png</visitConvertedIcon>
<visitEcommerceStatus>none</visitEcommerceStatus>
<visitEcommerceStatusIcon />
- <searches>0</searches>
- <actions>1</actions>
+ <searches>1</searches>
+ <actions>2</actions>
<actionDetails>
<row>
+ <type>action</type>
+ <url>http://piwik.net/space/quest/iv</url>
+ <pageTitle>Space Quest XII</pageTitle>
+ <pageIdAction>4</pageIdAction>
+ <pageId>12</pageId>
+
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+ </row>
+ <row>
<type>goal</type>
<goalName>all</goalName>
+ <goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>10</goalPageId>
+ <goalPageId>12</goalPageId>
<url>http://piwik.net/space/quest/iv</url>
<icon>themes/default/images/goal.png</icon>
</row>
<row>
- <type>action</type>
- <url>http://piwik.net/space/quest/iv</url>
- <pageTitle>Space Quest XII</pageTitle>
- <pageIdAction>4</pageIdAction>
- <pageId>10</pageId>
+ <type>search</type>
+ <url />
+ <pageIdAction />
+ <pageId>13</pageId>
- <icon />
+ <customVariables>
+ <row>
+ <customVariablePageName4>Search Category</customVariablePageName4>
+ <customVariablePageValue4>CAT</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <siteSearchKeyword>Bring on the party</siteSearchKeyword>
+ <icon>themes/default/images/search_ico.png</icon>
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>two</goalName>
+ <goalId>2</goalId>
+ <revenue>5</revenue>
+ <goalPageId />
+
+ <url>http://piwik.net/space/quest/iv</url>
+ <icon>themes/default/images/goal.png</icon>
</row>
</actionDetails>
<customVariables>
+ <row>
+ <customVariableName1>Cvar 1 name</customVariableName1>
+ <customVariableValue1>Cvar1 value is 4</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName5>Cvar 5 name</customVariableName5>
+ <customVariableValue5>Cvar5 value is 4</customVariableValue5>
+ </row>
</customVariables>
- <goalConversions>1</goalConversions>
+ <goalConversions>2</goalConversions>
<siteCurrency>USD</siteCurrency>
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
- <visitDuration>0</visitDuration>
- <visitDurationPretty>0s</visitDurationPretty>
- <visitCount>1</visitCount>
- <daysSinceLastVisit>0</daysSinceLastVisit>
- <daysSinceFirstVisit>0</daysSinceFirstVisit>
- <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>1085</visitDuration>
+ <visitDurationPretty>18 min 5s</visitDurationPretty>
+ <visitCount>5</visitCount>
+ <daysSinceLastVisit>10</daysSinceLastVisit>
+ <daysSinceFirstVisit>100</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>50</daysSinceLastEcommerceOrder>
<continent>Europe</continent>
<continentCode>eur</continentCode>
<country>United Kingdom</country>
<countryCode>gb</countryCode>
<countryFlag>plugins/UserCountry/flags/gb.png</countryFlag>
<region>Kent</region>
+ <regionCode>G5</regionCode>
<city>Stratford-upon-Avon</city>
<location>Stratford-upon-Avon, Kent, United Kingdom</location>
<latitude />
@@ -934,12 +1214,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
index d7b3cb512e..29f5758280 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCity_month.xml
@@ -2,20 +2,25 @@
<result>
<row>
<label>Unknown</label>
- <nb_visits>8</nb_visits>
+ <nb_visits>5</nb_visits>
<nb_actions>8</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>8</bounce_count>
+ <max_actions>2</max_actions>
+ <sum_visit_length>3980</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>8</nb_conversions>
- <nb_visits_converted>8</nb_visits_converted>
- <revenue>40</revenue>
+ <nb_conversions>5</nb_conversions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <revenue>25</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>4</nb_conversions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <revenue>20</revenue>
</row>
</goals>
- <nb_conversions>8</nb_conversions>
- <revenue>40</revenue>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
<sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
<city_name>Unknown</city_name>
<city>xx</city>
@@ -26,47 +31,26 @@
<logo>plugins/UserCountry/flags/xx.png</logo>
</row>
<row>
- <label>Vancouver, British Columbia, Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
- <goals>
- <row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
- </row>
- </goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
- <lat>49.25</lat>
- <long>-123.133</long>
- <city_name>Vancouver</city_name>
- <region>BC</region>
- <country>ca</country>
- <country_name>Canada</country_name>
- <region_name>British Columbia</region_name>
- <logo>plugins/UserCountry/flags/ca.png</logo>
- </row>
- <row>
<label>Stratford-upon-Avon, Warwickshire, United Kingdom</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<lat>124.456</lat>
<long>22.231</long>
@@ -78,47 +62,57 @@
<logo>plugins/UserCountry/flags/gb.png</logo>
</row>
<row>
- <label>Besançon, Franche-Comte, France</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <label>Vancouver, British Columbia, Canada</label>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
- <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <lat>47.249</lat>
- <long>6.018</long>
- <city_name>Besançon</city_name>
- <region>A6</region>
- <country>fr</country>
- <country_name>France</country_name>
- <region_name>Franche-Comte</region_name>
- <logo>plugins/UserCountry/flags/fr.png</logo>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <lat>49.25</lat>
+ <long>-123.133</long>
+ <city_name>Vancouver</city_name>
+ <region>BC</region>
+ <country>ca</country>
+ <country_name>Canada</country_name>
+ <region_name>British Columbia</region_name>
+ <logo>plugins/UserCountry/flags/ca.png</logo>
</row>
<row>
<label>Hluboká nad Vltavou, Saint Petersburg City, Russian Federation</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Hluboká nad Vltavou</city_name>
<region>66</region>
@@ -128,47 +122,26 @@
<logo>plugins/UserCountry/flags/ru.png</logo>
</row>
<row>
- <label>Lhasa, Unknown, Tibet</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
- <goals>
- <row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
- </row>
- </goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
- <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <lat>29.65</lat>
- <long>91.1</long>
- <city_name>Lhasa</city_name>
- <region>1</region>
- <country>ti</country>
- <country_name>Tibet</country_name>
- <region_name>Unknown</region_name>
- <logo>plugins/UserCountry/flags/ti.png</logo>
- </row>
- <row>
<label>London, London, City of, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>London</city_name>
<region>H9</region>
@@ -180,19 +153,24 @@
<row>
<label>Nuneaton and Bedworth, Warwickshire, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Nuneaton and Bedworth</city_name>
<region>P3</region>
@@ -206,7 +184,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>725</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -214,9 +192,14 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Stratford-upon-Avon</city_name>
<region>66</region>
@@ -230,7 +213,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>725</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -238,9 +221,14 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Stratford-upon-Avon</city_name>
<region>66</region>
@@ -252,19 +240,24 @@
<row>
<label>Stratford-upon-Avon, Kent, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Stratford-upon-Avon</city_name>
<region>G5</region>
@@ -274,6 +267,68 @@
<logo>plugins/UserCountry/flags/gb.png</logo>
</row>
<row>
+ <label>Besançon, Franche-Comte, France</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ </goals>
+ <nb_conversions>2</nb_conversions>
+ <revenue>10</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <lat>47.249</lat>
+ <long>6.018</long>
+ <city_name>Besançon</city_name>
+ <region>A6</region>
+ <country>fr</country>
+ <country_name>France</country_name>
+ <region_name>Franche-Comte</region_name>
+ <logo>plugins/UserCountry/flags/fr.png</logo>
+ </row>
+ <row>
+ <label>Lhasa, Unknown, Tibet</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>725</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ </goals>
+ <nb_conversions>2</nb_conversions>
+ <revenue>10</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <lat>29.65</lat>
+ <long>91.1</long>
+ <city_name>Lhasa</city_name>
+ <region>1</region>
+ <country>ti</country>
+ <country_name>Tibet</country_name>
+ <region_name>Unknown</region_name>
+ <logo>plugins/UserCountry/flags/ti.png</logo>
+ </row>
+ <row>
<label>not a city, California, United States</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml
index e482330f9a..b77648c14e 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml
@@ -2,67 +2,82 @@
<result>
<row>
<label>Europe</label>
- <nb_visits>22</nb_visits>
- <nb_actions>22</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>22</bounce_count>
+ <nb_visits>19</nb_visits>
+ <nb_actions>31</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>5795</sum_visit_length>
+ <bounce_count>10</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>22</nb_conversions>
- <nb_visits_converted>22</nb_visits_converted>
- <revenue>110</revenue>
+ <nb_conversions>19</nb_conversions>
+ <nb_visits_converted>19</nb_visits_converted>
+ <revenue>95</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>11</nb_conversions>
+ <nb_visits_converted>11</nb_visits_converted>
+ <revenue>55</revenue>
</row>
</goals>
- <nb_conversions>22</nb_conversions>
- <revenue>110</revenue>
+ <nb_conversions>30</nb_conversions>
+ <revenue>150</revenue>
<sum_daily_nb_uniq_visitors>11</sum_daily_nb_uniq_visitors>
<code>Europe</code>
</row>
<row>
<label>North America</label>
- <nb_visits>7</nb_visits>
- <nb_actions>7</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>7</bounce_count>
+ <nb_visits>4</nb_visits>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>7</nb_conversions>
- <nb_visits_converted>7</nb_visits_converted>
- <revenue>35</revenue>
+ <nb_conversions>4</nb_conversions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <revenue>20</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
<nb_conversions>7</nb_conversions>
<revenue>35</revenue>
- <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<code>North America</code>
</row>
<row>
- <label>Asia</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <label>Unknown</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>4</nb_conversions>
- <nb_visits_converted>4</nb_visits_converted>
- <revenue>20</revenue>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
- <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <code>Asia</code>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <code>Unknown</code>
</row>
<row>
- <label>Unknown</label>
+ <label>Asia</label>
<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>1450</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -70,10 +85,15 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
- <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>Unknown</code>
+ <nb_conversions>4</nb_conversions>
+ <revenue>20</revenue>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <code>Asia</code>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml
index 4f0f39467e..55bc1f2f57 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml
@@ -3,19 +3,24 @@
<row>
<label>United Kingdom</label>
<nb_visits>10</nb_visits>
- <nb_actions>10</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>10</bounce_count>
+ <nb_actions>17</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1089</sum_visit_length>
+ <bounce_count>5</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>10</nb_conversions>
<nb_visits_converted>10</nb_visits_converted>
<revenue>50</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>5</nb_conversions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <revenue>25</revenue>
+ </row>
</goals>
- <nb_conversions>10</nb_conversions>
- <revenue>50</revenue>
+ <nb_conversions>15</nb_conversions>
+ <revenue>75</revenue>
<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<code>gb</code>
<logo>plugins/UserCountry/flags/gb.png</logo>
@@ -23,77 +28,92 @@
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <label>Russian Federation</label>
+ <nb_visits>4</nb_visits>
+ <nb_actions>5</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1810</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <nb_conversions>4</nb_conversions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <revenue>20</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
</row>
</goals>
<nb_conversions>6</nb_conversions>
<revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
- <code>ca</code>
- <logo>plugins/UserCountry/flags/ca.png</logo>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <code>ru</code>
+ <logo>plugins/UserCountry/flags/ru.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>France</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <label>Canada</label>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>4</nb_conversions>
- <nb_visits_converted>4</nb_visits_converted>
- <revenue>20</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <code>fr</code>
- <logo>plugins/UserCountry/flags/fr.png</logo>
+ <code>ca</code>
+ <logo>plugins/UserCountry/flags/ca.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Russian Federation</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <label>France</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>5</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1086</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>4</nb_conversions>
- <nb_visits_converted>4</nb_visits_converted>
- <revenue>20</revenue>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
</row>
</goals>
<nb_conversions>4</nb_conversions>
<revenue>20</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <code>ru</code>
- <logo>plugins/UserCountry/flags/ru.png</logo>
+ <code>fr</code>
+ <logo>plugins/UserCountry/flags/fr.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Indonesia</label>
+ <label>Macedonia, the Former Yugoslav Republic of</label>
<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>725</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -101,100 +121,125 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>id</code>
- <logo>plugins/UserCountry/flags/id.png</logo>
+ <code>mk</code>
+ <logo>plugins/UserCountry/flags/mk.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Italy</label>
+ <label>Unknown</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>it</code>
- <logo>plugins/UserCountry/flags/it.png</logo>
+ <code>xx</code>
+ <logo>plugins/UserCountry/flags/xx.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Macedonia, the Former Yugoslav Republic of</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
+ <label>Indonesia</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <sum_visit_length>725</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>10</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>mk</code>
- <logo>plugins/UserCountry/flags/mk.png</logo>
+ <code>id</code>
+ <logo>plugins/UserCountry/flags/id.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Tibet</label>
- <nb_visits>2</nb_visits>
+ <label>Italy</label>
+ <nb_visits>1</nb_visits>
<nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>10</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>ti</code>
- <logo>plugins/UserCountry/flags/ti.png</logo>
+ <code>it</code>
+ <logo>plugins/UserCountry/flags/it.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Unknown</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
+ <label>Tibet</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <sum_visit_length>725</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>10</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>xx</code>
- <logo>plugins/UserCountry/flags/xx.png</logo>
+ <code>ti</code>
+ <logo>plugins/UserCountry/flags/ti.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
index fec20a6dff..f879c9d3e5 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getRegion_month.xml
@@ -1,67 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
- <label>Unknown</label>
- <nb_visits>8</nb_visits>
- <nb_actions>8</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>8</bounce_count>
- <goals>
- <row idgoal='1'>
- <nb_conversions>8</nb_conversions>
- <nb_visits_converted>8</nb_visits_converted>
- <revenue>40</revenue>
- </row>
- </goals>
- <nb_conversions>8</nb_conversions>
- <revenue>40</revenue>
- <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
- <region>xx</region>
- <country>xx</country>
- <country_name>Unknown</country_name>
- <region_name>Unknown</region_name>
- <logo>plugins/UserCountry/flags/xx.png</logo>
- </row>
- <row>
- <label>British Columbia, Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
- <goals>
- <row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
- </row>
- </goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
- <region>BC</region>
- <country>ca</country>
- <country_name>Canada</country_name>
- <region_name>British Columbia</region_name>
- <logo>plugins/UserCountry/flags/ca.png</logo>
- </row>
- <row>
<label>Warwickshire, United Kingdom</label>
<nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_actions>11</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>6</nb_conversions>
<nb_visits_converted>6</nb_visits_converted>
<revenue>30</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
</goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<region>P3</region>
<country>gb</country>
@@ -70,21 +29,54 @@
<logo>plugins/UserCountry/flags/gb.png</logo>
</row>
<row>
+ <label>Unknown</label>
+ <nb_visits>5</nb_visits>
+ <nb_actions>8</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>3980</sum_visit_length>
+ <bounce_count>2</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>5</nb_conversions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <revenue>25</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>4</nb_conversions>
+ <nb_visits_converted>4</nb_visits_converted>
+ <revenue>20</revenue>
+ </row>
+ </goals>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
+ <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <region>xx</region>
+ <country>xx</country>
+ <country_name>Unknown</country_name>
+ <region_name>Unknown</region_name>
+ <logo>plugins/UserCountry/flags/xx.png</logo>
+ </row>
+ <row>
<label>Saint Petersburg City, Russian Federation</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>5</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1810</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<region>66</region>
<country>ru</country>
@@ -93,34 +85,39 @@
<logo>plugins/UserCountry/flags/ru.png</logo>
</row>
<row>
- <label>Unknown, Tibet</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <label>British Columbia, Canada</label>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
- <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <region>1</region>
- <country>ti</country>
- <country_name>Tibet</country_name>
- <region_name>Unknown</region_name>
- <logo>plugins/UserCountry/flags/ti.png</logo>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <region>BC</region>
+ <country>ca</country>
+ <country_name>Canada</country_name>
+ <region_name>British Columbia</region_name>
+ <logo>plugins/UserCountry/flags/ca.png</logo>
</row>
<row>
<label>Miravci, Macedonia, the Former Yugoslav Republic of</label>
<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>725</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -128,9 +125,14 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<region>66</region>
<country>mk</country>
@@ -139,73 +141,116 @@
<logo>plugins/UserCountry/flags/mk.png</logo>
</row>
<row>
- <label>Franche-Comte, France</label>
+ <label>Kent, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <region>A6</region>
- <country>fr</country>
- <country_name>France</country_name>
- <region_name>Franche-Comte</region_name>
- <logo>plugins/UserCountry/flags/fr.png</logo>
+ <region>G5</region>
+ <country>gb</country>
+ <country_name>United Kingdom</country_name>
+ <region_name>Kent</region_name>
+ <logo>plugins/UserCountry/flags/gb.png</logo>
</row>
<row>
- <label>Kent, United Kingdom</label>
+ <label>London, City of, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <region>G5</region>
+ <region>H9</region>
<country>gb</country>
<country_name>United Kingdom</country_name>
- <region_name>Kent</region_name>
+ <region_name>London, City of</region_name>
<logo>plugins/UserCountry/flags/gb.png</logo>
</row>
<row>
- <label>London, City of, United Kingdom</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
+ <label>Unknown, Tibet</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
<max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <sum_visit_length>725</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>10</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <region>H9</region>
- <country>gb</country>
- <country_name>United Kingdom</country_name>
- <region_name>London, City of</region_name>
- <logo>plugins/UserCountry/flags/gb.png</logo>
+ <region>1</region>
+ <country>ti</country>
+ <country_name>Tibet</country_name>
+ <region_name>Unknown</region_name>
+ <logo>plugins/UserCountry/flags/ti.png</logo>
+ </row>
+ <row>
+ <label>Franche-Comte, France</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ </goals>
+ <nb_conversions>2</nb_conversions>
+ <revenue>10</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <region>A6</region>
+ <country>fr</country>
+ <country_name>France</country_name>
+ <region_name>Franche-Comte</region_name>
+ <logo>plugins/UserCountry/flags/fr.png</logo>
</row>
<row>
<label>California, United States</label>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCity_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCity_month.xml
index 7604777d1d..f07a79dad9 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCity_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Stratford-upon-Avon, Warwickshire, United Kingdom</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<lat>124.456</lat>
<long>22.231</long>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getContinent_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getContinent_month.xml
index 2c259e4012..9d701c191f 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getContinent_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Europe</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<code>Europe</code>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCountry_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCountry_month.xml
index a8f947b229..003f6b0af1 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getCountry_month.xml
@@ -3,19 +3,24 @@
<row>
<label>United Kingdom</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<code>gb</code>
<logo>plugins/UserCountry/flags/gb.png</logo>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getRegion_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getRegion_month.xml
index 94ea760dba..51f7a0efb4 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_city__UserCountry.getRegion_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Warwickshire, United Kingdom</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<region>P3</region>
<country>gb</country>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_continent__UserCountry.getCountry_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_continent__UserCountry.getCountry_month.xml
index bce572ec53..edc146a42e 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_continent__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_continent__UserCountry.getCountry_month.xml
@@ -3,19 +3,24 @@
<row>
<label>United Kingdom</label>
<nb_visits>10</nb_visits>
- <nb_actions>10</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>10</bounce_count>
+ <nb_actions>17</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1089</sum_visit_length>
+ <bounce_count>5</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>10</nb_conversions>
<nb_visits_converted>10</nb_visits_converted>
<revenue>50</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>5</nb_conversions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <revenue>25</revenue>
+ </row>
</goals>
- <nb_conversions>10</nb_conversions>
- <revenue>50</revenue>
+ <nb_conversions>15</nb_conversions>
+ <revenue>75</revenue>
<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<code>gb</code>
<logo>plugins/UserCountry/flags/gb.png</logo>
@@ -23,55 +28,65 @@
<logoHeight>11</logoHeight>
</row>
<row>
- <label>France</label>
+ <label>Russian Federation</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>5</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1810</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <code>fr</code>
- <logo>plugins/UserCountry/flags/fr.png</logo>
+ <code>ru</code>
+ <logo>plugins/UserCountry/flags/ru.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Russian Federation</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <label>France</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>5</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>1086</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>4</nb_conversions>
- <nb_visits_converted>4</nb_visits_converted>
- <revenue>20</revenue>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
</row>
</goals>
<nb_conversions>4</nb_conversions>
<revenue>20</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <code>ru</code>
- <logo>plugins/UserCountry/flags/ru.png</logo>
+ <code>fr</code>
+ <logo>plugins/UserCountry/flags/fr.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Italy</label>
+ <label>Macedonia, the Former Yugoslav Republic of</label>
<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>725</sum_visit_length>
<bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
@@ -79,34 +94,44 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>it</code>
- <logo>plugins/UserCountry/flags/it.png</logo>
+ <code>mk</code>
+ <logo>plugins/UserCountry/flags/mk.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
<row>
- <label>Macedonia, the Former Yugoslav Republic of</label>
- <nb_visits>2</nb_visits>
+ <label>Italy</label>
+ <nb_visits>1</nb_visits>
<nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1085</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>2</nb_conversions>
- <nb_visits_converted>2</nb_visits_converted>
- <revenue>10</revenue>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>10</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <code>mk</code>
- <logo>plugins/UserCountry/flags/mk.png</logo>
+ <code>it</code>
+ <logo>plugins/UserCountry/flags/it.png</logo>
<logoWidth>16</logoWidth>
<logoHeight>11</logoHeight>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCity_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCity_month.xml
index 82aae84260..15277712f8 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCity_month.xml
@@ -2,21 +2,26 @@
<result>
<row>
<label>Vancouver, British Columbia, Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
<nb_conversions>6</nb_conversions>
<revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<lat>49.25</lat>
<long>-123.133</long>
<city_name>Vancouver</city_name>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getContinent_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getContinent_month.xml
index 892d72956c..a96be46a85 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getContinent_month.xml
@@ -2,21 +2,26 @@
<result>
<row>
<label>North America</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
<nb_conversions>6</nb_conversions>
<revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<code>North America</code>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCountry_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCountry_month.xml
index d3fde552c3..33e6aefbdf 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getCountry_month.xml
@@ -2,21 +2,26 @@
<result>
<row>
<label>Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
<nb_conversions>6</nb_conversions>
<revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<code>ca</code>
<logo>plugins/UserCountry/flags/ca.png</logo>
<logoWidth>16</logoWidth>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getRegion_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getRegion_month.xml
index 2100303b54..6c790beddb 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_lat_long__UserCountry.getRegion_month.xml
@@ -2,21 +2,26 @@
<result>
<row>
<label>British Columbia, Canada</label>
- <nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_visits>3</nb_visits>
+ <nb_actions>7</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>0</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>6</nb_conversions>
- <nb_visits_converted>6</nb_visits_converted>
- <revenue>30</revenue>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
</row>
</goals>
<nb_conversions>6</nb_conversions>
<revenue>30</revenue>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<region>BC</region>
<country>ca</country>
<country_name>Canada</country_name>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCity_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCity_month.xml
index 724be9b9c5..f39b1e6c27 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCity_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Stratford-upon-Avon, Warwickshire, United Kingdom</label>
<nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
+ <nb_actions>8</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>2</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>4</nb_conversions>
<nb_visits_converted>4</nb_visits_converted>
<revenue>20</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
+ </row>
</goals>
- <nb_conversions>4</nb_conversions>
- <revenue>20</revenue>
+ <nb_conversions>6</nb_conversions>
+ <revenue>30</revenue>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<lat>124.456</lat>
<long>22.231</long>
@@ -29,19 +34,24 @@
<row>
<label>Nuneaton and Bedworth, Warwickshire, United Kingdom</label>
<nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
+ <nb_actions>3</nb_actions>
+ <max_actions>2</max_actions>
+ <sum_visit_length>1</sum_visit_length>
+ <bounce_count>1</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
</goals>
- <nb_conversions>2</nb_conversions>
- <revenue>10</revenue>
+ <nb_conversions>3</nb_conversions>
+ <revenue>15</revenue>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<city_name>Nuneaton and Bedworth</city_name>
<region>P3</region>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getContinent_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getContinent_month.xml
index c72cd18e02..674f4d6f56 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getContinent_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Europe</label>
<nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_actions>11</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>6</nb_conversions>
<nb_visits_converted>6</nb_visits_converted>
<revenue>30</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
</goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<code>Europe</code>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCountry_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCountry_month.xml
index 6a360dcc23..7ea54f11f5 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getCountry_month.xml
@@ -3,19 +3,24 @@
<row>
<label>United Kingdom</label>
<nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_actions>11</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>6</nb_conversions>
<nb_visits_converted>6</nb_visits_converted>
<revenue>30</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
</goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<code>gb</code>
<logo>plugins/UserCountry/flags/gb.png</logo>
diff --git a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getRegion_month.xml b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getRegion_month.xml
index be114d2505..3f59ad407d 100755
--- a/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/Integration/expected/test_ManyVisitorsOneWebsiteTest_segment_region__UserCountry.getRegion_month.xml
@@ -3,19 +3,24 @@
<row>
<label>Warwickshire, United Kingdom</label>
<nb_visits>6</nb_visits>
- <nb_actions>6</nb_actions>
- <max_actions>1</max_actions>
- <sum_visit_length>0</sum_visit_length>
- <bounce_count>6</bounce_count>
+ <nb_actions>11</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>3</sum_visit_length>
+ <bounce_count>3</bounce_count>
<goals>
<row idgoal='1'>
<nb_conversions>6</nb_conversions>
<nb_visits_converted>6</nb_visits_converted>
<revenue>30</revenue>
</row>
+ <row idgoal='2'>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>3</nb_visits_converted>
+ <revenue>15</revenue>
+ </row>
</goals>
- <nb_conversions>6</nb_conversions>
- <revenue>30</revenue>
+ <nb_conversions>9</nb_conversions>
+ <revenue>45</revenue>
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<region>P3</region>
<country>gb</country>
diff --git a/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
index 611fa39abc..ce3c08fe99 100644
--- a/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_OneVisitorTwoVisits_withCookieSupport__Live.getLastVisitsDetails_day.xml
@@ -17,6 +17,7 @@
<row>
<type>goal</type>
<goalName>matching purchase.htm</goalName>
+ <goalId>2</goalId>
<revenue>1</revenue>
<goalPageId>9</goalPageId>
@@ -41,6 +42,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>12</visitServerHour>
@@ -56,6 +59,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -71,12 +75,15 @@
<referrerSearchEngineUrl>http://search.yahoo.com</referrerSearchEngineUrl>
<referrerSearchEngineIcon>plugins/Referers/images/searchEngines/search.yahoo.com.png</referrerSearchEngineIcon>
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -182,6 +189,7 @@
<row>
<type>goal</type>
<goalName>triggered js</goalName>
+ <goalId>1</goalId>
<revenue>0</revenue>
<goalPageId />
@@ -191,13 +199,13 @@
<row>
<type>search</type>
<url />
- <pageTitle>Banks Own The World</pageTitle>
<pageIdAction />
<pageId>7</pageId>
<timeSpent>108</timeSpent>
<timeSpentPretty>1 min 48s</timeSpentPretty>
<generationTime>0.81s</generationTime>
+ <siteSearchKeyword>Banks Own The World</siteSearchKeyword>
<icon>themes/default/images/search_ico.png</icon>
</row>
<row>
@@ -218,6 +226,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
@@ -233,6 +243,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -248,12 +259,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/Integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
index d53e3e326a..33db83e25d 100644
--- a/tests/PHPUnit/Integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
@@ -31,6 +31,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>13</visitServerHour>
@@ -46,6 +48,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -61,12 +64,15 @@
<referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
<referrerSearchEngineIcon>plugins/Referers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
<operatingSystem>Inconnu</operatingSystem>
+ <operatingSystemCode>UNK</operatingSystemCode>
<operatingSystemShortName>Unknown</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/UNK.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Netscape 5.0</browserName>
<browserIcon>plugins/UserSettings/images/browsers/NS.gif</browserIcon>
+ <browserCode>NS</browserCode>
+ <browserVersion>5.0</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -113,6 +119,7 @@
<row>
<type>goal</type>
<goalName>triggered js</goalName>
+ <goalId>1</goalId>
<revenue>0</revenue>
<goalPageId />
@@ -127,6 +134,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>11</visitServerHour>
@@ -142,6 +151,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -157,12 +167,15 @@
<referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
<referrerSearchEngineIcon>plugins/Referers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
<operatingSystem>Inconnu</operatingSystem>
+ <operatingSystemCode>UNK</operatingSystemCode>
<operatingSystemShortName>Unknown</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/UNK.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Netscape 5.0</browserName>
<browserIcon>plugins/UserSettings/images/browsers/NS.gif</browserIcon>
+ <browserCode>NS</browserCode>
+ <browserVersion>5.0</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index 4bbb61b6b7..f4cea04918 100644
--- a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -54,28 +54,28 @@
<type>dimension</type>
<category>Visit Location</category>
<name>Continent</name>
- <segment>continent</segment>
+ <segment>continentCode</segment>
<acceptedValues>eur, asi, amc, amn, ams, afr, ant, oce</acceptedValues>
</row>
<row>
<type>dimension</type>
<category>Visit Location</category>
<name>Country</name>
- <segment>country</segment>
+ <segment>countryCode</segment>
<acceptedValues>de, us, fr, in, es, etc.</acceptedValues>
</row>
<row>
<type>dimension</type>
<category>Visit Location</category>
<name>Latitude</name>
- <segment>lat</segment>
+ <segment>latitude</segment>
<acceptedValues>-33.578, 40.830, etc.&lt;br/&gt;You can select visitors within a lat/long range using &amp;segment=lat&gt;X;lat&lt;Y;long&gt;M;long&lt;N.</acceptedValues>
</row>
<row>
<type>dimension</type>
<category>Visit Location</category>
<name>Longitude</name>
- <segment>long</segment>
+ <segment>longitude</segment>
<acceptedValues>-70.664, 14.326, etc.</acceptedValues>
</row>
<row>
@@ -89,14 +89,14 @@
<type>dimension</type>
<category>Visit Location</category>
<name>Region</name>
- <segment>region</segment>
+ <segment>regionCode</segment>
<acceptedValues>01 02, OR, P8, etc.&lt;br/&gt;eg. region=A1;country=fr</acceptedValues>
</row>
<row>
<type>dimension</type>
<category>Visit</category>
<name>Browser</name>
- <segment>browserName</segment>
+ <segment>browserCode</segment>
<acceptedValues>FF, IE, CH, SF, OP, etc.</acceptedValues>
</row>
<row>
@@ -117,7 +117,7 @@
<type>dimension</type>
<category>Visit</category>
<name>Operating system</name>
- <segment>operatingSystem</segment>
+ <segment>operatingSystemCode</segment>
<acceptedValues>WXP, WI7, MAC, LIN, AND, IPD, etc.</acceptedValues>
</row>
<row>
@@ -352,6 +352,12 @@
<row>
<type>dimension</type>
<category>Actions</category>
+ <name>Keyword (Site Search)</name>
+ <segment>siteSearchKeyword</segment>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Actions</category>
<name>Page Name</name>
<segment>pageTitle</segment>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
index f7288efc16..8ab5189d8e 100644
--- a/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
@@ -69,6 +69,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>6</visitServerHour>
@@ -84,6 +86,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -99,12 +102,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -148,20 +154,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>999</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>999</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -177,20 +183,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>333</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>333</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -206,16 +212,16 @@
<customVariables>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU IN ABANDONED CART TWO</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT TWO LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Category TWO LEFT in cart</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
<icon />
@@ -270,6 +276,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>2</visitServerHour>
@@ -285,6 +293,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -300,12 +309,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
index 105a74d7db..8addc1e69d 100644
--- a/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/Integration/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
@@ -23,20 +23,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>999</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>999</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -52,20 +52,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>333</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>333</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -81,16 +81,16 @@
<customVariables>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU IN ABANDONED CART TWO</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT TWO LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Category TWO LEFT in cart</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
<icon />
@@ -145,6 +145,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>7</visitServerHour>
@@ -160,6 +162,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -175,12 +178,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -224,8 +230,8 @@
<customVariables>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Electronics &amp; Cameras</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>360</timeSpent>
@@ -241,8 +247,8 @@
<customVariables>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Electronics &amp; Cameras</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>360</timeSpent>
@@ -258,20 +264,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>666</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>666</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT name</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Electronics &amp; Cameras</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>720</timeSpent>
@@ -343,20 +349,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>999</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>999</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -372,20 +378,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>333</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>333</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT THREE LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>180</timeSpent>
@@ -401,16 +407,16 @@
<customVariables>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU IN ABANDONED CART TWO</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT TWO LEFT in cart</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Category TWO LEFT in cart</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
<icon />
@@ -465,6 +471,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>2</visitServerHour>
@@ -480,6 +488,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -495,12 +504,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
@@ -538,6 +550,7 @@
<row>
<type>goal</type>
<goalName>title match, triggered ONCE</goalName>
+ <goalId>1</goalId>
<revenue>10</revenue>
<goalPageId>1</goalPageId>
@@ -553,20 +566,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>1111.11111</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>1111.11111</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU2</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU2</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT name</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Electronics &amp; Cameras</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>360</timeSpent>
@@ -582,20 +595,20 @@
<customVariables>
<row>
- <customVariableName2>_pkp</customVariableName2>
- <customVariableValue2>666</customVariableValue2>
+ <customVariablePageName2>_pkp</customVariablePageName2>
+ <customVariablePageValue2>666</customVariablePageValue2>
</row>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT name</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>Electronics &amp; Cameras</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>Electronics &amp; Cameras</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>360</timeSpent>
@@ -611,16 +624,16 @@
<customVariables>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT name</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5 />
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5 />
</row>
</customVariables>
<timeSpent>0</timeSpent>
@@ -636,16 +649,16 @@
<customVariables>
<row>
- <customVariableName3>_pks</customVariableName3>
- <customVariableValue3>SKU VERY nice indeed</customVariableValue3>
+ <customVariablePageName3>_pks</customVariablePageName3>
+ <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3>
</row>
<row>
- <customVariableName4>_pkn</customVariableName4>
- <customVariableValue4>PRODUCT name</customVariableValue4>
+ <customVariablePageName4>_pkn</customVariablePageName4>
+ <customVariablePageValue4>PRODUCT name</customVariablePageValue4>
</row>
<row>
- <customVariableName5>_pkc</customVariableName5>
- <customVariableValue5>[&quot;Multiple Category 1&quot;,&quot;&quot;,0,&quot;Multiple Category 2&quot;,&quot;Electronics &amp; Cameras&quot;,&quot;Multiple Category 4&quot;,&quot;Multiple Category 5&quot;,&quot;SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttt</customVariableValue5>
+ <customVariablePageName5>_pkc</customVariablePageName5>
+ <customVariablePageValue5>[&quot;Multiple Category 1&quot;,&quot;&quot;,0,&quot;Multiple Category 2&quot;,&quot;Electronics &amp; Cameras&quot;,&quot;Multiple Category 4&quot;,&quot;Multiple Category 5&quot;,&quot;SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttt</customVariablePageValue5>
</row>
</customVariables>
<icon />
@@ -666,6 +679,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>0</visitServerHour>
@@ -681,6 +696,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -696,12 +712,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>normal</screenType>
<resolution>1024x768</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/normal.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Actions.getPageUrls_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Actions.getPageUrls_range.xml
index 7622969641..7bc6d955d2 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Actions.getPageUrls_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Actions.getPageUrls_range.xml
@@ -10,7 +10,7 @@
<entry_sum_visit_length>364</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
-
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
<avg_time_on_page>180</avg_time_on_page>
@@ -34,7 +34,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>0</sum_time_spent>
<exit_nb_visits>1</exit_nb_visits>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__CustomVariables.getCustomVariables_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__CustomVariables.getCustomVariables_range.xml
index 31a300ce47..0c9ed434b9 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__CustomVariables.getCustomVariables_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__CustomVariables.getCustomVariables_range.xml
@@ -10,18 +10,18 @@
<goals>
<row idgoal='1'>
<nb_conversions>2</nb_conversions>
-
+ <nb_visits_converted>2</nb_visits_converted>
<revenue>1000</revenue>
</row>
<row idgoal='2'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>3</nb_conversions>
<revenue>1000</revenue>
-
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<subtable>
<row>
<label>LoggedOut</label>
@@ -33,18 +33,18 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>1000</revenue>
</row>
<row idgoal='2'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>2</nb_conversions>
<revenue>1000</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
<row>
<label>LoggedIn</label>
@@ -56,13 +56,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>0</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -76,13 +76,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>1000</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>1000</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<subtable>
<row>
<label>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</label>
@@ -94,13 +94,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>1000</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>1000</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -114,13 +114,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>0</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<subtable>
<row>
<label>Value not defined</label>
@@ -132,13 +132,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>0</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -152,13 +152,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>0</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<subtable>
<row>
<label>abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrst</label>
@@ -170,13 +170,13 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
<nb_conversions>1</nb_conversions>
<revenue>0</revenue>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -188,13 +188,13 @@
<label>looking at &quot;profile page&quot;</label>
<nb_visits>2</nb_visits>
<nb_actions>2</nb_actions>
-
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
</row>
<row>
<label>Loggedin</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -206,7 +206,7 @@
<label>Value not defined</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -218,7 +218,7 @@
<label>FR</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
-
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
index 0ed73f6adb..cf9900ec47 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<nb_conversions>3</nb_conversions>
-
+ <nb_visits_converted>2</nb_visits_converted>
<conversion_rate>66.67</conversion_rate>
<revenue>1000</revenue>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
index b10725ebdd..cba367f548 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml
@@ -39,6 +39,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>10</visitServerHour>
@@ -54,6 +56,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -69,12 +72,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.0</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
<screenType>dual</screenType>
<resolution>1111x222</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/dual.gif</screenTypeIcon>
@@ -112,6 +118,7 @@
<row>
<type>goal</type>
<goalName>triggered js</goalName>
+ <goalId>1</goalId>
<revenue>0</revenue>
<goalPageId />
@@ -143,6 +150,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>9</visitServerHour>
@@ -158,6 +167,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -173,12 +183,15 @@
<referrerSearchEngineUrl />
<referrerSearchEngineIcon />
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.0</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
<screenType>dual</screenType>
<resolution>1111x222</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/dual.gif</screenTypeIcon>
@@ -214,6 +227,16 @@
<actions>3</actions>
<actionDetails>
<row>
+ <type>goal</type>
+ <goalName>second goal</goalName>
+ <goalId>2</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>themes/default/images/goal.png</icon>
+ </row>
+ <row>
<type>action</type>
<url>http://example.org/homepage</url>
<pageTitle>Homepage</pageTitle>
@@ -226,16 +249,8 @@
</row>
<row>
<type>goal</type>
- <goalName>second goal</goalName>
- <revenue>0</revenue>
- <goalPageId />
-
- <url>http://example.org/homepage</url>
- <icon>themes/default/images/goal.png</icon>
- </row>
- <row>
- <type>goal</type>
<goalName>triggered js</goalName>
+ <goalId>1</goalId>
<revenue>0</revenue>
<goalPageId />
@@ -251,16 +266,16 @@
<customVariables>
<row>
- <customVariableName1>Language</customVariableName1>
- <customVariableValue1>FR</customVariableValue1>
+ <customVariablePageName1>Language</customVariablePageName1>
+ <customVariablePageValue1>FR</customVariablePageValue1>
</row>
<row>
- <customVariableName2>SET WITH EMPTY VALUE PAGE SCOPE</customVariableName2>
- <customVariableValue2 />
+ <customVariablePageName2>SET WITH EMPTY VALUE PAGE SCOPE</customVariablePageName2>
+ <customVariablePageValue2 />
</row>
<row>
- <customVariableName4>Status user</customVariableName4>
- <customVariableValue4>looking at &quot;profile page&quot;</customVariableValue4>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>looking at &quot;profile page&quot;</customVariablePageValue4>
</row>
</customVariables>
<icon />
@@ -274,12 +289,12 @@
<customVariables>
<row>
- <customVariableName4>Status user</customVariableName4>
- <customVariableValue4>Loggedin</customVariableValue4>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>Loggedin</customVariablePageValue4>
</row>
<row>
- <customVariableName5>Status user</customVariableName5>
- <customVariableValue5>looking at &quot;profile page&quot;</customVariableValue5>
+ <customVariablePageName5>Status user</customVariablePageName5>
+ <customVariablePageValue5>looking at &quot;profile page&quot;</customVariablePageValue5>
</row>
</customVariables>
<timeSpent>0</timeSpent>
@@ -306,6 +321,8 @@
<siteCurrencySymbol>$</siteCurrencySymbol>
<visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <visitServerHour>8</visitServerHour>
@@ -321,6 +338,7 @@
<countryCode>fr</countryCode>
<countryFlag>plugins/UserCountry/flags/fr.png</countryFlag>
<region />
+ <regionCode />
<city />
<location>France</location>
<latitude />
@@ -336,12 +354,15 @@
<referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
<referrerSearchEngineIcon>plugins/Referers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
<operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemCode>WXP</operatingSystemCode>
<operatingSystemShortName>Win XP</operatingSystemShortName>
<operatingSystemIcon>plugins/UserSettings/images/os/WXP.gif</operatingSystemIcon>
<browserFamily>gecko</browserFamily>
<browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
<browserName>Firefox 3.6</browserName>
<browserIcon>plugins/UserSettings/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
<screenType>dual</screenType>
<resolution>1111x222</resolution>
<screenTypeIcon>plugins/UserSettings/images/screens/dual.gif</screenTypeIcon>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getCampaigns_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getCampaigns_range.xml
index 66afc9b2bb..dbc18457dc 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getCampaigns_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getCampaigns_range.xml
@@ -5,7 +5,7 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>1000</revenue>
</row>
</goals>
@@ -17,7 +17,7 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>1000</revenue>
</row>
</goals>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getKeywords_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getKeywords_range.xml
index f047a77ec5..5777d1404b 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getKeywords_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Referers.getKeywords_range.xml
@@ -7,8 +7,8 @@
<max_actions>3</max_actions>
<sum_visit_length>364</sum_visit_length>
<bounce_count>0</bounce_count>
-
-
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<subtable>
<row>
<label>Google</label>
@@ -17,8 +17,8 @@
<max_actions>3</max_actions>
<sum_visit_length>364</sum_visit_length>
<bounce_count>0</bounce_count>
-
-
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
</row>
</subtable>
</row>
@@ -27,12 +27,12 @@
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
<row idgoal='2'>
<nb_conversions>1</nb_conversions>
-
+ <nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
</row>
</goals>
diff --git a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__VisitsSummary.get_range.xml b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__VisitsSummary.get_range.xml
index be04cb0b68..4a5151e912 100644
--- a/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/Integration/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__VisitsSummary.get_range.xml
@@ -2,7 +2,7 @@
<result>
<nb_visits>3</nb_visits>
<nb_actions>5</nb_actions>
-
+ <nb_visits_converted>2</nb_visits_converted>
<bounce_count>2</bounce_count>
<sum_visit_length>725</sum_visit_length>
<max_actions>3</max_actions>
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index 11e85d9f83..941828d6a7 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -54,6 +54,25 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
}
}
+ public static function loadAllPlugins()
+ {
+ $pluginsManager = Piwik_PluginsManager::getInstance();
+ $pluginsToLoad = Piwik_Config::getInstance()->Plugins['Plugins'];
+ $pluginsManager->loadPlugins($pluginsToLoad);
+ }
+
+ public static function unloadAllPlugins()
+ {
+ try {
+ $plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
+ foreach ($plugins AS $plugin) {
+ $plugin->uninstall();
+ }
+ Piwik_PluginsManager::getInstance()->unloadPlugins();
+ } catch (Exception $e) {
+ }
+ }
+
protected static function setupFixture($fixture)
{
try {
@@ -158,7 +177,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
public static function _tearDownAfterClass($dropDatabase = true)
{
Piwik::$piwikUrlCache = null;
-
+ IntegrationTestCase::unloadAllPlugins();
+/*
$plugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
foreach ($plugins AS $plugin) {
if ($dropDatabase) {
@@ -169,7 +189,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
}
}
}
- Piwik_PluginsManager::getInstance()->unloadPlugins();
+ Piwik_PluginsManager::getInstance()->unloadPlugins();*/
if ($dropDatabase) {
Piwik::dropDatabase();
}
@@ -216,6 +236,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'API',
'ImageGraph',
'Annotations',
+ 'SegmentEditor',
'UserCountry.getLocationFromIP',
);
@@ -432,7 +453,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
* @throws Exception
* @return array of API URLs query strings
*/
- protected function generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi = false, $setDateLastN = false, $language = false, $segment = false, $fileExtension = false)
+ protected function generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi = false, $setDateLastN = false, $language = false, $fileExtension = false)
{
// Get the URLs to query against the API for all functions starting with get*
$skipped = $requestUrls = array();
@@ -629,7 +650,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
$parametersToSet['idGoal'] = $idGoal;
}
- $requestUrls = $this->generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi, $setDateLastN, $language, $segment, $fileExtension);
+ $requestUrls = $this->generateUrlsApi($parametersToSet, $formats, $periods, $supertableApi, $setDateLastN, $language, $fileExtension);
$this->checkEnoughUrlsAreTested($requestUrls);
@@ -702,12 +723,19 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
$expected = $this->removePrettyDateFromXml($expected);
$response = $this->removePrettyDateFromXml($response);
}
+
// avoid build failure when running just before midnight, generating visits in the future
- $expected = $this->removeXmlElement($expected, 'sum_daily_nb_uniq_visitors');
- $response = $this->removeXmlElement($response, 'sum_daily_nb_uniq_visitors');
- $expected = $this->removeXmlElement($expected, 'nb_visits_converted');
- $response = $this->removeXmlElement($response, 'nb_visits_converted');
+ // Note: disabled when 'segment' is a hack:
+ // instead we should only remove these fields for the specific test that was failing.
+ if(strpos($requestUrl, 'segment') === false) {
+ $expected = $this->removeXmlElement($expected, 'sum_daily_nb_uniq_visitors');
+ $response = $this->removeXmlElement($response, 'sum_daily_nb_uniq_visitors');
+ $expected = $this->removeXmlElement($expected, 'nb_visits_converted');
+ $response = $this->removeXmlElement($response, 'nb_visits_converted');
+ }
+ $expected = $this->removeXmlElement($expected, 'visitServerHour');
+ $response = $this->removeXmlElement($response, 'visitServerHour');
if (strpos($requestUrl, 'date=') !== false) {
$regex = "/date=[-0-9,%Ca-z]+/"; // need to remove %2C which is encoded ,
@@ -767,7 +795,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
'serverTimePrettyFirstAction',
'goalTimePretty',
'serverTimePretty',
- 'visitorId'
+ 'visitorId',
+ 'visitServerHour',
);
foreach ($toRemove as $xml) {
$input = $this->removeXmlElement($input, $xml);
@@ -923,7 +952,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
isset($params['format']) ? $params['format'] : 'xml',
isset($params['idSite']) ? $params['idSite'] : false,
isset($params['date']) ? $params['date'] : false,
- isset($params['periods']) ? $params['periods'] : false,
+ isset($params['periods']) ? $params['periods'] : (isset($params['period']) ? $params['period'] : false),
isset($params['setDateLastN']) ? $params['setDateLastN'] : false,
isset($params['language']) ? $params['language'] : false,
isset($params['segment']) ? $params['segment'] : false,
diff --git a/tests/PHPUnit/Plugins/PrivacyManagerTest.php b/tests/PHPUnit/Plugins/PrivacyManagerTest.php
index bee4871960..3f1f2423db 100755
--- a/tests/PHPUnit/Plugins/PrivacyManagerTest.php
+++ b/tests/PHPUnit/Plugins/PrivacyManagerTest.php
@@ -661,11 +661,11 @@ class PrivacyManagerTest extends IntegrationTestCase
}
// add segment for one day
- $archive = Piwik_Archive::build(self::$idSite, 'day', '2012-01-14', 'browserName==FF');
+ $archive = Piwik_Archive::build(self::$idSite, 'day', '2012-01-14', 'browserCode==FF');
$archive->getNumeric('nb_visits', 'nb_hits');
Piwik_VisitorInterest_API::getInstance()->getNumberOfVisitsPerVisitDuration(
- self::$idSite, 'day', '2012-01-14', 'browserName==FF');
+ self::$idSite, 'day', '2012-01-14', 'browserCode==FF');
// add range within January
$rangeEnd = Piwik_Date::factory('2012-01-29');