Fix the validation of form resources to register the default theme

This commit is contained in:
Christophe Coevoet 2015-08-02 01:30:03 +02:00
parent 0df822d466
commit ea92610a85
4 changed files with 45 additions and 2 deletions

View File

@ -260,7 +260,7 @@ class Configuration implements ConfigurationInterface
->addDefaultChildrenIfNoneSet() ->addDefaultChildrenIfNoneSet()
->prototype('scalar')->defaultValue('FrameworkBundle:Form')->end() ->prototype('scalar')->defaultValue('FrameworkBundle:Form')->end()
->validate() ->validate()
->ifNotInArray(array('FrameworkBundle:Form')) ->ifTrue(function ($v) {return !in_array('FrameworkBundle:Form', $v); })
->then(function ($v) { ->then(function ($v) {
return array_merge(array('FrameworkBundle:Form'), $v); return array_merge(array('FrameworkBundle:Form'), $v);
}) })

View File

@ -27,6 +27,19 @@ class ConfigurationTest extends \PHPUnit_Framework_TestCase
); );
} }
public function testDoNoDuplicateDefaultFormResources()
{
$input = array('templating' => array(
'form' => array('resources' => array('FrameworkBundle:Form')),
'engines' => array('php'),
));
$processor = new Processor();
$config = $processor->processConfiguration(new Configuration(), array($input));
$this->assertEquals(array('FrameworkBundle:Form'), $config['templating']['form']['resources']);
}
/** /**
* @dataProvider getTestValidTrustedProxiesData * @dataProvider getTestValidTrustedProxiesData
*/ */

View File

@ -58,7 +58,7 @@ class Configuration implements ConfigurationInterface
->prototype('scalar')->defaultValue('form_div_layout.html.twig')->end() ->prototype('scalar')->defaultValue('form_div_layout.html.twig')->end()
->example(array('MyBundle::form.html.twig')) ->example(array('MyBundle::form.html.twig'))
->validate() ->validate()
->ifNotInArray(array('form_div_layout.html.twig')) ->ifTrue(function ($v) {return !in_array('form_div_layout.html.twig', $v); })
->then(function ($v) { ->then(function ($v) {
return array_merge(array('form_div_layout.html.twig'), $v); return array_merge(array('form_div_layout.html.twig'), $v);
}) })

View File

@ -0,0 +1,30 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bundle\TwigBundle\Tests\DependencyInjection;
use Symfony\Bundle\TwigBundle\DependencyInjection\Configuration;
use Symfony\Component\Config\Definition\Processor;
class ConfigurationTest extends \PHPUnit_Framework_TestCase
{
public function testDoNoDuplicateDefaultFormResources()
{
$input = array(
'form' => array('resources' => array('form_div_layout.html.twig')),
);
$processor = new Processor();
$config = $processor->processConfiguration(new Configuration(), array($input));
$this->assertEquals(array('form_div_layout.html.twig'), $config['form']['resources']);
}
}