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.
		
		
		
		
		
			
		
			
				
					
					
						
							245 lines
						
					
					
						
							8.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							245 lines
						
					
					
						
							8.4 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\Header;
							 | 
						|
								
							 | 
						|
								use PHPUnit\Framework\TestCase;
							 | 
						|
								use Symfony\Component\Mime\Address;
							 | 
						|
								use Symfony\Component\Mime\Header\Headers;
							 | 
						|
								use Symfony\Component\Mime\Header\IdentificationHeader;
							 | 
						|
								use Symfony\Component\Mime\Header\MailboxListHeader;
							 | 
						|
								use Symfony\Component\Mime\Header\UnstructuredHeader;
							 | 
						|
								
							 | 
						|
								class HeadersTest extends TestCase
							 | 
						|
								{
							 | 
						|
								    public function testAddMailboxListHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addMailboxListHeader('From', ['person@domain']);
							 | 
						|
								        $this->assertNotNull($headers->get('From'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddDateHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $dateTime = new \DateTimeImmutable();
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addDateHeader('Date', $dateTime);
							 | 
						|
								        $this->assertNotNull($headers->get('Date'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddTextHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('Subject', 'some text');
							 | 
						|
								        $this->assertNotNull($headers->get('Subject'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddParameterizedHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addParameterizedHeader('Content-Type', 'text/plain', ['charset' => 'utf-8']);
							 | 
						|
								        $this->assertNotNull($headers->get('Content-Type'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddIdHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertNotNull($headers->get('Message-ID'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddPathHeaderDelegatesToFactory()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addPathHeader('Return-Path', 'some@path');
							 | 
						|
								        $this->assertNotNull($headers->get('Return-Path'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHasReturnsFalseWhenNoHeaders()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $this->assertFalse($headers->has('Some-Header'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedMailboxListHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addMailboxListHeader('From', ['person@domain']);
							 | 
						|
								        $this->assertTrue($headers->has('From'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedDateHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $dateTime = new \DateTimeImmutable();
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addDateHeader('Date', $dateTime);
							 | 
						|
								        $this->assertTrue($headers->has('Date'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedTextHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('Subject', 'some text');
							 | 
						|
								        $this->assertTrue($headers->has('Subject'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedParameterizedHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addParameterizedHeader('Content-Type', 'text/plain', ['charset' => 'utf-8']);
							 | 
						|
								        $this->assertTrue($headers->has('Content-Type'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedIdHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertTrue($headers->has('Message-ID'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAddedPathHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addPathHeader('Return-Path', 'some@path');
							 | 
						|
								        $this->assertTrue($headers->has('Return-Path'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testNewlySetHeaderIsSeenByHas()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->add(new UnstructuredHeader('X-Foo', 'bar'));
							 | 
						|
								        $this->assertTrue($headers->has('X-Foo'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHasCanDistinguishMultipleHeaders()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('X-Test', 'some@id');
							 | 
						|
								        $headers->addTextHeader('X-Test', 'other@id');
							 | 
						|
								        $this->assertTrue($headers->has('X-Test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGet()
							 | 
						|
								    {
							 | 
						|
								        $header = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertEquals($header->toString(), $headers->get('Message-ID')->toString());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetReturnsNullIfHeaderNotSet()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $this->assertNull($headers->get('Message-ID'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetAllReturnsAllHeadersMatchingName()
							 | 
						|
								    {
							 | 
						|
								        $header0 = new UnstructuredHeader('X-Test', 'some@id');
							 | 
						|
								        $header1 = new UnstructuredHeader('X-Test', 'other@id');
							 | 
						|
								        $header2 = new UnstructuredHeader('X-Test', 'more@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('X-Test', 'some@id');
							 | 
						|
								        $headers->addTextHeader('X-Test', 'other@id');
							 | 
						|
								        $headers->addTextHeader('X-Test', 'more@id');
							 | 
						|
								        $this->assertEquals([$header0, $header1, $header2], iterator_to_array($headers->getAll('X-Test')));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetAllReturnsAllHeadersIfNoArguments()
							 | 
						|
								    {
							 | 
						|
								        $header0 = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $header1 = new UnstructuredHeader('Subject', 'thing');
							 | 
						|
								        $header2 = new MailboxListHeader('To', [new Address('person@example.org')]);
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers->addTextHeader('Subject', 'thing');
							 | 
						|
								        $headers->addMailboxListHeader('To', [new Address('person@example.org')]);
							 | 
						|
								        $this->assertEquals(['message-id' => $header0, 'subject' => $header1, 'to' => $header2], iterator_to_array($headers->getAll()));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetAllReturnsEmptyArrayIfNoneSet()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $this->assertEquals([], iterator_to_array($headers->getAll('Received')));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testRemoveRemovesAllHeadersWithName()
							 | 
						|
								    {
							 | 
						|
								        $header0 = new UnstructuredHeader('X-Test', 'some@id');
							 | 
						|
								        $header1 = new UnstructuredHeader('X-Test', 'other@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('X-Test', 'some@id');
							 | 
						|
								        $headers->addIdHeader('X-Test', 'other@id');
							 | 
						|
								        $headers->remove('X-Test');
							 | 
						|
								        $this->assertFalse($headers->has('X-Test'));
							 | 
						|
								        $this->assertFalse($headers->has('X-Test'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHasIsNotCaseSensitive()
							 | 
						|
								    {
							 | 
						|
								        $header = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertTrue($headers->has('message-id'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetIsNotCaseSensitive()
							 | 
						|
								    {
							 | 
						|
								        $header = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertEquals($header, $headers->get('message-id'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testGetAllIsNotCaseSensitive()
							 | 
						|
								    {
							 | 
						|
								        $header = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $this->assertEquals([$header], iterator_to_array($headers->getAll('message-id')));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testRemoveIsNotCaseSensitive()
							 | 
						|
								    {
							 | 
						|
								        $header = new IdentificationHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers->remove('message-id');
							 | 
						|
								        $this->assertFalse($headers->has('Message-ID'));
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testToStringJoinsHeadersTogether()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('Foo', 'bar');
							 | 
						|
								        $headers->addTextHeader('Zip', 'buttons');
							 | 
						|
								        $this->assertEquals("Foo: bar\r\nZip: buttons\r\n", $headers->toString());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHeadersWithoutBodiesAreNotDisplayed()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addTextHeader('Foo', 'bar');
							 | 
						|
								        $headers->addTextHeader('Zip', '');
							 | 
						|
								        $this->assertEquals("Foo: bar\r\n", $headers->toString());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testToArray()
							 | 
						|
								    {
							 | 
						|
								        $headers = new Headers();
							 | 
						|
								        $headers->addIdHeader('Message-ID', 'some@id');
							 | 
						|
								        $headers->addTextHeader('Foo', str_repeat('a', 60).pack('C', 0x8F));
							 | 
						|
								        $this->assertEquals([
							 | 
						|
								            'Message-ID: <some@id>',
							 | 
						|
								            "Foo: =?utf-8?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=\r\n =?utf-8?Q?aaaa?=",
							 | 
						|
								        ], $headers->toArray());
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |