From 8dcb1dfa5d016db56cf29c5f2c0b8958b76f4926 Mon Sep 17 00:00:00 2001 From: Asis Pattisahusiwa <79239132+asispts@users.noreply.github.com> Date: Tue, 31 Oct 2023 11:03:23 +0700 Subject: [PATCH 1/4] Fix bootstrap 4 form error layout --- .../Resources/views/Form/bootstrap_4_layout.html.twig | 9 +++++---- 1 file changed, 5 insertions(+), 4 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 a7ce3e23fc96c..49306fa4616b8 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 @@ -257,7 +257,8 @@ {{- label|trans(label_translation_parameters, translation_domain)|raw -}} {%- endif -%} {%- endif -%} - {% block form_label_errors %}{{- form_errors(form) -}}{% endblock form_label_errors %} + + {% block form_label_errors %}{{- form_errors(form) -}}{% endblock form_label_errors %} {%- else -%} {%- if errors|length > 0 -%}
@@ -315,8 +316,8 @@ {%- endif -%} {%- endif -%} {%- endif -%} - {{- form_errors(form) -}} + {{- form_errors(form) -}} {%- endif -%} {%- endblock checkbox_radio_label %} @@ -341,13 +342,13 @@ {% block form_errors -%} {%- if errors|length > 0 -%} - +
{%- for error in errors -%} {{ 'Error'|trans({}, 'validators') }} {{ error.message }} {%- endfor -%} - +
{%- endif %} {%- endblock form_errors %} From 7ff0b725eb6354f2d7fff958c5f914ffbdd49cd9 Mon Sep 17 00:00:00 2001 From: Asis Pattisahusiwa <79239132+asispts@users.noreply.github.com> Date: Tue, 31 Oct 2023 12:37:41 +0700 Subject: [PATCH 2/4] Fix tests --- ...bstractBootstrap4HorizontalLayoutTestCase.php | 12 +++++------- .../AbstractBootstrap4LayoutTestCase.php | 16 +++++++--------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php index ce8a733665854..4f57f052ccbf5 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php @@ -31,14 +31,12 @@ public function testRow() '/div [ ./label[@for="name"] - [ - ./span[@class="alert alert-danger d-block"] - [./span[@class="d-block"] - [./span[.="[trans]Error[/trans]"]] - [./span[.="[trans]Error![/trans]"]] - ] - [count(./span)=1] + /following-sibling::div[@class="alert alert-danger d-block mb-1"] + [./span[@class="d-block"] + [./span[.="[trans]Error[/trans]"]] + [./span[.="[trans]Error![/trans]"]] ] + [count(./span)=1] /following-sibling::div[./input[@id="name"]] ] ' diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php index e329b5d49ec16..ed4cf89730726 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php @@ -41,14 +41,12 @@ public function testRow() '/div [ ./label[@for="name"] - [ - ./span[@class="alert alert-danger d-block"] - [./span[@class="d-block"] - [./span[.="[trans]Error[/trans]"]] - [./span[.="[trans]Error![/trans]"]] - ] - [count(./span)=1] + /following-sibling::div[@class="alert alert-danger d-block mb-1"] + [./span[@class="d-block"] + [./span[.="[trans]Error[/trans]"]] + [./span[.="[trans]Error![/trans]"]] ] + [count(./span)=1] /following-sibling::input[@id="name"] ] ' @@ -323,8 +321,8 @@ public function testErrors() $html = $this->renderErrors($view); $this->assertMatchesXpath($html, - '/span - [@class="alert alert-danger d-block"] + '/div + [@class="alert alert-danger d-block mb-1"] [ ./span[@class="d-block"] [./span[.="[trans]Error[/trans]"]] From d9d92e69306f1933964873548c5809024b88128e Mon Sep 17 00:00:00 2001 From: Asis Pattisahusiwa <79239132+asispts@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:12:10 +0700 Subject: [PATCH 3/4] Revert div --- .../Twig/Resources/views/Form/bootstrap_4_layout.html.twig | 4 ++-- .../Extension/AbstractBootstrap4HorizontalLayoutTestCase.php | 2 +- .../Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php | 4 ++-- 3 files changed, 5 insertions(+), 5 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 49306fa4616b8..cd30f8bb8f89a 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 @@ -342,13 +342,13 @@ {% block form_errors -%} {%- if errors|length > 0 -%} -
+ {%- for error in errors -%} {{ 'Error'|trans({}, 'validators') }} {{ error.message }} {%- endfor -%} -
+
{%- endif %} {%- endblock form_errors %} diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php index 4f57f052ccbf5..322eba126730b 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4HorizontalLayoutTestCase.php @@ -31,7 +31,7 @@ public function testRow() '/div [ ./label[@for="name"] - /following-sibling::div[@class="alert alert-danger d-block mb-1"] + /following-sibling::span[@class="alert alert-danger d-block mb-1"] [./span[@class="d-block"] [./span[.="[trans]Error[/trans]"]] [./span[.="[trans]Error![/trans]"]] diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php index ed4cf89730726..199bd60fc924a 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/AbstractBootstrap4LayoutTestCase.php @@ -41,7 +41,7 @@ public function testRow() '/div [ ./label[@for="name"] - /following-sibling::div[@class="alert alert-danger d-block mb-1"] + /following-sibling::span[@class="alert alert-danger d-block mb-1"] [./span[@class="d-block"] [./span[.="[trans]Error[/trans]"]] [./span[.="[trans]Error![/trans]"]] @@ -321,7 +321,7 @@ public function testErrors() $html = $this->renderErrors($view); $this->assertMatchesXpath($html, - '/div + '/span [@class="alert alert-danger d-block mb-1"] [ ./span[@class="d-block"] From 991255d2eced35330d2255f51a21cd8b8d616d6c Mon Sep 17 00:00:00 2001 From: Asis Pattisahusiwa <79239132+asispts@users.noreply.github.com> Date: Wed, 15 Nov 2023 09:13:33 +0700 Subject: [PATCH 4/4] Fix failed test in PHP 8.2 + high-deps --- .../Bridge/Twig/Tests/Node/FormThemeTest.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php b/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php index cf98191233057..05f5cbd26b47a 100644 --- a/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Node/FormThemeTest.php @@ -60,10 +60,18 @@ public function testCompile() $this->registerTwigRuntimeLoader($environment, $formRenderer); $compiler = new Compiler($environment); + // There's a different result when testing in Symfony 4 with PHP 8.2 + high-deps + // This workaround is used to deal with the difference. + $source = '[1 => "tpl1", 0 => "tpl2"]'; + if ('["tpl1", "tpl2"]' === (new Compiler($environment))->subcompile($node->getNode('resources'))->getSource()) { + $source = '["tpl1", "tpl2"]'; + } + $this->assertEquals( sprintf( - '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, [1 => "tpl1", 0 => "tpl2"], true);', - $this->getVariableGetter('form') + '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, %s, true);', + $this->getVariableGetter('form'), + $source ), trim($compiler->compile($node)->getSource()) ); @@ -72,8 +80,9 @@ public function testCompile() $this->assertEquals( sprintf( - '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, [1 => "tpl1", 0 => "tpl2"], false);', - $this->getVariableGetter('form') + '$this->env->getRuntime("Symfony\\\\Component\\\\Form\\\\FormRenderer")->setTheme(%s, %s, false);', + $this->getVariableGetter('form'), + $source ), trim($compiler->compile($node)->getSource()) );