4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Bridge\Twig\Tests\Extension
;
14 use Symfony\Component\Form\FormView
;
15 use Symfony\Bridge\Twig\Form\TwigRenderer
;
16 use Symfony\Bridge\Twig\Form\TwigRendererEngine
;
17 use Symfony\Bridge\Twig\Extension\FormExtension
;
18 use Symfony\Bridge\Twig\Extension\TranslationExtension
;
19 use Symfony\Component\Form\Tests\AbstractTableLayoutTest
;
20 use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubTranslator
;
21 use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader
;
23 class FormExtensionTableLayoutTest
extends AbstractTableLayoutTest
30 protected function setUp()
32 if (!class_exists('Symfony\Component\Locale\Locale')) {
33 $this->markTestSkipped('The "Locale" component is not available');
36 if (!class_exists('Symfony\Component\EventDispatcher\EventDispatcher')) {
37 $this->markTestSkipped('The "EventDispatcher" component is not available');
40 if (!class_exists('Symfony\Component\Form\Form')) {
41 $this->markTestSkipped('The "Form" component is not available');
44 if (!class_exists('Twig_Environment')) {
45 $this->markTestSkipped('Twig is not available.');
50 $rendererEngine = new TwigRendererEngine(array(
51 'form_table_layout.html.twig',
52 'custom_widgets.html.twig',
54 $renderer = new TwigRenderer($rendererEngine, $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface'));
56 $this->extension
= new FormExtension($renderer);
58 $loader = new StubFilesystemLoader(array(
59 __DIR__
.'/../../Resources/views/Form',
63 $environment = new \
Twig_Environment($loader, array('strict_variables' => true));
64 $environment->addExtension(new TranslationExtension(new StubTranslator()));
65 $environment->addGlobal('global', '');
66 $environment->addExtension($this->extension
);
68 $this->extension
->initRuntime($environment);
71 protected function tearDown()
75 $this->extension
= null;
78 protected function renderForm(FormView
$view, array $vars = array())
80 return (string) $this->extension
->renderer
->renderBlock($view, 'form', $vars);
83 protected function renderEnctype(FormView
$view)
85 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'enctype');
88 protected function renderLabel(FormView
$view, $label = null, array $vars = array())
90 if ($label !== null) {
91 $vars +
= array('label' => $label);
94 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'label', $vars);
97 protected function renderErrors(FormView
$view)
99 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'errors');
102 protected function renderWidget(FormView
$view, array $vars = array())
104 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'widget', $vars);
107 protected function renderRow(FormView
$view, array $vars = array())
109 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'row', $vars);
112 protected function renderRest(FormView
$view, array $vars = array())
114 return (string) $this->extension
->renderer
->searchAndRenderBlock($view, 'rest', $vars);
117 protected function renderStart(FormView
$view, array $vars = array())
119 return (string) $this->extension
->renderer
->renderBlock($view, 'form_start', $vars);
122 protected function renderEnd(FormView
$view, array $vars = array())
124 return (string) $this->extension
->renderer
->renderBlock($view, 'form_end', $vars);
127 protected function setTheme(FormView
$view, array $themes)
129 $this->extension
->renderer
->setTheme($view, $themes);