8000 bug #51114 [Serializer] Fix denormalizing abstract part headers in Mi… · fancyweb/symfony@8b2627b · GitHub
[go: up one dir, main page]

Skip to content

Commit 8b2627b

Browse files
bug symfony#51114 [Serializer] Fix denormalizing abstract part headers in MimeMessageNormalizer (fancyweb)
This PR was merged into the 5.4 branch. Discussion ---------- [Serializer] Fix denormalizing abstract part headers in MimeMessageNormalizer | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - `AbstractPart::$headers` property is not denormalized to the `Headers` object but remains an array. Commits ------- 3784115 [Serializer] Fix denormalizing abstract part headers in MimeMessageNormalizer
2 parents dee4eed + 3784115 commit 8b2627b

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

src/Symfony/Component/Mime/Tests/MessageTest.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public function testSymfonySerialize()
168168
),
169169
new DataPart('text data', 'text.txt')
170170
);
171+
$body->getHeaders()->addHeader('foo', 'bar');
171172
$e = new Message((new Headers())->addMailboxListHeader('To', ['you@example.com']), $body);
172173
$expected = clone $e;
173174

@@ -232,7 +233,17 @@ public function testSymfonySerialize()
232233
"class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\DataPart"
233234
}
234235
],
235-
"headers": [],
236+
"headers": {
237+
"foo": [
238+
{
239+
"value": "bar",
240+
"name": "foo",
241+
"lineLength": 76,
242+
"lang": null,
243+
"charset": "utf-8"
244+
}
245+
]
246+
},
236247
"class": "Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\MixedPart"
237248
},
238249
"message": null
@@ -252,7 +263,7 @@ public function testSymfonySerialize()
252263
$this->assertSame($expectedJson, json_encode(json_decode($serialized), \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES));
253264

254265
$n = $serializer->deserialize($serialized, Message::class, 'json');
255-
$this->assertEquals($expected->getHeaders(), $n->getHeaders());
266+
$this->assertEquals($expected, $n);
256267

257268
$serialized = $serializer->serialize($e, 'json');
258269
$this->assertSame($expectedJson, json_encode(json_decode($serialized), \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES));

src/Symfony/Component/Mime/composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
2929
"symfony/property-access": "^4.4|^5.1|^6.0",
3030
"symfony/property-info": "^4.4|^5.1|^6.0",
31-
"symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
31+
"symfony/serializer": "^5.4.26|^6.2.13"
3232
},
3333
"conflict": {
3434
"egulias/email-validator": "~3.0.0",
3535
"phpdocumentor/reflection-docblock": "<3.2.2",
3636
"phpdocumentor/type-resolver": "<1.4.0",
3737
"symfony/mailer": "<4.4",
38-
"symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
38+
"symfony/serializer": "<5.4.26|>=6.2,<6.2.13"
3939
},
4040
"autoload": {
4141
"psr-4": { "Symfony\\Component\\Mime\\": "" },

src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public function denormalize($data, string $type, string $format = null, array $c
9393
if (AbstractPart::class === $type) {
9494
$type = $data['class'];
9595
unset($data['class']);
96+
$data['headers'] = $this->serializer->denormalize($data['headers'], Headers::class, $format, $context);
9697
}
9798

9899
return $this->normalizer->denormalize($data, $type, $format, $context);

0 commit comments

Comments
 (0)
0