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:
authormattab <matthieu.aubry@gmail.com>2013-04-20 13:02:35 +0400
committermattab <matthieu.aubry@gmail.com>2013-04-20 13:02:36 +0400
commit35f975accb45152dd669e0009237eed3dc6ada2b (patch)
tree8a0a82519a8a3502ae18c31ae3db7bf2d148af55
parent6575c1f85e6d4276cbce2d8a22535c6d499cb8ce (diff)
Fixes #3904:
* new segment 'siteSearchKeyword' Fixes #3903, #3905: * adding few fields in the Live API output to accomodate getSuggestedValuesForSegment * renamed other fields for consistency with segment names Fixes #3906: * new API: getSuggestedValuesForSegment which returns top suggested values for a particular segment. It uses the Live.getLastVisitsDetails API to fetch the most recently used values, and will show the most used values first * Adding tests for everything. The test case actually generates data for all segments so that VisitsSummary.get returns some data for each of the 47 segments being tested returns some data. How it works: * generate extended data in fixture * Tests (1) call getSuggestedValuesForSegment for each segment, check there is some data returned for each segment * get the first suggested value from the list, * Tests (2) call VisitsSummary.get with this segment value, eg. countryCode==ru. * I worked this way for all 47 segments until all tests had some data ==> now we know that all segments have been tested and that the auto suggest works for all segments. TDD FTW!
-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');