Skip to content

Commit 4a39eb4

Browse files
committed
[Serializer] Fix ObjectNormalizer that doesn't use default_context config option
1 parent c542a03 commit 4a39eb4

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@
124124
service('property_info')->ignoreOnInvalid(),
125125
service('serializer.mapping.class_discriminator_resolver')->ignoreOnInvalid(),
126126
null,
127-
[],
128127
])
129128
->tag('serializer.normalizer', ['priority' => -1000])
130129

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/SerializerTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,22 @@ public function testDeserializeArrayOfObject()
3232

3333
$this->assertEquals($expected, $result);
3434
}
35+
36+
public function testObjectNormalizerUsesDefaultContextConfigOption()
37+
{
38+
static::bootKernel(['test_case' => 'Serializer']);
39+
40+
$serializer = static::getContainer()->get('serializer.normalizer.object.alias');
41+
42+
$reflectionObject = new \ReflectionObject($serializer);
43+
$property = $reflectionObject->getProperty('defaultContext');
44+
$property->setAccessible(true);
45+
46+
$defaultContext = $property->getValue($serializer);
47+
48+
self::assertArrayHasKey('fake_context_option', $defaultContext);
49+
self::assertEquals('foo', $defaultContext['fake_context_option']);
50+
}
3551
}
3652

3753
class Foo

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/Serializer/config.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,16 @@ framework:
66
enabled: true
77
default_context:
88
enable_max_depth: true
9+
# The option below is used in \Symfony\Bundle\FrameworkBundle\Tests\Functional\SerializerTest::testObjectNormalizerUsesDefaultContextConfigOption
10+
# to assert that the `default_context` is taken into account in serializers
11+
fake_context_option: foo
912
property_info: { enabled: true }
1013

1114
services:
1215
serializer.alias:
1316
alias: serializer
1417
public: true
18+
19+
serializer.normalizer.object.alias:
20+
alias: serializer.normalizer.object
21+
public: true

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy