|
10 | 10 | use Exception as GeneralException;
|
11 | 11 | use PHPUnit\Framework\TestCase;
|
12 | 12 | use Zend\Mail\Exception as MailException;
|
| 13 | +use Zend\Mail\Headers; |
13 | 14 | use Zend\Mail\Storage;
|
14 | 15 | use Zend\Mail\Storage\Exception;
|
15 | 16 | use Zend\Mail\Storage\Message;
|
|
24 | 25 | class MessageTest extends TestCase
|
25 | 26 | {
|
26 | 27 | protected $file;
|
| 28 | + |
27 | 29 | protected $file2;
|
28 | 30 |
|
29 | 31 | public function setUp()
|
@@ -432,6 +434,29 @@ public function testSpaceInFieldName()
|
432 | 434 | $this->assertEquals(Mime\Decode::splitHeaderField($header, 'baz'), 42);
|
433 | 435 | }
|
434 | 436 |
|
| 437 | + /** |
| 438 | + * splitMessage with Headers as input fails to process AddressList with semicolons |
| 439 | + */ |
| 440 | + public function testHeadersLosesNameQuoting() |
| 441 | + { |
| 442 | + $headerList = [ |
| 443 | + 'From: "Famous bearings |;" <[email protected]>', |
| 444 | + 'Reply-To: "Famous bearings |:" <[email protected]>', |
| 445 | + ]; |
| 446 | + |
| 447 | + // create Headers object from array |
| 448 | + Mime\Decode::splitMessage(implode("\r\n", $headerList), $headers1, $body); |
| 449 | + $this->assertInstanceOf(Headers::class, $headers1); |
| 450 | + // create Headers object from Headers object |
| 451 | + Mime\Decode::splitMessage($headers1, $headers2, $body); |
| 452 | + $this->assertInstanceOf(Headers::class, $headers2); |
| 453 | + |
| 454 | + // test that same problem does not happen with Storage\Message internally |
| 455 | + $message = new Message(['headers' => $headers2, 'content' => (string)$body]); |
| 456 | + $this-> assertEquals( '"Famous bearings |;" <[email protected]>', $message-> from); |
| 457 | + $this-> assertEquals( 'Famous bearings |: <[email protected]>', $message-> replyTo); |
| 458 | + } |
| 459 | + |
435 | 460 | /**
|
436 | 461 | * @group ZF2-372
|
437 | 462 | */
|
|
0 commit comments