8000 [Mime] Add null check for EmailHeaderSame · symfony/symfony@a6ec675 · GitHub
[go: up one dir, main page]

Skip to content

Commit a6ec675

Browse files
magikidnicolas-grekas
authored andcommitted
[Mime] Add null check for EmailHeaderSame
1 parent c3db5c1 commit a6ec675

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/Symfony/Component/Mime/Test/Constraint/EmailHeaderSame.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,14 @@ protected function matches($message): bool
5555
*/
5656
protected function failureDescription($message): string
5757
{
58-
return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message));
58+
return sprintf('the Email %s (value is %s)', $this->toString(), $this->getHeaderValue($message) ?? 'null');
5959
}
6060

61-
private function getHeaderValue($message): string
61+
private function getHeaderValue($message): ?string
6262
{
63-
$header = $message->getHeaders()->get($this->headerName);
63+
if (null === $header = $message->getHeaders()->get($this->headerName)) {
64+
return null;
65+
}
6466

6567
return $header instanceof UnstructuredHeader ? $header->getValue() : $header->getBodyAsString();
6668
}

src/Symfony/Component/Mime/Tests/EmailTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Mime\Tests;
1313

14+
use PHPUnit\Framework\ExpectationFailedException;
1415
use PHPUnit\Framework\TestCase;
1516
use Symfony\Component\Mime\Address;
1617
use Symfony\Component\Mime\Email;
@@ -19,6 +20,7 @@
1920
use Symfony\Component\Mime\Part\Multipart\MixedPart;
2021
use Symfony\Component\Mime\Part\Multipart\RelatedPart;
2122
use Symfony\Component\Mime\Part\TextPart;
23+
use Symfony\Component\Mime\Test\Constraint\EmailHeaderSame;
2224

2325
class EmailTest extends TestCase
2426
{
@@ -384,4 +386,14 @@ public function testSerialize()
384386
$this->assertEquals($expected->getHeaders(), $n->getHeaders());
385387
$this->assertEquals($e->getBody(), $n->getBody());
386388
}
389+
390+
public function testMissingHeaderDoesNotThrowError()
391+
{
392+
$this->expectException(ExpectationFailedException::class);
393+
$this->expectExceptionMessage('Failed asserting that the Email has header "foo" with value "bar" (value is null).');
394+
395+
$e = new Email();
396+
$emailHeaderSame = new EmailHeaderSame('foo', 'bar');
397+
$emailHeaderSame->evaluate($e);
398+
}
387399
}

0 commit comments

Comments
 (0)
0