Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[FrameworkBundle] WebTestCaseTest::assertCheckboxChecked/assertCheckboxNotChecked does not work with html5 #47830

Copy link
Copy link
Closed
@bendavies

Description

@bendavies
Issue body actions

Symfony version(s) affected

6.1, sort of

Description

The WebTestCaseTest::assertCheckboxChecked/assertCheckboxNotChecked assertions do not work with html5 content.

They are only tested with html 4 content.

If the html tag in these tests with <!DOCTYPE html>, the tests fail.

This is because, in html5, checked is a boolean attribute,
i.e this is valid:
<input type="checkbox" name="rememberMe" checked>
while this is not:
<input type="checkbox" name="rememberMe" checked="checked">

so the new CrawlerSelectorAttributeValueSame("input[name=\"$fieldName\"]", 'checked', 'checked') check fails.

masterminds/html5 will parse <input type="checkbox" name="rememberMe" checked="checked"> as <input type="checkbox" name="rememberMe" checked>.

How to reproduce

They are only tested with html 4 content

Replace the html tag in these tests with <!DOCTYPE html>.

Possible Solution

not sure, maybe modify the assertion so it works with html4 and 5 parsers

LogicalOr(new CrawlerSelectorAttributeValueSame(...), new CrawlerSelectorAttributeExists(...))

where CrawlerSelectorAttributeExists is a new Constraint.

Additional Context

We discoverd this issue while upgrading from symfony 5.4 to 6.1, because masterminds/html5 became a mandatory dependency in 6.1: #44170, so previously on 5.4, our html in functional tests was not parsed as html5.

it should be noted that html5 is used in a default symfony project:
https://github.com/symfony/recipes/blob/f54b694258dfcb356f6c59e2ce1a4c49f3cceae9/symfony/twig-bundle/5.4/templates/base.html.twig#L1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.