123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?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\FrameworkBundle\Tests\Templating\Helper;
- use Symfony\Bundle\FrameworkBundle\Templating\Helper\TranslatorHelper;
- use Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures\StubTemplateNameParser;
- use Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper\Fixtures\StubTranslator;
- use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
- use Symfony\Component\Form\FormView;
- use Symfony\Component\Form\Tests\AbstractDivLayoutTest;
- use Symfony\Component\Templating\Loader\FilesystemLoader;
- use Symfony\Component\Templating\PhpEngine;
- class FormHelperDivLayoutTest extends AbstractDivLayoutTest
- {
- /**
- * @var PhpEngine
- */
- protected $engine;
- protected $testableFeatures = array(
- 'choice_attr',
- );
- protected function getExtensions()
- {
- // should be moved to the Form component once absolute file paths are supported
- // by the default name parser in the Templating component
- $reflClass = new \ReflectionClass('Symfony\Bundle\FrameworkBundle\FrameworkBundle');
- $root = realpath(\dirname($reflClass->getFileName()).'/Resources/views');
- $rootTheme = realpath(__DIR__.'/Resources');
- $templateNameParser = new StubTemplateNameParser($root, $rootTheme);
- $loader = new FilesystemLoader(array());
- $this->engine = new PhpEngine($templateNameParser, $loader);
- $this->engine->addGlobal('global', '');
- $this->engine->setHelpers(array(
- new TranslatorHelper(new StubTranslator()),
- ));
- return array_merge(parent::getExtensions(), array(
- new TemplatingExtension($this->engine, $this->csrfTokenManager, array(
- 'FrameworkBundle:Form',
- )),
- ));
- }
- protected function tearDown()
- {
- $this->engine = null;
- parent::tearDown();
- }
- public function testStartTagHasNoActionAttributeWhenActionIsEmpty()
- {
- $form = $this->factory->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, array(
- 'method' => 'get',
- 'action' => '',
- ));
- $html = $this->renderStart($form->createView());
- $this->assertSame('<form name="form" method="get">', $html);
- }
- public function testStartTagHasActionAttributeWhenActionIsZero()
- {
- $form = $this->factory->create('Symfony\Component\Form\Extension\Core\Type\FormType', null, array(
- 'method' => 'get',
- 'action' => '0',
- ));
- $html = $this->renderStart($form->createView());
- $this->assertSame('<form name="form" method="get" action="0">', $html);
- }
- public function testMoneyWidgetInIso()
- {
- $this->engine->setCharset('ISO-8859-1');
- $view = $this->factory
- ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType')
- ->createView()
- ;
- $this->assertSame('€ <input type="text" id="name" name="name" required="required" />', $this->renderWidget($view));
- }
- protected function renderForm(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->form($view, $vars);
- }
- protected function renderEnctype(FormView $view)
- {
- if (!method_exists($form = $this->engine->get('form'), 'enctype')) {
- $this->markTestSkipped(sprintf('Deprecated method %s->enctype() is not implemented.', \get_class($form)));
- }
- return (string) $form->enctype($view);
- }
- protected function renderLabel(FormView $view, $label = null, array $vars = array())
- {
- return (string) $this->engine->get('form')->label($view, $label, $vars);
- }
- protected function renderErrors(FormView $view)
- {
- return (string) $this->engine->get('form')->errors($view);
- }
- protected function renderWidget(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->widget($view, $vars);
- }
- protected function renderRow(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->row($view, $vars);
- }
- protected function renderRest(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->rest($view, $vars);
- }
- protected function renderStart(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->start($view, $vars);
- }
- protected function renderEnd(FormView $view, array $vars = array())
- {
- return (string) $this->engine->get('form')->end($view, $vars);
- }
- protected function setTheme(FormView $view, array $themes)
- {
- $this->engine->get('form')->setTheme($view, $themes);
- }
- public static function themeBlockInheritanceProvider()
- {
- return array(
- array(array('TestBundle:Parent')),
- );
- }
- public static function themeInheritanceProvider()
- {
- return array(
- array(array('TestBundle:Parent'), array('TestBundle:Child')),
- );
- }
- }
|