Skip to content

Commit

Permalink
bug #56827 Fix CharsetValidator with string encoding (alamirault)
Browse files Browse the repository at this point in the history
This PR was merged into the 7.1 branch.

Discussion
----------

Fix CharsetValidator with string encoding

| Q             | A
| ------------- | ---
| Branch?       | 7.1
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Issues        | Fix #56805 <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT

Commits
-------

f73afb9 Fix CharsetValidator with string encoding
  • Loading branch information
fabpot committed May 21, 2024
2 parents 6ce4014 + f73afb9 commit e9c8cd0
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function validate(mixed $value, Constraint $constraint): void
if (!\in_array(mb_detect_encoding($value, $constraint->encodings, true), (array) $constraint->encodings, true)) {
$this->context->buildViolation($constraint->message)
->setParameter('{{ detected }}', mb_detect_encoding($value, strict: true))
->setParameter('{{ encodings }}', implode(', ', $constraint->encodings))
->setParameter('{{ encodings }}', implode(', ', (array) $constraint->encodings))
->setCode(Charset::BAD_ENCODING_ERROR)
->addViolation();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ public function testEncodingIsValid(string|\Stringable $value, array|string $enc
/**
* @dataProvider provideInvalidValues
*/
public function testInvalidValues(string $value, array $encodings)
public function testInvalidValues(string $value, array|string $encodings)
{
$this->validator->validate($value, new Charset(encodings: $encodings));

$this->buildViolation('The detected character encoding is invalid ({{ detected }}). Allowed encodings are {{ encodings }}.')
->setParameter('{{ detected }}', 'UTF-8')
->setParameter('{{ encodings }}', implode(', ', $encodings))
->setParameter('{{ encodings }}', implode(', ', (array) $encodings))
->setCode(Charset::BAD_ENCODING_ERROR)
->assertRaised();
}
Expand Down Expand Up @@ -73,6 +73,7 @@ public static function provideValidValues()

public static function provideInvalidValues()
{
yield ['my non-Äscîi string', 'ASCII'];
yield ['my non-Äscîi string', ['ASCII']];
yield ['😊', ['7bit']];
}
Expand Down

0 comments on commit e9c8cd0

Please sign in to comment.