radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			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))));
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |