Skip to content
Extraits de code Groupes Projets
Valider dd69cfa1 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

make sure to return correct ip when all IPs are excluded

parent 2c9b9ee1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -101,7 +101,7 @@ class IP ...@@ -101,7 +101,7 @@ class IP
* *
* @param string $csv Comma separated list of elements. * @param string $csv Comma separated list of elements.
* @param array $excludedIps Optional list of excluded IP addresses (or IP address ranges). * @param array $excludedIps Optional list of excluded IP addresses (or IP address ranges).
* @return string Last (non-excluded) IP address in the list. * @return string Last (non-excluded) IP address in the list or an empty string if all given IPs are excluded.
*/ */
public static function getLastIpFromList($csv, $excludedIps = null) public static function getLastIpFromList($csv, $excludedIps = null)
{ {
...@@ -115,6 +115,8 @@ class IP ...@@ -115,6 +115,8 @@ class IP
return $element; return $element;
} }
} }
return '';
} }
return trim(Common::sanitizeInputValue($csv)); return trim(Common::sanitizeInputValue($csv));
} }
......
...@@ -10,11 +10,12 @@ ...@@ -10,11 +10,12 @@
namespace Piwik\Tests\Unit; namespace Piwik\Tests\Unit;
use Piwik\Common;
use Piwik\Config; use Piwik\Config;
use Piwik\IP; use Piwik\IP;
use Piwik\Tests\Framework\Mock\TestConfig;
/**
* @group Core
*/
class IPTest extends \PHPUnit_Framework_TestCase class IPTest extends \PHPUnit_Framework_TestCase
{ {
/** /**
...@@ -83,7 +84,6 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -83,7 +84,6 @@ class IPTest extends \PHPUnit_Framework_TestCase
/** /**
* @dataProvider getIpFromHeaderTestData * @dataProvider getIpFromHeaderTestData
* @group Core
*/ */
public function testGetIpFromHeader($description, $test) public function testGetIpFromHeader($description, $test)
{ {
...@@ -111,8 +111,6 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -111,8 +111,6 @@ class IPTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* @group Core
*
* @dataProvider getIpTestData * @dataProvider getIpTestData
*/ */
public function testGetNonProxyIpFromHeader($ip) public function testGetNonProxyIpFromHeader($ip)
...@@ -121,8 +119,6 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -121,8 +119,6 @@ class IPTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* @group Core
*
* @dataProvider getIpTestData * @dataProvider getIpTestData
*/ */
public function testGetNonProxyIpFromHeader2($ip) public function testGetNonProxyIpFromHeader2($ip)
...@@ -134,8 +130,6 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -134,8 +130,6 @@ class IPTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* @group Core
*
* @dataProvider getIpTestData * @dataProvider getIpTestData
*/ */
public function testGetNonProxyIpFromHeader3($ip) public function testGetNonProxyIpFromHeader3($ip)
...@@ -154,6 +148,20 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -154,6 +148,20 @@ class IPTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($ip, IP::getNonProxyIpFromHeader('1.1.1.1', array('HTTP_X_FORWARDED_FOR'))); $this->assertEquals($ip, IP::getNonProxyIpFromHeader('1.1.1.1', array('HTTP_X_FORWARDED_FOR')));
} }
/**
* See https://github.com/piwik/piwik/issues/8721
*/
public function testGetNonProxyIpFromHeader4_ShouldReturnDefaultIp_IfDefaultIpIsGivenMultipleTimes()
{
// 1.1.1.1 is a trusted proxy
$_SERVER['REMOTE_ADDR'] = '1.1.1.1';
$_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR'];
$_SERVER['HTTP_CF_CONNECTING_IP'] = $_SERVER['REMOTE_ADDR'];
$this->assertEquals('1.1.1.1', IP::getNonProxyIpFromHeader('1.1.1.1', array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP')));
unset($_SERVER['HTTP_CF_CONNECTING_IP']);
}
/** /**
* Dataprovider for testGetLastIpFromList * Dataprovider for testGetLastIpFromList
*/ */
...@@ -170,8 +178,6 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -170,8 +178,6 @@ class IPTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* @group Core
*
* @dataProvider getLastIpFromListTestData * @dataProvider getLastIpFromListTestData
*/ */
public function testGetLastIpFromList($csv, $expected) public function testGetLastIpFromList($csv, $expected)
...@@ -182,4 +188,10 @@ class IPTest extends \PHPUnit_Framework_TestCase ...@@ -182,4 +188,10 @@ class IPTest extends \PHPUnit_Framework_TestCase
// with excluded Ips // with excluded Ips
$this->assertEquals($expected, IP::getLastIpFromList($csv . ', 10.10.10.10', array('10.10.10.10'))); $this->assertEquals($expected, IP::getLastIpFromList($csv . ', 10.10.10.10', array('10.10.10.10')));
} }
public function testGetLastIpFromList_shouldReturnAnEmptyString_IfMultipleIpsAreGivenButAllAreExcluded()
{
// with excluded Ips
$this->assertEquals('', IP::getLastIpFromList('10.10.10.10, 10.10.10.10', array('10.10.10.10')));
}
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter