8000 Merge branch '7.0' into 7.1 · symfony/symfony@e6ae9d0 · GitHub
[go: up one dir, main page]

Skip to content

Commit e6ae9d0

Browse files
committed
Merge branch '7.0' into 7.1
* 7.0: fix tests Drop test case Catch TableNotFoundException in MySQL delete [DoctrineBridge] Fix deprecation warning with ORM 3 when guessing field lengths Throw TransformationFailedException when there is a null bytes injection [Cache][Lock] Identify missing table in pgsql correctly and address failing integration tests [Mailer] [Brevo] Check that tags is present in payload before calling setTags [Serializer] Fix object normalizer when properties has the same name as their accessor
2 parents a2fc092 + 78adb40 commit e6ae9d0

File tree

18 files changed

+296
-37
lines changed

18 files changed

+296
-37
lines changed

src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Doctrine\DBAL\Types\Types;
1515
use Doctrine\ORM\Mapping\ClassMetadata;
1616
use Doctrine\ORM\Mapping\ClassMetadataInfo;
17+
use Doctrine\ORM\Mapping\FieldMapping;
1718
use Doctrine\ORM\Mapping\JoinColumnMapping;
1819
use Doctrine\ORM\Mapping\MappingException as LegacyMappingException;
1920
use Doctrine\Persistence\ManagerRegistry;
@@ -129,8 +130,10 @@ public function guessMaxLength(string $class, string $property): ?ValueGuess
129130
if ($ret && isset($ret[0]->fieldMappings[$property]) && !$ret[0]->hasAssociation($property)) {
130131
$mapping = $ret[0]->getFieldMapping($property);
131132

132-
if (isset($mapping['length'])) {
133-
return new ValueGuess($mapping['length'], Guess::HIGH_CONFIDENCE);
133+
$length = $mapping instanceof FieldMapping ? $mapping->length : ($mapping['length'] ?? null);
134+
135+
if (null !== $length) {
136+
return new ValueGuess($length, Guess::HIGH_CONFIDENCE);
134137
}
135138

136139
if (\in_array($ret[0]->getTypeOfField($property), [Types::DECIMAL, Types::FLOAT])) {

src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypeTest.php

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,19 +1314,6 @@ public function testPassIdAndNameToView()
13141314
$this->assertEquals('name', $view->vars['full_name']);
13151315
}
13161316

1317-
public function testStripLeadingUnderscoresAndDigitsFromId()
1318-
{
1319-
$view = $this->factory->createNamed('_09name', static::TESTED_TYPE, null, [
1320-
'em' => 'default',
1321-
'class' => self::SINGLE_IDENT_CLASS,
1322-
])
1323-
->createView();
1324-
1325-
$this->assertEquals('name', $view->vars['id']);
1326-
$this->assertEquals('_09name', $view->vars['name']);
1327-
$this->assertEquals('_09name', $view->vars['full_name']);
1328-
}
1329-
13301317
public function testPassIdAndNameToViewWithParent()
13311318
{
13321319
$view = $this->factory->createNamedBuilder('parent', FormTypeTest::TESTED_TYPE)

src/Symfony/Bridge/Doctrine/composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"symfony/dependency-injection": "^6.4|^7.0",
3030
"symfony/doctrine-messenger": "^6.4|^7.0",
3131
"symfony/expression-language": "^6.4|^7.0",
32-
"symfony/form": "^6.4|^7.0",
32+
"symfony/form": "^6.4.6|^7.0",
3333
"symfony/http-kernel": "^6.4|^7.0",
3434
"symfony/lock": "^6.4|^7.0",
3535
"symfony/messenger": "^6.4|^7.0",
@@ -53,7 +53,7 @@
5353
"doctrine/orm": "<2.15",
5454
"symfony/cache": "<6.4",
5555
"symfony/dependency-injection": "<6.4",
56-
"symfony/form": "<6.4",
56+
"symfony/form": "<6.4.6",
5757
"symfony/http-foundation": "<6.4",
5858
"symfony/http-kernel": "<6.4",
5959
"symfony/lock": "<6.4",

src/Symfony/Component/Cache/Adapter/PdoAdapter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,10 +384,10 @@ private function getServerVersion(): string
384384
private function isTableMissing(\PDOException $exception): bool
385385
{
386386
$driver = $this->getDriver();
387-
$code = $exception->errorInfo ? $exception->errorInfo[1] : $exception->getCode();
387+< 6377 /span>
[$sqlState, $code] = $exception->errorInfo ?? [null, $exception->getCode()];
388388

389389
return match ($driver) {
390-
'pgsql' => '42P01' === $code,
390+
'pgsql' => '42P01' === $sqlState,
391391
'sqlite' => str_contains($exception->getMessage(), 'no such table:'),
392392
'oci' => 942 === $code,
393393
'sqlsrv' => 208 === $code,

src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ public function reverseTransform(mixed $value): ?\DateTime
109109
throw new TransformationFailedException('Expected a string.');
110110
}
111111

112+
if (str_contains($value, "\0")) {
113+
throw new TransformationFailedException('Null bytes not allowed');
114+
}
115+
112116
$outputTz = new \DateTimeZone($this->outputTimezone);
113117
$dateTime = \DateTime::createFromFormat($this->parseFormat, $value, $outputTz);
114118

src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateTimeToStringTransformerTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,19 @@ public function testReverseTransformEmpty()
133133
$this->assertNull($reverseTransformer->reverseTransform(''));
134134
}
135135

136+
public function testReverseTransformWithNullBytes()
137+
{
138+
$transformer = new DateTimeToStringTransformer();
139+
140+
$nullByte = \chr(0);
141+
$value = '2024-03-15 21:11:00'.$nullByte;
142+
143+
$this->expectException(TransformationFailedException::class);
144+
$this->expectExceptionMessage('Null bytes not allowed');
145+
146+
$transformer->reverseTransform($value);
147+
}
148+
136149
public function testReverseTransformWithDifferentTimezones()
137150
{
138151
$reverseTransformer = new DateTimeToStringTransformer('America/New_York', 'Asia/Hong_Kong', 'Y-m-d H:i:s');

src/Symfony/Component/Form/Tests/Extension/Core/Type/BaseTypeTestCase.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,6 @@ public function testPassIdAndNameToView()
4040
$this->assertEquals('name', $view->vars['full_name']);
4141
}
4242

43-
public function testStripLeadingUnderscoresAndDigitsFromId()
44-
{
45-
$view = $this->factory->createNamed('_09name', $this->getTestedType(), null, $this->getTestOptions())
46-
->createView();
47-
48-
$this->assertEquals('name', $view->vars['id']);
49-
$this->assertEquals('_09name', $view->vars['name']);
50-
$this->assertEquals('_09name', $view->vars['full_name']);
51-
}
52-
5343
public function testPassIdAndNameToViewWithParent()
5444
{
5545
$view = $this->factory->createNamedBuilder('parent', FormTypeTest::TESTED_TYPE)

src/Symfony/Component/Lock/Store/PdoStore.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,10 @@ private function getCurrentTimestampStatement(): string
232232
private function isTableMissing(\PDOException $exception): bool
233233
{
234234
$driver = $this->getDriver();
235-
$code = $exception->errorInfo ? $exception->errorInfo[1] : $exception->getCode();
235+
[$sqlState, $code] = $exception->errorInfo ?? [null, $exception->getCode()];
236236

237237
return match ($driver) {
238-
'pgsql' => '42P01' === $code,
238+
'pgsql' => '42P01' === $sqlState,
239239
'sqlite' => str_contains($exception->getMessage(), 'no such table:'),
240240
'oci' => 942 === $code,
241241
'sqlsrv' => 208 === $code,

src/Symfony/Component/Mailer/Bridge/Brevo/RemoteEvent/BrevoPayloadConverter.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ public function convert(array $payload): AbstractMailerEvent
6060

6161
$event->setDate($date);
6262
$event->setRecipientEmail($payload['email']);
63-
$event->setTags($payload['tags']);
63+
64+
if (isset($payload['tags'])) {
65+
$event->setTags($payload['tags']);
66+
}
6467

6568
return $event;
6669
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"id": 814119,
3+
"email": "example@gmail.com",
4+
"message-id": "<202305311313.92192897094@smtp-relay.mailin.fr>",
5+
"date": "2023-05-31 15:13:08",
6+
"event": "request",
7+
"subject": "Subject Line",
8+
"sending_ip": "127.0.0.1",
9+
"ts_event": 1685538788,
10+
"ts": 1685538788,
11+
"reason": "sent",
12+
"ts_epoch": 1685538788179
13+
}

0 commit comments

Comments
 (0)
0