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 %}{{ element|default('label') }}>
+ {{ element|default('label') }}>
+ {% 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())
);