From 384bf4f80f997504bbfe024d0ea152fdc376469f Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Mon, 2 Jan 2012 19:12:07 +0100 Subject: [PATCH] added a test for TextType with custom data transformers --- .../Form/Extension/Core/Type/TextTypeTest.php | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/Symfony/Tests/Component/Form/Extension/Core/Type/TextTypeTest.php diff --git a/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TextTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TextTypeTest.php new file mode 100644 index 000000000000..7e3690ef96ed --- /dev/null +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TextTypeTest.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Tests\Component\Form\Extension\Core\Type; + +use Symfony\Component\Form\CallbackTransformer; + +require_once __DIR__ . '/TypeTestCase.php'; + + +class TextTypeTest extends TypeTestCase +{ + public function testBindWorksWithDataTransformers() + { + $builder = $this->builder->create('text'); + + $transformer = new CallbackTransformer(function($value) { + + if (null === $value) { + return null; + } + + return implode(',', $value); + + }, function($value) { + + if (null === $value) { + return null; + } + + return explode(',', $value); + + }); + + $builder->appendClientTransformer($transformer); + $builder->setData(array('1','2','3')); + + $form = $builder->getForm(); + + $this->assertSame(array('1','2','3'), $form->getData()); + $this->assertSame('1,2,3', $form->getClientData()); + + $form->bind('4,5,6'); + + $this->assertSame(array('4','5','6'), $form->getData()); + $this->assertSame('4,5,6', $form->getClientData()); + } +} +