From c31670866972e0889ec622d726953476a5201502 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 26 Feb 2021 13:01:23 +0100 Subject: [PATCH 1/3] zero parts can be omitted in date interval input --- .../Serializer/Normalizer/DateIntervalNormalizer.php | 2 +- .../Tests/Normalizer/DateIntervalNormalizerTest.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php index 21abe49bb1..74d43a74bd 100644 --- a/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/DateIntervalNormalizer.php @@ -105,7 +105,7 @@ class DateIntervalNormalizer implements NormalizerInterface, DenormalizerInterfa $dateIntervalFormat = substr($dateIntervalFormat, 2); break; } - $valuePattern = '/^'.$signPattern.preg_replace('/%([yYmMdDhHiIsSwW])(\w)/', '(?P<$1>\d+)$2', $dateIntervalFormat).'$/'; + $valuePattern = '/^'.$signPattern.preg_replace('/%([yYmMdDhHiIsSwW])(\w)/', '(?:(?P<$1>\d+)$2)?', preg_replace('/(T.*)$/', '($1)?', $dateIntervalFormat)).'$/'; if (!preg_match($valuePattern, $data)) { throw new UnexpectedValueException(sprintf('Value "%s" contains intervals not accepted by format "%s".', $data, $dateIntervalFormat)); } diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/DateIntervalNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/DateIntervalNormalizerTest.php index beb1288e44..6badbb07dd 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/DateIntervalNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/DateIntervalNormalizerTest.php @@ -124,6 +124,14 @@ class DateIntervalNormalizerTest extends TestCase $this->doTestDenormalizeUsingFormatPassedInConstructor($format, $input, $output, true); } + public function testDenormalizeIntervalsWithOmittedPartsBeingZero() + { + $normalizer = new DateIntervalNormalizer(); + + $this->assertDateIntervalEquals($this->getInterval('P3Y2M4DT0H0M0S'), $normalizer->denormalize('P3Y2M4D', \DateInterval::class)); + $this->assertDateIntervalEquals($this->getInterval('P0Y0M0DT12H34M0S'), $normalizer->denormalize('PT12H34M', \DateInterval::class)); + } + private function doTestDenormalizeUsingFormatPassedInConstructor($format, $input, $output, bool $legacy = false) { $normalizer = $legacy ? new DateIntervalNormalizer($format) : new DateIntervalNormalizer([DateIntervalNormalizer::FORMAT_KEY => $format]); From 3c47e03e92177ff3c889fefeeaf68a1b102b438d Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 2 Mar 2021 10:27:35 +0100 Subject: [PATCH 2/3] Specify that we run CI on Ubuntu-20.04 --- .github/workflows/intl-data-tests.yml | 2 +- .github/workflows/phpunit-bridge.yml | 2 +- .github/workflows/tests.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/intl-data-tests.yml b/.github/workflows/intl-data-tests.yml index 0925858432..0ca0322281 100644 --- a/.github/workflows/intl-data-tests.yml +++ b/.github/workflows/intl-data-tests.yml @@ -15,7 +15,7 @@ defaults: jobs: tests: name: Tests (intl-data) - runs-on: ubuntu-latest + runs-on: Ubuntu-20.04 steps: - name: Checkout diff --git a/.github/workflows/phpunit-bridge.yml b/.github/workflows/phpunit-bridge.yml index 8fa97980ff..b503ce48d8 100644 --- a/.github/workflows/phpunit-bridge.yml +++ b/.github/workflows/phpunit-bridge.yml @@ -15,7 +15,7 @@ defaults: jobs: lint: name: Lint - runs-on: ubuntu-latest + runs-on: Ubuntu-20.04 steps: - name: Checkout diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5e187c78f7..603c05bff8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,7 @@ jobs: integration: name: Integration - runs-on: ubuntu-latest + runs-on: Ubuntu-20.04 strategy: matrix: From bd6930effe9bdf4674cd1a00dc677bd585537efa Mon Sep 17 00:00:00 2001 From: Nyholm Date: Tue, 2 Mar 2021 12:28:15 +0100 Subject: [PATCH 3/3] [Messenger][SQS] Document missing option --- .../Messenger/Bridge/AmazonSqs/Transport/Connection.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php index 68e41b5eff..8925572459 100644 --- a/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php +++ b/src/Symfony/Component/Messenger/Bridge/AmazonSqs/Transport/Connection.php @@ -94,6 +94,7 @@ class Connection * * wait_time: long polling duration in seconds (Default: 20) * * poll_timeout: amount of seconds the transport should wait for new message * * visibility_timeout: amount of seconds the message won't be visible + * * sslmode: Can be "disable" to use http for a custom endpoint * * auto_setup: Whether the queue should be created automatically during send / get (Default: true) */ public static function fromDsn(string $dsn, array $options = [], HttpClientInterface $client = null): self