From 79d491cee17f456017ec5b6ef8642e90961be95b Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 2 Apr 2018 11:45:16 +0200 Subject: [PATCH 1/5] fixed deprecated messages in tests --- .../Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php index 8d30a3f37b..23a5caf3bf 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php @@ -199,7 +199,7 @@ class FormExtensionDivLayoutTest extends AbstractDivLayoutTest $this->extension->initRuntime($environment); $view = $this->factory - ->createNamed('name', 'money') + ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') ->createView() ; From 38968efce68eb5f83ca24c11e148b13e7279574e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 2 Apr 2018 12:03:31 +0200 Subject: [PATCH 2/5] fixed missing use statement --- src/Symfony/Component/Form/FormRenderer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Component/Form/FormRenderer.php b/src/Symfony/Component/Form/FormRenderer.php index badb0272f8..d68000e932 100644 --- a/src/Symfony/Component/Form/FormRenderer.php +++ b/src/Symfony/Component/Form/FormRenderer.php @@ -14,6 +14,7 @@ namespace Symfony\Component\Form; use Symfony\Component\Form\Exception\LogicException; use Symfony\Component\Form\Exception\BadMethodCallException; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; +use Twig\Environment; /** * Renders a form into HTML using a rendering engine. From 8f8d06718ec2030e266d22d4270195477be1fed2 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 2 Apr 2018 13:35:51 +0200 Subject: [PATCH 3/5] fixed tests --- .../Tests/Extension/FormExtensionBootstrap3LayoutTest.php | 4 +--- .../Twig/Tests/Extension/FormExtensionDivLayoutTest.php | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php index b834fd3a6e..05e0262f1f 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php @@ -82,11 +82,9 @@ class FormExtensionBootstrap3LayoutTest extends AbstractBootstrap3LayoutTest __DIR__.'/Fixtures/templates/form', )), array('strict_variables' => true)); $environment->addExtension(new TranslationExtension(new StubTranslator())); - $environment->addExtension($this->extension); + $environment->addExtension(new FormExtension()); $environment->setCharset('ISO-8859-1'); - $this->extension->initRuntime($environment); - $view = $this->factory ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') ->createView() diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php index 77c2fe2d22..951d403606 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php @@ -172,11 +172,9 @@ class FormExtensionDivLayoutTest extends AbstractDivLayoutTest __DIR__.'/Fixtures/templates/form', )), array('strict_variables' => true)); $environment->addExtension(new TranslationExtension(new StubTranslator())); - $environment->addExtension($this->extension); + $environment->addExtension(new FormExtension()); $environment->setCharset('ISO-8859-1'); - $this->extension->initRuntime($environment); - $view = $this->factory ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') ->createView() From fd11cc1d0e9383e0aafdd320d35b5df24c73d31b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 2 Apr 2018 15:14:01 +0200 Subject: [PATCH 4/5] fix merge --- .../Twig/Resources/views/Form/bootstrap_4_layout.html.twig | 4 ++-- .../Resources/views/Form/bootstrap_base_layout.html.twig | 4 ++-- .../Resources/views/Form/foundation_5_layout.html.twig | 4 ++-- .../Tests/Extension/FormExtensionBootstrap3LayoutTest.php | 7 +++++++ .../Twig/Tests/Extension/FormExtensionDivLayoutTest.php | 7 +++++++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig index 2acd7086b0..df88a00011 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig @@ -9,13 +9,13 @@
{%- if prepend -%}
- {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }}
{%- endif -%} {{- block('form_widget_simple') -}} {%- if append -%}
- {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }}
{%- endif -%}
diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_base_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_base_layout.html.twig index 801415872a..2630803573 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_base_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_base_layout.html.twig @@ -13,11 +13,11 @@ {% if prepend or append %}
{% if prepend %} - {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }} {% endif %} {{- block('form_widget_simple') -}} {% if append %} - {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }} {% endif %}
{% else %} diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/foundation_5_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/foundation_5_layout.html.twig index 3035689cc9..058bb9714c 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/foundation_5_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/foundation_5_layout.html.twig @@ -27,7 +27,7 @@ {% set prepend = '{{' == money_pattern[0:2] %} {% if not prepend %}
- {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }}
{% endif %}
@@ -35,7 +35,7 @@
{% if prepend %}
- {{ money_pattern|replace({ '{{ widget }}':''}) }} + {{ money_pattern|form_encode_currency }}
{% endif %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php index 05e0262f1f..d45ac367b1 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap3LayoutTest.php @@ -85,6 +85,13 @@ class FormExtensionBootstrap3LayoutTest extends AbstractBootstrap3LayoutTest $environment->addExtension(new FormExtension()); $environment->setCharset('ISO-8859-1'); + $rendererEngine = new TwigRendererEngine(array( + 'bootstrap_3_layout.html.twig', + 'custom_widgets.html.twig', + ), $environment); + $this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock()); + $this->registerTwigRuntimeLoader($environment, $this->renderer); + $view = $this->factory ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') ->createView() diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php index 951d403606..d2ea4e4a1a 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionDivLayoutTest.php @@ -175,6 +175,13 @@ class FormExtensionDivLayoutTest extends AbstractDivLayoutTest $environment->addExtension(new FormExtension()); $environment->setCharset('ISO-8859-1'); + $rendererEngine = new TwigRendererEngine(array( + 'form_div_layout.html.twig', + 'custom_widgets.html.twig', + ), $environment); + $this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock()); + $this->registerTwigRuntimeLoader($environment, $this->renderer); + $view = $this->factory ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') ->createView() From 7b8acbb0ac71c4beb648cba07fee9b65cb550e44 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 2 Apr 2018 15:41:47 +0200 Subject: [PATCH 5/5] fix merge --- .../views/Form/bootstrap_3_layout.html.twig | 59 ------------------- ...xtensionBootstrap4HorizontalLayoutTest.php | 3 +- .../FormExtensionBootstrap4LayoutTest.php | 33 ++++++++++- 3 files changed, 34 insertions(+), 61 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig index 3524aac4bd..d07fc67c58 100644 --- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig +++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig @@ -32,65 +32,6 @@ {% endif %} {%- endblock money_widget %} -{% block percent_widget -%} -
- {{- block('form_widget_simple') -}} - % -
-{%- endblock percent_widget %} - -{% block datetime_widget -%} - {% if widget == 'single_text' %} - {{- block('form_widget_simple') -}} - {% else -%} - {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) -%} -
- {{- form_errors(form.date) -}} - {{- form_errors(form.time) -}} - {{- form_widget(form.date, { datetime: true } ) -}} - {{- form_widget(form.time, { datetime: true } ) -}} -
- {%- endif %} -{%- endblock datetime_widget %} - -{% block date_widget -%} - {% if widget == 'single_text' %} - {{- block('form_widget_simple') -}} - {% else -%} - {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) -%} - {% if datetime is not defined or not datetime -%} -
- {%- endif %} - {{- date_pattern|replace({ - '{{ year }}': form_widget(form.year), - '{{ month }}': form_widget(form.month), - '{{ day }}': form_widget(form.day), - })|raw -}} - {% if datetime is not defined or not datetime -%} -
- {%- endif -%} - {% endif %} -{%- endblock date_widget %} - -{% block time_widget -%} - {% if widget == 'single_text' %} - {{- block('form_widget_simple') -}} - {% else -%} - {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) -%} - {% if datetime is not defined or false == datetime -%} -
- {%- endif -%} - {{- form_widget(form.hour) }}{% if with_minutes %}:{{ form_widget(form.minute) }}{% endif %}{% if with_seconds %}:{{ form_widget(form.second) }}{% endif %} - {% if datetime is not defined or false == datetime -%} -
- {%- endif -%} - {% endif %} -{%- endblock time_widget %} - -{% block choice_widget_collapsed -%} - {% set attr = attr|merge({class: (attr.class|default('') ~ ' form-control')|trim}) %} -{%- endblock choice_widget_collapsed %} - {% block checkbox_widget -%} {%- set parent_label_class = parent_label_class|default(label_attr.class|default('')) -%} {% if 'checkbox-inline' in parent_label_class %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4HorizontalLayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4HorizontalLayoutTest.php index 063edd889a..551d145acf 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4HorizontalLayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4HorizontalLayoutTest.php @@ -19,6 +19,7 @@ use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader; use Symfony\Component\Form\FormRenderer; use Symfony\Component\Form\FormView; use Symfony\Component\Form\Tests\AbstractBootstrap4HorizontalLayoutTest; +use Twig\Environment; /** * Class providing test cases for the Bootstrap 4 Twig form theme. @@ -44,7 +45,7 @@ class FormExtensionBootstrap4HorizontalLayoutTest extends AbstractBootstrap4Hori __DIR__.'/Fixtures/templates/form', )); - $environment = new \Twig_Environment($loader, array('strict_variables' => true)); + $environment = new Environment($loader, array('strict_variables' => true)); $environment->addExtension(new TranslationExtension(new StubTranslator())); $environment->addExtension(new FormExtension()); diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php index d8cbde1017..fdc4f3ebda 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/FormExtensionBootstrap4LayoutTest.php @@ -19,6 +19,7 @@ use Symfony\Bridge\Twig\Tests\Extension\Fixtures\StubFilesystemLoader; use Symfony\Component\Form\FormRenderer; use Symfony\Component\Form\FormView; use Symfony\Component\Form\Tests\AbstractBootstrap4LayoutTest; +use Twig\Environment; /** * Class providing test cases for the Bootstrap 4 horizontal Twig form theme. @@ -42,7 +43,7 @@ class FormExtensionBootstrap4LayoutTest extends AbstractBootstrap4LayoutTest __DIR__.'/Fixtures/templates/form', )); - $environment = new \Twig_Environment($loader, array('strict_variables' => true)); + $environment = new Environment($loader, array('strict_variables' => true)); $environment->addExtension(new TranslationExtension(new StubTranslator())); $environment->addExtension(new FormExtension()); @@ -78,6 +79,36 @@ class FormExtensionBootstrap4LayoutTest extends AbstractBootstrap4LayoutTest $this->assertSame('
', $html); } + public function testMoneyWidgetInIso() + { + $environment = new Environment(new StubFilesystemLoader(array( + __DIR__.'/../../Resources/views/Form', + __DIR__.'/Fixtures/templates/form', + )), array('strict_variables' => true)); + $environment->addExtension(new TranslationExtension(new StubTranslator())); + $environment->addExtension(new FormExtension()); + $environment->setCharset('ISO-8859-1'); + + $rendererEngine = new TwigRendererEngine(array( + 'bootstrap_4_layout.html.twig', + 'custom_widgets.html.twig', + ), $environment); + $this->renderer = new FormRenderer($rendererEngine, $this->getMockBuilder('Symfony\Component\Security\Csrf\CsrfTokenManagerInterface')->getMock()); + $this->registerTwigRuntimeLoader($environment, $this->renderer); + + $view = $this->factory + ->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\MoneyType') + ->createView() + ; + + $this->assertSame(<<<'HTML' +
+ +
+HTML + , trim($this->renderWidget($view))); + } + protected function renderForm(FormView $view, array $vars = array()) { return (string) $this->renderer->renderBlock($view, 'form', $vars);