diff --git a/plugins/UserCountry/Columns/Base.php b/plugins/UserCountry/Columns/Base.php index d0a3b58118e9d1aa7687ffdcda76efeabaadee14..d599043aba6156ca9f5b0ca4b693fc061f189f7d 100644 --- a/plugins/UserCountry/Columns/Base.php +++ b/plugins/UserCountry/Columns/Base.php @@ -68,7 +68,7 @@ abstract class Base extends VisitDimension protected function getUserInfo(Request $request, Visitor $visitor) { $ipAddress = $this->getIpAddress($visitor->getVisitorColumn('location_ip'), $request); - $language = $visitor->getVisitorColumn('location_browser_lang'); + $language = $request->getBrowserLanguage(); $userInfo = array('lang' => $language, 'ip' => $ipAddress); diff --git a/tests/PHPUnit/System/TrackerTest.php b/tests/PHPUnit/System/TrackerTest.php index 48d3a4e54d7a018366a4a330f03bed13a78fcfcc..5d38c74d5150b48ed1d968c4271401cdc5ca8282 100644 --- a/tests/PHPUnit/System/TrackerTest.php +++ b/tests/PHPUnit/System/TrackerTest.php @@ -12,6 +12,7 @@ use Piwik\Common; use Piwik\Config; use Piwik\Db; use Piwik\Option; +use Piwik\Plugins\UserCountry\LocationProvider; use Piwik\Scheduler\Schedule\Schedule; use Piwik\Scheduler\Task; use Piwik\Scheduler\Timetable; @@ -147,6 +148,23 @@ class TrackerTest extends IntegrationTestCase $this->assertEquals(0, count($this->getConversionItems())); } + public function test_trackingWithLangParameter_ForwardsLangParameter_ToDefaultLocationProvider() + { + LocationProvider::setCurrentProvider(LocationProvider\DefaultProvider::ID); + + $urlToTest = "?idsite=1&rec=1&action_name=test&lang=fr-be"; + $response = $this->sendTrackingRequestByCurl($urlToTest); + Fixture::checkResponse($response); + + $logVisitTable = Common::prefixTable('log_visit'); + + $visitCount = Db::fetchOne("SELECT COUNT(*) FROM $logVisitTable"); + $this->assertEquals(1, $visitCount); + + $visitCountry = Db::fetchOne("SELECT location_country FROM $logVisitTable"); + $this->assertEquals('be', $visitCountry); + } + public function test_scheduledTasks_CanBeRunThroughTracker_WithoutIncludingOutputInTrackerOutput() { $this->setScheduledTasksToRunInTracker();