sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							149 lines
						
					
					
						
							6.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							149 lines
						
					
					
						
							6.2 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\Part;
							 | 
						|
								
							 | 
						|
								use PHPUnit\Framework\TestCase;
							 | 
						|
								use Symfony\Component\Mime\Header\Headers;
							 | 
						|
								use Symfony\Component\Mime\Header\IdentificationHeader;
							 | 
						|
								use Symfony\Component\Mime\Header\ParameterizedHeader;
							 | 
						|
								use Symfony\Component\Mime\Header\UnstructuredHeader;
							 | 
						|
								use Symfony\Component\Mime\Part\DataPart;
							 | 
						|
								
							 | 
						|
								class DataPartTest extends TestCase
							 | 
						|
								{
							 | 
						|
								    public function testConstructor()
							 | 
						|
								    {
							 | 
						|
								        $p = new DataPart('content');
							 | 
						|
								        $this->assertEquals('content', $p->getBody());
							 | 
						|
								        $this->assertEquals(base64_encode('content'), $p->bodyToString());
							 | 
						|
								        $this->assertEquals(base64_encode('content'), implode('', iterator_to_array($p->bodyToIterable())));
							 | 
						|
								        // bodyToIterable() can be called several times
							 | 
						|
								        $this->assertEquals(base64_encode('content'), implode('', iterator_to_array($p->bodyToIterable())));
							 | 
						|
								        $this->assertEquals('application', $p->getMediaType());
							 | 
						|
								        $this->assertEquals('octet-stream', $p->getMediaSubType());
							 | 
						|
								
							 | 
						|
								        $p = new DataPart('content', null, 'text/html');
							 | 
						|
								        $this->assertEquals('text', $p->getMediaType());
							 | 
						|
								        $this->assertEquals('html', $p->getMediaSubType());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testConstructorWithResource()
							 | 
						|
								    {
							 | 
						|
								        $f = fopen('php://memory', 'r+', false);
							 | 
						|
								        fwrite($f, 'content');
							 | 
						|
								        rewind($f);
							 | 
						|
								        $p = new DataPart($f);
							 | 
						|
								        $this->assertEquals('content', $p->getBody());
							 | 
						|
								        $this->assertEquals(base64_encode('content'), $p->bodyToString());
							 | 
						|
								        $this->assertEquals(base64_encode('content'), implode('', iterator_to_array($p->bodyToIterable())));
							 | 
						|
								        fclose($f);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testConstructorWithNonStringOrResource()
							 | 
						|
								    {
							 | 
						|
								        $this->expectException(\TypeError::class);
							 | 
						|
								        new DataPart(new \stdClass());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHeaders()
							 | 
						|
								    {
							 | 
						|
								        $p = new DataPart('content');
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'application/octet-stream'),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'attachment')
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								
							 | 
						|
								        $p = new DataPart('content', 'photo.jpg', 'text/html');
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'text/html', ['name' => 'photo.jpg']),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'attachment', ['name' => 'photo.jpg', 'filename' => 'photo.jpg'])
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAsInline()
							 | 
						|
								    {
							 | 
						|
								        $p = new DataPart('content', 'photo.jpg', 'text/html');
							 | 
						|
								        $p->asInline();
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'text/html', ['name' => 'photo.jpg']),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'inline', ['name' => 'photo.jpg', 'filename' => 'photo.jpg'])
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testAsInlineWithCID()
							 | 
						|
								    {
							 | 
						|
								        $p = new DataPart('content', 'photo.jpg', 'text/html');
							 | 
						|
								        $p->asInline();
							 | 
						|
								        $cid = $p->getContentId();
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'text/html', ['name' => 'photo.jpg']),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'inline', ['name' => 'photo.jpg', 'filename' => 'photo.jpg']),
							 | 
						|
								            new IdentificationHeader('Content-ID', $cid)
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testFromPath()
							 | 
						|
								    {
							 | 
						|
								        $p = DataPart::fromPath($file = __DIR__.'/../Fixtures/mimetypes/test.gif');
							 | 
						|
								        $content = file_get_contents($file);
							 | 
						|
								        $this->assertEquals($content, $p->getBody());
							 | 
						|
								        $this->assertEquals(base64_encode($content), $p->bodyToString());
							 | 
						|
								        $this->assertEquals(base64_encode($content), implode('', iterator_to_array($p->bodyToIterable())));
							 | 
						|
								        $this->assertEquals('image', $p->getMediaType());
							 | 
						|
								        $this->assertEquals('gif', $p->getMediaSubType());
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'image/gif', ['name' => 'test.gif']),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'attachment', ['name' => 'test.gif', 'filename' => 'test.gif'])
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testFromPathWithMeta()
							 | 
						|
								    {
							 | 
						|
								        $p = DataPart::fromPath($file = __DIR__.'/../Fixtures/mimetypes/test.gif', 'photo.gif', 'image/jpeg');
							 | 
						|
								        $content = file_get_contents($file);
							 | 
						|
								        $this->assertEquals($content, $p->getBody());
							 | 
						|
								        $this->assertEquals(base64_encode($content), $p->bodyToString());
							 | 
						|
								        $this->assertEquals(base64_encode($content), implode('', iterator_to_array($p->bodyToIterable())));
							 | 
						|
								        $this->assertEquals('image', $p->getMediaType());
							 | 
						|
								        $this->assertEquals('jpeg', $p->getMediaSubType());
							 | 
						|
								        $this->assertEquals(new Headers(
							 | 
						|
								            new ParameterizedHeader('Content-Type', 'image/jpeg', ['name' => 'photo.gif']),
							 | 
						|
								            new UnstructuredHeader('Content-Transfer-Encoding', 'base64'),
							 | 
						|
								            new ParameterizedHeader('Content-Disposition', 'attachment', ['name' => 'photo.gif', 'filename' => 'photo.gif'])
							 | 
						|
								        ), $p->getPreparedHeaders());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testHasContentId()
							 | 
						|
								    {
							 | 
						|
								        $p = new DataPart('content');
							 | 
						|
								        $this->assertFalse($p->hasContentId());
							 | 
						|
								        $p->getContentId();
							 | 
						|
								        $this->assertTrue($p->hasContentId());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testSerialize()
							 | 
						|
								    {
							 | 
						|
								        $r = fopen('php://memory', 'r+', false);
							 | 
						|
								        fwrite($r, 'Text content');
							 | 
						|
								        rewind($r);
							 | 
						|
								
							 | 
						|
								        $p = new DataPart($r);
							 | 
						|
								        $p->getHeaders()->addTextHeader('foo', 'bar');
							 | 
						|
								        $expected = clone $p;
							 | 
						|
								        $this->assertEquals($expected->toString(), unserialize(serialize($p))->toString());
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |