This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/tests/Symfony/Tests/Component/Form/AbstractExtensionTest.php
Bernhard Schussek 1ce2db87e2 [Form] Added FormTypeExtensionInterface
With implementations of this interface, existing types can be amended.
The Csrf extension, for example, now contains a class FormTypeCsrfExtension
that adds CSRF capabilities to the "form" type.

To register new type extensions in the DIC, tag them with "form.type_extension"
and the name of the extended type as alias.
2011-04-22 19:24:38 +02:00

72 lines
1.8 KiB
PHP

<?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\Tests\Component\Form;
use Symfony\Component\Form\AbstractExtension;
use Symfony\Component\Form\FormTypeInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Form\FormBuilder;
class AbstractExtensionTest extends \PHPUnit_Framework_TestCase
{
public function testHasType()
{
$loader = new TestExtension();
$this->assertTrue($loader->hasType('foo'));
$this->assertFalse($loader->hasType('bar'));
}
public function testGetType()
{
$loader = new TestExtension(array($type));
$this->assertInstanceOf(__NAMESPACE__.'\TestType', $loader->getType('foo'));
$this->assertSame($loader->getType('foo'), $loader->getType('foo'));
}
}
class TestType implements FormTypeInterface
{
public function getName()
{
return 'foo';
}
function buildForm(FormBuilder $builder, array $options) {}
function buildView(FormView $view, FormInterface $form) {}
function buildViewBottomUp(FormView $view, FormInterface $form) {}
function createBuilder($name, FormFactoryInterface $factory, array $options) {}
function getDefaultOptions(array $options) {}
function getParent(array $options) {}
function setExtensions(array $extensions) {}
function getExtensions() {}
}
class TestExtension extends AbstractExtension
{
protected function loadTypes()
{
return array(new TestType());
}
protected function loadTypeGuesser()
{
}
}