From 8a3f50746daea247a4ed21f4d9b0e7fc42fc0ad1 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 15 Jul 2020 14:13:19 +0200 Subject: [PATCH] Fix EmailHeaderSame to make use of decoded value Fixes #35062 --- .../Mime/Test/Constraint/EmailHeaderSame.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php b/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php index bc7e330e05..74bdc63c79 100644 --- a/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php +++ b/src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Mime\Test\Constraint; use PHPUnit\Framework\Constraint\Constraint; +use Symfony\Component\Mime\Header\UnstructuredHeader; use Symfony\Component\Mime\RawMessage; final class EmailHeaderSame extends Constraint @@ -44,7 +45,7 @@ final class EmailHeaderSame extends Constraint throw new \LogicException('Unable to test a message header on a RawMessage instance.'); } - return $this->expectedValue === $message->getHeaders()->get($this->headerName)->getBodyAsString(); + return $this->expectedValue === $this->getHeaderValue($message); } /** @@ -54,6 +55,13 @@ final class EmailHeaderSame extends Constraint */ protected function failureDescription($message): string { - return sprintf('the Email %s (value is %s)', $this->toString(), $message->getHeaders()->get($this->headerName)->getBodyAsString()); + return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message)); + } + + private function getHeaderValue($message): string + { + $header = $message->getHeaders()->get($this->headerName); + + return $header instanceof UnstructuredHeader ? $header->getValue() : $header->getBodyAsString(); } }