Skip to content

Commit 153e71b

Browse files
authored
Merge pull request #96 from dmaicher/fix_issue_95
fix issue with overwriting default config on default profile
2 parents 6642e1c + 948bd5e commit 153e71b

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/DependencyInjection/ExerciseHTMLPurifierExtension.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ public function load(array $configs, ContainerBuilder $container): void
2727

2828
// Set default serializer cache path, while ensuring a default profile is defined
2929
$configs['html_profiles']['default']['config']['Cache.SerializerPath'] = $configs['default_cache_serializer_path'];
30-
$configs['html_profiles']['default']['config']['Cache.SerializerPermissions'] = $configs['default_cache_serializer_permissions'];
30+
31+
if (!isset($configs['html_profiles']['default']['config']['Cache.SerializerPermissions'])) {
32+
$configs['html_profiles']['default']['config']['Cache.SerializerPermissions'] = $configs['default_cache_serializer_permissions'];
33+
}
3134

3235
$serializerPaths = [];
3336
// Drop when require Symfony > 3.4

tests/DependencyInjection/ExerciseHTMLPurifierExtensionTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,30 @@ public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPerm
153153
$this->assertRegistryHasProfiles(['default']);
154154
}
155155

156+
public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPermissionsOnDefaultProfile(): void
157+
{
158+
$config = [
159+
'default_cache_serializer_path' => null,
160+
'html_profiles' => [
161+
'default' => [
162+
'config' => [
163+
'AutoFormat.AutoParagraph' => true,
164+
'Cache.SerializerPermissions' => 511,
165+
],
166+
],
167+
],
168+
];
169+
170+
$this->extension->load([$config], $this->container);
171+
172+
$this->assertDefaultConfigDefinition(array_merge($config['html_profiles']['default']['config'], [
173+
'Cache.SerializerPath' => null,
174+
'Cache.SerializerPermissions' => 511,
175+
]));
176+
$this->assertCacheWarmerSerializerArgs([], ['default']);
177+
$this->assertRegistryHasProfiles(['default']);
178+
}
179+
156180
public function testShouldNotDeepMergeOptions(): void
157181
{
158182
$configs = [

0 commit comments

Comments
 (0)