Skip to content

Commit

Permalink
Default Cache.SerializerPermissions support
Browse files Browse the repository at this point in the history
  • Loading branch information
OxCom committed Jul 1, 2022
1 parent 15721f4 commit 9712ab7
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ had specified the following configuration:

exercise_html_purifier:
default_cache_serializer_path: '%kernel.cache_dir%/htmlpurifier'
# 493 int => ocl "0755"
default_cache_serializer_permissions: 493
```

The `default` profile is special, it is *always* defined and its configuration
Expand Down
4 changes: 4 additions & 0 deletions src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ public function getConfigTreeBuilder(): TreeBuilder
->scalarNode('default_cache_serializer_path')
->defaultValue('%kernel.cache_dir%/htmlpurifier')
->end()
->scalarNode('default_cache_serializer_permissions')
// (format "%#o" 493) "0755"
->defaultValue(493)
->end()
->arrayNode('html_profiles')
->useAttributeAsKey('name')
->normalizeKeys(false)
Expand Down
1 change: 1 addition & 0 deletions src/DependencyInjection/ExerciseHTMLPurifierExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public function load(array $configs, ContainerBuilder $container): void

// Set default serializer cache path, while ensuring a default profile is defined
$configs['html_profiles']['default']['config']['Cache.SerializerPath'] = $configs['default_cache_serializer_path'];
$configs['html_profiles']['default']['config']['Cache.SerializerPermissions'] = $configs['default_cache_serializer_permissions'];

$serializerPaths = [];
// Drop when require Symfony > 3.4
Expand Down
27 changes: 27 additions & 0 deletions tests/DependencyInjection/ExerciseHTMLPurifierExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
class ExerciseHTMLPurifierExtensionTest extends TestCase
{
private const DEFAULT_CACHE_PATH = '%kernel.cache_dir%/htmlpurifier';
private const DEFAULT_CACHE_PERMISSIONS = 493;

/**
* @var ContainerBuilder|null
Expand All @@ -38,6 +39,7 @@ public function setUp(): void
$this->extension = new ExerciseHTMLPurifierExtension();
$this->defaultConfig = [
'Cache.SerializerPath' => self::DEFAULT_CACHE_PATH,
'Cache.SerializerPermissions' => self::DEFAULT_CACHE_PERMISSIONS,
];
}

Expand Down Expand Up @@ -121,6 +123,31 @@ public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPath

$this->assertDefaultConfigDefinition(array_merge($config['html_profiles']['default']['config'], [
'Cache.SerializerPath' => null,
'Cache.SerializerPermissions' => 493,
]));
$this->assertCacheWarmerSerializerArgs([], ['default']);
$this->assertRegistryHasProfiles(['default']);
}

public function testShouldAllowOverridingDefaultConfigurationCacheSerializerPermissions(): void
{
$config = [
'default_cache_serializer_path' => null,
'default_cache_serializer_permissions' => 511,
'html_profiles' => [
'default' => [
'config' => [
'AutoFormat.AutoParagraph' => true,
],
],
],
];

$this->extension->load([$config], $this->container);

$this->assertDefaultConfigDefinition(array_merge($config['html_profiles']['default']['config'], [
'Cache.SerializerPath' => null,
'Cache.SerializerPermissions' => 511,
]));
$this->assertCacheWarmerSerializerArgs([], ['default']);
$this->assertRegistryHasProfiles(['default']);
Expand Down

0 comments on commit 9712ab7

Please sign in to comment.