diff --git a/src/Symfony/Component/Console/Helper/QuestionHelper.php b/src/Symfony/Component/Console/Helper/QuestionHelper.php index fce51382f2..1d3483a3f1 100644 --- a/src/Symfony/Component/Console/Helper/QuestionHelper.php +++ b/src/Symfony/Component/Console/Helper/QuestionHelper.php @@ -112,7 +112,7 @@ class QuestionHelper extends Helper if (\function_exists('sapi_windows_cp_set')) { // Codepage used by cmd.exe on Windows to allow special characters (éàüñ). - sapi_windows_cp_set(1252); + @sapi_windows_cp_set(1252); } if (null === $autocomplete || !self::$stty || !Terminal::hasSttyAvailable()) { diff --git a/src/Symfony/Component/Console/Input/ArgvInput.php b/src/Symfony/Component/Console/Input/ArgvInput.php index cbd9f41f2f..c93bda5a9b 100644 --- a/src/Symfony/Component/Console/Input/ArgvInput.php +++ b/src/Symfony/Component/Console/Input/ArgvInput.php @@ -45,9 +45,7 @@ class ArgvInput extends Input public function __construct(array $argv = null, InputDefinition $definition = null) { - if (null === $argv) { - $argv = $_SERVER['argv']; - } + $argv = $argv ?? $_SERVER['argv'] ?? []; // strip the application name array_shift($argv); diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php index 76cd0fcf42..4f7b37b1f3 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php @@ -194,10 +194,6 @@ class NativeSessionStorageTest extends TestCase public function testSessionOptions() { - if (\defined('HHVM_VERSION')) { - $this->markTestSkipped('HHVM is not handled in this test case.'); - } - $options = [ 'url_rewriter.tags' => 'a=href', 'cache_expire' => '200', diff --git a/src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php b/src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php index 6a89a156a2..05299679da 100644 --- a/src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php +++ b/src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php @@ -354,6 +354,10 @@ abstract class NumberFormatter { // The original NumberFormatter does not support this format type if (self::TYPE_CURRENCY === $type) { + if (\PHP_VERSION_ID >= 80000) { + throw new \ValueError(sprintf('The format type must be a NumberFormatter::TYPE_* constant (%s given).', $type)); + } + trigger_error(__METHOD__.'(): Unsupported format type '.$type, \E_USER_WARNING); return false; @@ -508,6 +512,10 @@ abstract class NumberFormatter public function parse(string $value, int $type = self::TYPE_DOUBLE, int &$position = 0) { if (self::TYPE_DEFAULT === $type || self::TYPE_CURRENCY === $type) { + if (\PHP_VERSION_ID >= 80000) { + throw new \ValueError(sprintf('The format type must be a NumberFormatter::TYPE_* constant (%d given).', $type)); + } + trigger_error(__METHOD__.'(): Unsupported format type '.$type, \E_USER_WARNING); return false; diff --git a/src/Symfony/Component/Intl/Tests/NumberFormatter/AbstractNumberFormatterTest.php b/src/Symfony/Component/Intl/Tests/NumberFormatter/AbstractNumberFormatterTest.php index 383b680fcb..73c845180a 100644 --- a/src/Symfony/Component/Intl/Tests/NumberFormatter/AbstractNumberFormatterTest.php +++ b/src/Symfony/Component/Intl/Tests/NumberFormatter/AbstractNumberFormatterTest.php @@ -324,7 +324,9 @@ abstract class AbstractNumberFormatterTest extends TestCase */ public function testFormatTypeCurrency($formatter, $value) { - if (method_exists($this, 'expectWarning')) { + if (\PHP_VERSION_ID >= 80000) { + $this->expectException(\ValueError::class); + } elseif (method_exists($this, 'expectWarning')) { $this->expectWarning(); } else { $this->expectException(Warning::class); @@ -338,6 +340,10 @@ abstract class AbstractNumberFormatterTest extends TestCase */ public function testFormatTypeCurrencyReturn($formatter, $value) { + if (\PHP_VERSION_ID >= 80000) { + $this->expectException(\ValueError::class); + } + $this->assertFalse(@$formatter->format($value, NumberFormatter::TYPE_CURRENCY)); } @@ -699,7 +705,9 @@ abstract class AbstractNumberFormatterTest extends TestCase public function testParseTypeDefault() { - if (method_exists($this, 'expectWarning')) { + if (\PHP_VERSION_ID >= 80000) { + $this->expectException(\ValueError::class); + } elseif (method_exists($this, 'expectWarning')) { $this->expectWarning(); } else { $this->expectException(Warning::class); @@ -823,7 +831,9 @@ abstract class AbstractNumberFormatterTest extends TestCase public function testParseTypeCurrency() { - if (method_exists($this, 'expectWarning')) { + if (\PHP_VERSION_ID >= 80000) { + $this->expectException(\ValueError::class); + } elseif (method_exists($this, 'expectWarning')) { $this->expectWarning(); } else { $this->expectException(Warning::class); diff --git a/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php b/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php index d76193aade..77894ebbab 100644 --- a/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php +++ b/src/Symfony/Component/Validator/Constraints/DateTimeValidator.php @@ -53,6 +53,12 @@ class DateTimeValidator extends DateValidator return; } + if ('+' === substr($constraint->format, -1)) { + $errors['warnings'] = array_filter($errors['warnings'], function ($warning) { + return 'Trailing data' !== $warning; + }); + } + foreach ($errors['warnings'] as $warning) { if ('The parsed date was invalid' === $warning) { $this->context->buildViolation($constraint->message) diff --git a/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php index cad1fd7828..ceb3738d28 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/DateTimeValidatorTest.php @@ -114,4 +114,12 @@ class DateTimeValidatorTest extends ConstraintValidatorTestCase ['Y-m-d H:i:s', '2010-01-01 00:00:60', DateTime::INVALID_TIME_ERROR], ]; } + + public function testDateTimeWithTrailingData() + { + $this->validator->validate('1995-05-10 00:00:00', new DateTime([ + 'format' => 'Y-m-d+', + ])); + $this->assertNoViolation(); + } } diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php index 293afd94eb..a4183e21af 100644 --- a/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php +++ b/src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php @@ -84,9 +84,6 @@ EOTXT public function testFromCallableClosureCaster() { - if (\defined('HHVM_VERSION_ID')) { - $this->markTestSkipped('Not for HHVM.'); - } $var = [ (new \ReflectionMethod($this, __FUNCTION__))->getClosure($this), (new \ReflectionMethod(__CLASS__, 'stub'))->getClosure(),