Make sure form errors is valid HTML

This commit is contained in:
Nyholm 2018-03-18 15:29:46 +01:00
parent 866a1429b7
commit 5dcaaadb5e
3 changed files with 28 additions and 36 deletions

View File

@ -261,12 +261,12 @@
{% block form_errors -%} {% block form_errors -%}
{%- if errors|length > 0 -%} {%- if errors|length > 0 -%}
<div class="{% if form is not rootform %}invalid-feedback d-block{% else %}alert alert-danger{% endif %}"> <span class="{% if form is not rootform %}invalid-feedback d-block{% else %}alert alert-danger{% endif %}">
<ul class="list-unstyled mb-0"> {%- for error in errors -%}
{%- for error in errors -%} <span class="mb-0 d-block">
<li><span class="initialism form-error-icon badge badge-danger">{{ 'Error'|trans({}, 'validators') }}</span> <span class="form-error-message">{{ error.message }}</span></li> <span class="initialism form-error-icon badge badge-danger">{{ 'Error'|trans({}, 'validators') }}</span> <span class="form-error-message">{{ error.message }}</span>
{%- endfor -%} </span>
</ul> {%- endfor -%}
</div> </span>
{%- endif %} {%- endif %}
{%- endblock form_errors %} {%- endblock form_errors %}

View File

@ -32,14 +32,12 @@ abstract class AbstractBootstrap4HorizontalLayoutTest extends AbstractBootstrap4
[ [
./label[@for="name"] ./label[@for="name"]
[ [
./div[ ./span[@class="alert alert-danger"]
./ul [./span[@class="mb-0 d-block"]
[./li [./span[.="[trans]Error[/trans]"]]
[./span[.="[trans]Error[/trans]"]] [./span[.="[trans]Error![/trans]"]]
[./span[.="[trans]Error![/trans]"]] ]
] [count(./span)=1]
[count(./li)=1]
]
] ]
/following-sibling::div[./input[@id="name"]] /following-sibling::div[./input[@id="name"]]
] ]

View File

@ -32,14 +32,12 @@ abstract class AbstractBootstrap4LayoutTest extends AbstractBootstrap3LayoutTest
[ [
./label[@for="name"] ./label[@for="name"]
[ [
./div[ ./span[@class="alert alert-danger"]
./ul [./span[@class="mb-0 d-block"]
[./li [./span[.="[trans]Error[/trans]"]]
[./span[.="[trans]Error[/trans]"]] [./span[.="[trans]Error![/trans]"]]
[./span[.="[trans]Error![/trans]"]] ]
] [count(./span)=1]
[count(./li)=1]
]
] ]
/following-sibling::input[@id="name"] /following-sibling::input[@id="name"]
] ]
@ -162,22 +160,18 @@ abstract class AbstractBootstrap4LayoutTest extends AbstractBootstrap3LayoutTest
$html = $this->renderErrors($view); $html = $this->renderErrors($view);
$this->assertMatchesXpath($html, $this->assertMatchesXpath($html,
'/div '/span
[@class="alert alert-danger"] [@class="alert alert-danger"]
[ [
./ul ./span[@class="mb-0 d-block"]
[@class="list-unstyled mb-0"] [./span[.="[trans]Error[/trans]"]]
[ [./span[.="[trans]Error 1[/trans]"]]
./li
[./span[.="[trans]Error[/trans]"]] /following-sibling::span[@class="mb-0 d-block"]
[./span[.="[trans]Error 1[/trans]"]] [./span[.="[trans]Error[/trans]"]]
[./span[.="[trans]Error 2[/trans]"]]
/following-sibling::li
[./span[.="[trans]Error[/trans]"]]
[./span[.="[trans]Error 2[/trans]"]]
]
[count(./li)=2]
] ]
[count(./span)=2]
' '
); );
} }