sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							151 lines
						
					
					
						
							5.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							151 lines
						
					
					
						
							5.9 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\Mime\Tests; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\Mime\Address; | |
| use Symfony\Component\Mime\Header\Headers; | |
| use Symfony\Component\Mime\Header\MailboxListHeader; | |
| use Symfony\Component\Mime\Header\UnstructuredHeader; | |
| use Symfony\Component\Mime\Message; | |
| use Symfony\Component\Mime\NamedAddress; | |
| use Symfony\Component\Mime\Part\TextPart; | |
| 
 | |
| class MessageTest extends TestCase | |
| { | |
|     public function testConstruct() | |
|     { | |
|         $m = new Message(); | |
|         $this->assertNull($m->getBody()); | |
|         $this->assertEquals(new Headers(), $m->getHeaders()); | |
| 
 | |
|         $m = new Message($h = (new Headers())->addDateHeader('Date', new \DateTime()), $b = new TextPart('content')); | |
|         $this->assertSame($b, $m->getBody()); | |
|         $this->assertEquals($h, $m->getHeaders()); | |
| 
 | |
|         $m = new Message(); | |
|         $m->setBody($b); | |
|         $m->setHeaders($h); | |
|         $this->assertSame($b, $m->getBody()); | |
|         $this->assertSame($h, $m->getHeaders()); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersThrowsWhenNoFrom() | |
|     { | |
|         $this->expectException(\LogicException::class); | |
|         (new Message())->getPreparedHeaders(); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersCloneHeaders() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $this->assertNotSame($message->getPreparedHeaders(), $message->getHeaders()); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersSetRequiredHeaders() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $headers = $message->getPreparedHeaders(); | |
|         $this->assertTrue($headers->has('MIME-Version')); | |
|         $this->assertTrue($headers->has('Message-ID')); | |
|         $this->assertTrue($headers->has('Date')); | |
|         $this->assertFalse($headers->has('Bcc')); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeaders() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $h = $message->getPreparedHeaders(); | |
|         $this->assertCount(4, iterator_to_array($h->getAll())); | |
|         $this->assertEquals(new MailboxListHeader('From', [new Address('fabien@symfony.com')]), $h->get('From')); | |
|         $this->assertEquals(new UnstructuredHeader('MIME-Version', '1.0'), $h->get('mime-version')); | |
|         $this->assertTrue($h->has('Message-Id')); | |
|         $this->assertTrue($h->has('Date')); | |
| 
 | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $message->getHeaders()->addDateHeader('Date', $n = new \DateTimeImmutable()); | |
|         $this->assertEquals($n, $message->getPreparedHeaders()->get('Date')->getDateTime()); | |
| 
 | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $message->getHeaders()->addMailboxListHeader('Bcc', ['fabien@symfony.com']); | |
|         $this->assertNull($message->getPreparedHeaders()->get('Bcc')); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersWithNoFrom() | |
|     { | |
|         $this->expectException(\LogicException::class); | |
|         (new Message())->getPreparedHeaders(); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersWithNamedFrom() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', [new NamedAddress('fabien@symfony.com', 'Fabien')]); | |
|         $h = $message->getPreparedHeaders(); | |
|         $this->assertEquals(new MailboxListHeader('From', [new NamedAddress('fabien@symfony.com', 'Fabien')]), $h->get('From')); | |
|         $this->assertTrue($h->has('Message-Id')); | |
|     } | |
| 
 | |
|     public function testGetPreparedHeadersHasSenderWhenNeeded() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $this->assertNull($message->getPreparedHeaders()->get('Sender')); | |
| 
 | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com', 'lucas@symfony.com']); | |
|         $this->assertEquals('fabien@symfony.com', $message->getPreparedHeaders()->get('Sender')->getAddress()->getAddress()); | |
| 
 | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com', 'lucas@symfony.com']); | |
|         $message->getHeaders()->addMailboxHeader('Sender', 'thomas@symfony.com'); | |
|         $this->assertEquals('thomas@symfony.com', $message->getPreparedHeaders()->get('Sender')->getAddress()->getAddress()); | |
|     } | |
| 
 | |
|     public function testToString() | |
|     { | |
|         $message = new Message(); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $expected = <<<EOF | |
| From: fabien@symfony.com | |
| MIME-Version: 1.0 | |
| Date: %s | |
| Message-ID: <%s@symfony.com> | |
| Content-Type: text/plain; charset=utf-8 | |
| Content-Transfer-Encoding: quoted-printable | |
|  | |
|  | |
| EOF; | |
|         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString())); | |
|         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false)))); | |
| 
 | |
|         $message = new Message(null, new TextPart('content')); | |
|         $message->getHeaders()->addMailboxListHeader('From', ['fabien@symfony.com']); | |
|         $expected = <<<EOF | |
| From: fabien@symfony.com | |
| MIME-Version: 1.0 | |
| Date: %s | |
| Message-ID: <%s@symfony.com> | |
| Content-Type: text/plain; charset=utf-8 | |
| Content-Transfer-Encoding: quoted-printable | |
|  | |
| content | |
| EOF; | |
|         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", $message->toString())); | |
|         $this->assertStringMatchesFormat($expected, str_replace("\r\n", "\n", implode('', iterator_to_array($message->toIterable(), false)))); | |
|     } | |
| }
 | |
| 
 |