Skip to content

Commit 0f6d7c8

Browse files
plfortfabpot
authored andcommitted
[HtmlSanitizer] Fix default configuration
1 parent ad527ca commit 0f6d7c8

File tree

8 files changed

+53
-12
lines changed

8 files changed

+53
-12
lines changed

Resources/config/html_sanitizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
return static function (ContainerConfigurator $container) {
1919
$container->services()
2020
->set('html_sanitizer.config.default', HtmlSanitizerConfig::class)
21-
->call('allowSafeElements')
21+
->call('allowSafeElements', [], true)
2222

2323
->set('html_sanitizer.sanitizer.default', HtmlSanitizer::class)
2424
->args([service('html_sanitizer.config.default')])

Tests/DependencyInjection/Fixtures/php/html_sanitizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
'http_method_override' => false,
55
'html_sanitizer' => [
66
'sanitizers' => [
7-
'default' => [
7+
'custom' => [
88
'allow_safe_elements' => true,
99
'allow_static_elements' => true,
1010
'allow_elements' => [
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', [
4+
'http_method_override' => false,
5+
'html_sanitizer' => null]);

Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<config xmlns="http://symfony.com/schema/dic/symfony" http-method-override="false">
99
<html-sanitizer>
10-
<sanitizer name="default"
10+
<sanitizer name="custom"
1111
allow-safe-elements="true"
1212
allow-static-elements="true"
1313
force-https-urls="true"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<config xmlns="http://symfony.com/schema/dic/symfony" http-method-override="false">
9+
<html-sanitizer />
10+
</config>
11+
</container>

Tests/DependencyInjection/Fixtures/yml/html_sanitizer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ framework:
22
http_method_override: false
33
html_sanitizer:
44
sanitizers:
5-
default:
5+
custom:
66
allow_safe_elements: true
77
allow_static_elements: true
88
allow_elements:
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
framework:
2+
http_method_override: false
3+
html_sanitizer: ~

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,16 +2050,14 @@ public function testHtmlSanitizer()
20502050
$container = $this->createContainerFromFile('html_sanitizer');
20512051

20522052
// html_sanitizer service
2053-
$this->assertTrue($container->hasAlias('html_sanitizer'), '->registerHtmlSanitizerConfiguration() loads html_sanitizer.php');
2054-
$this->assertSame('html_sanitizer.sanitizer.default', (string) $container->getAlias('html_sanitizer'));
2055-
$this->assertSame(HtmlSanitizer::class, $container->getDefinition('html_sanitizer.sanitizer.default')->getClass());
2056-
$this->assertCount(1, $args = $container->getDefinition('html_sanitizer.sanitizer.default')->getArguments());
2057-
$this->assertSame('html_sanitizer.config.default', (string) $args[0]);
2053+
$this->assertSame(HtmlSanitizer::class, $container->getDefinition('html_sanitizer.sanitizer.custom')->getClass());
2054+
$this->assertCount(1, $args = $container->getDefinition('html_sanitizer.sanitizer.custom')->getArguments());
2055+
$this->assertSame('html_sanitizer.config.custom', (string) $args[0]);
20582056

20592057
// config
2060-
$this->assertTrue($container->hasDefinition('html_sanitizer.config.default'), '->registerHtmlSanitizerConfiguration() loads custom sanitizer');
2061-
$this->assertSame(HtmlSanitizerConfig::class, $container->getDefinition('html_sanitizer.config.default')->getClass());
2062-
$this->assertCount(23, $calls = $container->getDefinition('html_sanitizer.config.default')->getMethodCalls());
2058+
$this->assertTrue($container->hasDefinition('html_sanitizer.config.custom'), '->registerHtmlSanitizerConfiguration() loads custom sanitizer');
2059+
$this->assertSame(HtmlSanitizerConfig::class, $container->getDefinition('html_sanitizer.config.custom')->getClass());
2060+
$this->assertCount(23, $calls = $container->getDefinition('html_sanitizer.config.custom')->getMethodCalls());
20632061
$this->assertSame(
20642062
[
20652063
['allowSafeElements', [], true],
@@ -2103,6 +2101,30 @@ static function ($call) {
21032101
// Named alias
21042102
$this->assertSame('html_sanitizer.sanitizer.all.sanitizer', (string) $container->getAlias(HtmlSanitizerInterface::class.' $allSanitizer'));
21052103
$this->assertFalse($container->hasAlias(HtmlSanitizerInterface::class.' $default'));
2104+
}
2105+
2106+
public function testHtmlSanitizerDefaultConfig()
2107+
{
2108+
$container = $this->createContainerFromFile('html_sanitizer_default_config');
2109+
2110+
// html_sanitizer service
2111+
$this->assertTrue($container->hasAlias('html_sanitizer'), '->registerHtmlSanitizerConfiguration() loads default_config');
2112+
$this->assertSame('html_sanitizer.sanitizer.default', (string) $container->getAlias('html_sanitizer'));
2113+
$this->assertSame(HtmlSanitizer::class, $container->getDefinition('html_sanitizer.sanitizer.default')->getClass());
2114+
$this->assertCount(1, $args = $container->getDefinition('html_sanitizer.sanitizer.default')->getArguments());
2115+
$this->assertSame('html_sanitizer.config.default', (string) $args[0]);
2116+
2117+
// config
2118+
$this->assertTrue($container->hasDefinition('html_sanitizer.config.default'), '->registerHtmlSanitizerConfiguration() loads custom sanitizer');
2119+
$this->assertSame(HtmlSanitizerConfig::class, $container->getDefinition('html_sanitizer.config.default')->getClass());
2120+
$this->assertCount(1, $calls = $container->getDefinition('html_sanitizer.config.default')->getMethodCalls());
2121+
$this->assertSame(
2122+
['allowSafeElements', [], true],
2123+
$calls[0]
2124+
);
2125+
2126+
// Named alias
2127+
$this->assertFalse($container->hasAlias(HtmlSanitizerInterface::class.' $default'));
21062128

21072129
// Default alias
21082130
$this->assertSame('html_sanitizer', (string) $container->getAlias(HtmlSanitizerInterface::class));

0 commit comments

Comments
 (0)