composer update
This commit is contained in:
151
vendor/symfony/mime/Tests/MessageTest.php
vendored
Normal file
151
vendor/symfony/mime/Tests/MessageTest.php
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
<?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))));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user