Skip to content

Commit e9c8cd0

Browse files
committed
bug symfony#56827 Fix CharsetValidator with string encoding (alamirault)
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 symfony#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
2 parents 6ce4014 + f73afb9 commit e9c8cd0

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/Symfony/Component/Validator/Constraints/CharsetValidator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function validate(mixed $value, Constraint $constraint): void
3838
if (!\in_array(mb_detect_encoding($value, $constraint->encodings, true), (array) $constraint->encodings, true)) {
3939
$this->context->buildViolation($constraint->message)
4040
->setParameter('{{ detected }}', mb_detect_encoding($value, strict: true))
41-
->setParameter('{{ encodings }}', implode(', ', $constraint->encodings))
41+
->setParameter('{{ encodings }}', implode(', ', (array) $constraint->encodings))
4242
->setCode(Charset::BAD_ENCODING_ERROR)
4343
->addViolation();
4444
}

src/Symfony/Component/Validator/Tests/Constraints/CharsetValidatorTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ public function testEncodingIsValid(string|\Stringable $value, array|string $enc
3737
/**
3838
* @dataProvider provideInvalidValues
3939
*/
40-
public function testInvalidValues(string $value, array $encodings)
40+
public function testInvalidValues(string $value, array|string $encodings)
4141
{
4242
$this->validator->validate($value, new Charset(encodings: $encodings));
4343

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

7474
public static function provideInvalidValues()
7575
{
76+
yield ['my non-Äscîi string', 'ASCII'];
7677
yield ['my non-Äscîi string', ['ASCII']];
7778
yield ['😊', ['7bit']];
7879
}

0 commit comments

Comments
 (0)