Merge branch '2.8' into 3.3
* 2.8: [Validator] added magic method __isset() to File Constraint class [DI] Fix possible incorrect php-code when dumped strings contains newlines [Translation] minor: remove unused variable in test never match invalid IP addresses
This commit is contained in:
commit
17b48edebc
@ -1724,7 +1724,13 @@ EOF;
|
|||||||
|
|
||||||
private function doExport($value)
|
private function doExport($value)
|
||||||
{
|
{
|
||||||
|
if (is_string($value) && false !== strpos($value, "\n")) {
|
||||||
|
$cleanParts = explode("\n", $value);
|
||||||
|
$cleanParts = array_map(function ($part) { return var_export($part, true); }, $cleanParts);
|
||||||
|
$export = implode('."\n".', $cleanParts);
|
||||||
|
} else {
|
||||||
$export = var_export($value, true);
|
$export = var_export($value, true);
|
||||||
|
}
|
||||||
|
|
||||||
if ("'" === $export[0] && $export !== $resolvedExport = $this->container->resolveEnvPlaceholders($export, "'.\$this->getEnv('%s').'")) {
|
if ("'" === $export[0] && $export !== $resolvedExport = $this->container->resolveEnvPlaceholders($export, "'.\$this->getEnv('%s').'")) {
|
||||||
$export = $resolvedExport;
|
$export = $resolvedExport;
|
||||||
|
@ -68,6 +68,7 @@ class PhpDumperTest extends TestCase
|
|||||||
'optimize concatenation with empty string' => 'string1%empty_value%string2',
|
'optimize concatenation with empty string' => 'string1%empty_value%string2',
|
||||||
'optimize concatenation from the start' => '%empty_value%start',
|
'optimize concatenation from the start' => '%empty_value%start',
|
||||||
'optimize concatenation at the end' => 'end%empty_value%',
|
'optimize concatenation at the end' => 'end%empty_value%',
|
||||||
|
'new line' => "string with \nnew line",
|
||||||
));
|
));
|
||||||
|
|
||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
|
@ -64,7 +64,7 @@ class ProjectServiceContainer extends Container
|
|||||||
*/
|
*/
|
||||||
protected function getTestService()
|
protected function getTestService()
|
||||||
{
|
{
|
||||||
return $this->services['test'] = new \stdClass(array('only dot' => '.', 'concatenation as value' => '.\'\'.', 'concatenation from the start value' => '\'\'.', '.' => 'dot as a key', '.\'\'.' => 'concatenation as a key', '\'\'.' => 'concatenation from the start key', 'optimize concatenation' => 'string1-string2', 'optimize concatenation with empty string' => 'string1string2', 'optimize concatenation from the start' => 'start', 'optimize concatenation at the end' => 'end'));
|
return $this->services['test'] = new \stdClass(array('only dot' => '.', 'concatenation as value' => '.\'\'.', 'concatenation from the start value' => '\'\'.', '.' => 'dot as a key', '.\'\'.' => 'concatenation as a key', '\'\'.' => 'concatenation from the start key', 'optimize concatenation' => 'string1-string2', 'optimize concatenation with empty string' => 'string1string2', 'optimize concatenation from the start' => 'start', 'optimize concatenation at the end' => 'end', 'new line' => 'string with '."\n".'new line'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,6 +87,10 @@ class IpUtils
|
|||||||
$netmask = 32;
|
$netmask = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (false === ip2long($address)) {
|
||||||
|
return self::$checkedIps[$cacheKey] = false;
|
||||||
|
}
|
||||||
|
|
||||||
return self::$checkedIps[$cacheKey] = 0 === substr_compare(sprintf('%032b', ip2long($requestIp)), sprintf('%032b', ip2long($address)), 0, $netmask);
|
return self::$checkedIps[$cacheKey] = 0 === substr_compare(sprintf('%032b', ip2long($requestIp)), sprintf('%032b', ip2long($address)), 0, $netmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,4 +82,21 @@ class IpUtilsTest extends TestCase
|
|||||||
|
|
||||||
IpUtils::checkIp('2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65');
|
IpUtils::checkIp('2a01:198:603:0:396e:4789:8e99:890f', '2a01:198:603:0::/65');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider invalidIpAddressData
|
||||||
|
*/
|
||||||
|
public function testInvalidIpAddressesDoNotMatch($requestIp, $proxyIp)
|
||||||
|
{
|
||||||
|
$this->assertFalse(IpUtils::checkIp4($requestIp, $proxyIp));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function invalidIpAddressData()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'invalid proxy wildcard' => array('192.168.20.13', '*'),
|
||||||
|
'invalid proxy missing netmask' => array('192.168.20.13', '0.0.0.0'),
|
||||||
|
'invalid request IP with invalid proxy wildcard' => array('0.0.0.0', '*'),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ class TranslatorTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function testConstructorInvalidLocale($locale)
|
public function testConstructorInvalidLocale($locale)
|
||||||
{
|
{
|
||||||
$translator = new Translator($locale, new MessageSelector());
|
new Translator($locale, new MessageSelector());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,6 +88,15 @@ class File extends Constraint
|
|||||||
return parent::__get($option);
|
return parent::__get($option);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __isset($option)
|
||||||
|
{
|
||||||
|
if ('maxSize' === $option) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent::__isset($option);
|
||||||
|
}
|
||||||
|
|
||||||
private function normalizeBinaryFormat($maxSize)
|
private function normalizeBinaryFormat($maxSize)
|
||||||
{
|
{
|
||||||
$factors = array(
|
$factors = array(
|
||||||
|
Reference in New Issue
Block a user