[Mime] Remove NamedAddress

This commit is contained in:
Fabien Potencier 2019-08-21 09:00:46 +02:00
parent 5a753b1428
commit eb7d74e6c5
17 changed files with 96 additions and 158 deletions

View File

@ -157,6 +157,11 @@ Messenger
* Deprecated passing a `ContainerInterface` instance as first argument of the `ConsumeMessagesCommand` constructor,
pass a `RoutableMessageBus` instance instead.
Mime
----
* Removed `NamedAddress`, use `Address` instead (which supports a name now)
MonologBridge
--------------

View File

@ -12,7 +12,6 @@
namespace Symfony\Bridge\Twig\Mime;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\NamedAddress;
use Twig\Environment;
/**
@ -33,9 +32,7 @@ final class WrappedTemplatedEmail
public function toName(): string
{
$to = $this->message->getTo()[0];
return $to instanceof NamedAddress ? $to->getName() : '';
return $this->message->getTo()[0]->getName();
}
public function image(string $image, string $contentType = null): string
@ -93,15 +90,15 @@ final class WrappedTemplatedEmail
/**
* @return $this
*/
public function addFrom(string $address, string $name = null): self
public function addFrom(string $address, string $name = ''): self
{
$this->message->addFrom($name ? new NamedAddress($address, $name) : new Address($address));
$this->message->addFrom(new Address($address, $name));
return $this;
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getFrom(): array
{
@ -129,15 +126,15 @@ final class WrappedTemplatedEmail
/**
* @return $this
*/
public function addTo(string $address, string $name = null): self
public function addTo(string $address, string $name = ''): self
{
$this->message->addTo($name ? new NamedAddress($address, $name) : new Address($address));
$this->message->addTo(new Address($address, $name));
return $this;
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getTo(): array
{
@ -147,15 +144,15 @@ final class WrappedTemplatedEmail
/**
* @return $this
*/
public function addCc(string $address, string $name = null): self
public function addCc(string $address, string $name = ''): self
{
$this->message->addCc($name ? new NamedAddress($address, $name) : new Address($address));
$this->message->addCc(new Address($address, $name));
return $this;
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getCc(): array
{
@ -165,15 +162,15 @@ final class WrappedTemplatedEmail
/**
* @return $this
*/
public function addBcc(string $address, string $name = null): self
public function addBcc(string $address, string $name = ''): self
{
$this->message->addBcc($name ? new NamedAddress($address, $name) : new Address($address));
$this->message->addBcc(new Address($address, $name));
return $this;
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getBcc(): array
{

View File

@ -13,8 +13,8 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Cont
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\NamedAddress;
class EmailController
{
@ -29,7 +29,7 @@ class EmailController
);
$mailer->send((new Email())->to('fabien@symfony.com', 'thomas@symfony.com')->from('fabien@symfony.com')->subject('Foo')
->addReplyTo(new NamedAddress('me@symfony.com', 'Fabien Potencier'))
->addReplyTo(new Address('me@symfony.com', 'Fabien Potencier'))
->addCc('cc@symfony.com')
->text('Bar!')
->html('<p>Foo</p>')

View File

@ -16,7 +16,6 @@ use Symfony\Component\Mailer\SmtpEnvelope;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Header\Headers;
use Symfony\Component\Mime\Message;
use Symfony\Component\Mime\NamedAddress;
class SmtpEnvelopeTest extends TestCase
{
@ -28,13 +27,13 @@ class SmtpEnvelopeTest extends TestCase
public function testConstructorWithNamedAddressSender()
{
$e = new SmtpEnvelope(new NamedAddress('fabien@symfony.com', 'Fabien'), [new Address('thomas@symfony.com')]);
$e = new SmtpEnvelope(new Address('fabien@symfony.com', 'Fabien'), [new Address('thomas@symfony.com')]);
$this->assertEquals(new Address('fabien@symfony.com'), $e->getSender());
}
public function testConstructorWithAddressRecipients()
{
$e = new SmtpEnvelope(new Address('fabien@symfony.com'), [new Address('thomas@symfony.com'), new NamedAddress('lucas@symfony.com', 'Lucas')]);
$e = new SmtpEnvelope(new Address('fabien@symfony.com'), [new Address('thomas@symfony.com'), new Address('lucas@symfony.com', 'Lucas')]);
$this->assertEquals([new Address('thomas@symfony.com'), new Address('lucas@symfony.com')], $e->getRecipients());
}
@ -53,19 +52,19 @@ class SmtpEnvelopeTest extends TestCase
public function testSenderFromHeaders()
{
$headers = new Headers();
$headers->addPathHeader('Return-Path', new NamedAddress('return@symfony.com', 'return'));
$headers->addPathHeader('Return-Path', new Address('return@symfony.com', 'return'));
$headers->addMailboxListHeader('To', ['from@symfony.com']);
$e = SmtpEnvelope::create(new Message($headers));
$this->assertEquals('return@symfony.com', $e->getSender()->getAddress());
$headers = new Headers();
$headers->addMailboxHeader('Sender', new NamedAddress('sender@symfony.com', 'sender'));
$headers->addMailboxHeader('Sender', new Address('sender@symfony.com', 'sender'));
$headers->addMailboxListHeader('To', ['from@symfony.com']);
$e = SmtpEnvelope::create(new Message($headers));
$this->assertEquals('sender@symfony.com', $e->getSender()->getAddress());
$headers = new Headers();
$headers->addMailboxListHeader('From', [new NamedAddress('from@symfony.com', 'from'), 'some@symfony.com']);
$headers->addMailboxListHeader('From', [new Address('from@symfony.com', 'from'), 'some@symfony.com']);
$headers->addMailboxListHeader('To', ['from@symfony.com']);
$e = SmtpEnvelope::create(new Message($headers));
$this->assertEquals('from@symfony.com', $e->getSender()->getAddress());
@ -76,7 +75,7 @@ class SmtpEnvelopeTest extends TestCase
$headers = new Headers();
$headers->addMailboxListHeader('To', ['from@symfony.com']);
$e = SmtpEnvelope::create($message = new Message($headers));
$message->getHeaders()->addMailboxListHeader('From', [new NamedAddress('from@symfony.com', 'from')]);
$message->getHeaders()->addMailboxListHeader('From', [new Address('from@symfony.com', 'from')]);
$this->assertEquals('from@symfony.com', $e->getSender()->getAddress());
}
@ -84,9 +83,9 @@ class SmtpEnvelopeTest extends TestCase
{
$headers = new Headers();
$headers->addPathHeader('Return-Path', 'return@symfony.com');
$headers->addMailboxListHeader('To', [new NamedAddress('to@symfony.com', 'to')]);
$headers->addMailboxListHeader('Cc', [new NamedAddress('cc@symfony.com', 'cc')]);
$headers->addMailboxListHeader('Bcc', [new NamedAddress('bcc@symfony.com', 'bcc')]);
$headers->addMailboxListHeader('To', [new Address('to@symfony.com', 'to')]);
$headers->addMailboxListHeader('Cc', [new Address('cc@symfony.com', 'cc')]);
$headers->addMailboxListHeader('Bcc', [new Address('bcc@symfony.com', 'bcc')]);
$e = SmtpEnvelope::create(new Message($headers));
$this->assertEquals([new Address('to@symfony.com'), new Address('cc@symfony.com'), new Address('bcc@symfony.com')], $e->getRecipients());
}

View File

@ -21,14 +21,15 @@ use Symfony\Component\Mime\Exception\RfcComplianceException;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
class Address
final class Address
{
private static $validator;
private static $encoder;
private $address;
private $name;
public function __construct(string $address)
public function __construct(string $address, string $name = '')
{
if (!class_exists(EmailValidator::class)) {
throw new LogicException(sprintf('The "%s" class cannot be used as it needs "%s"; try running "composer require egulias/email-validator".', __CLASS__, EmailValidator::class));
@ -43,6 +44,7 @@ class Address
}
$this->address = $address;
$this->name = $name;
}
public function getAddress(): string
@ -50,6 +52,11 @@ class Address
return $this->address;
}
public function getName(): string
{
return $this->name;
}
public function getEncodedAddress(): string
{
if (null === self::$encoder) {
@ -61,7 +68,7 @@ class Address
public function toString(): string
{
return $this->getEncodedAddress();
return ($n = $this->getName()) ? $n.' <'.$this->getEncodedAddress().'>' : $this->getEncodedAddress();
}
/**

View File

@ -4,6 +4,7 @@ CHANGELOG
4.4.0
-----
* [BC BREAK] Removed `NamedAddress` (`Address` now supports a name)
* Added PHPUnit constraints
* Added `AbstractPart::asDebugString()`

View File

@ -101,7 +101,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -111,7 +111,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -121,7 +121,7 @@ class Email extends Message
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getFrom(): array
{
@ -157,7 +157,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -167,7 +167,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -177,7 +177,7 @@ class Email extends Message
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getTo(): array
{
@ -185,7 +185,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -205,7 +205,7 @@ class Email extends Message
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getCc(): array
{
@ -213,7 +213,7 @@ class Email extends Message
}
/**
* @param Address|NamedAddress|string ...$addresses
* @param Address|string ...$addresses
*
* @return $this
*/
@ -233,7 +233,7 @@ class Email extends Message
}
/**
* @return (Address|NamedAddress)[]
* @return Address[]
*/
public function getBcc(): array
{
@ -524,10 +524,10 @@ class Email extends Message
private function addListAddressHeaderBody(string $name, array $addresses)
{
if (!$to = $this->getHeaders()->get($name)) {
if (!$header = $this->getHeaders()->get($name)) {
return $this->setListAddressHeaderBody($name, $addresses);
}
$to->addAddresses(Address::createArray($addresses));
$header->addAddresses(Address::createArray($addresses));
return $this;
}
@ -536,8 +536,8 @@ class Email extends Message
{
$addresses = Address::createArray($addresses);
$headers = $this->getHeaders();
if ($to = $headers->get($name)) {
$to->setAddresses($addresses);
if ($header = $headers->get($name)) {
$header->setAddresses($addresses);
} else {
$headers->addMailboxListHeader($name, $addresses);
}

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Mime\Header;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Exception\LogicException;
use Symfony\Component\Mime\NamedAddress;
/**
* A collection of headers.
@ -60,7 +59,7 @@ final class Headers
}
/**
* @param (NamedAddress|Address|string)[] $addresses
* @param (Address|string)[] $addresses
*
* @return $this
*/
@ -70,7 +69,7 @@ final class Headers
}
/**
* @param NamedAddress|Address|string $address
* @param Address|string $address
*
* @return $this
*/

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Mime\Header;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Exception\RfcComplianceException;
use Symfony\Component\Mime\NamedAddress;
/**
* A Mailbox MIME Header for something like Sender (one named address).
@ -67,7 +66,7 @@ final class MailboxHeader extends AbstractHeader
public function getBodyAsString(): string
{
$str = $this->address->getEncodedAddress();
if ($this->address instanceof NamedAddress && $name = $this->address->getName()) {
if ($name = $this->address->getName()) {
$str = $this->createPhrase($this, $name, $this->getCharset(), true).' <'.$str.'>';
}

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Mime\Header;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Exception\RfcComplianceException;
use Symfony\Component\Mime\NamedAddress;
/**
* A Mailbox list MIME Header for something like From, To, Cc, and Bcc (one or more named addresses).
@ -25,7 +24,7 @@ final class MailboxListHeader extends AbstractHeader
private $addresses = [];
/**
* @param (NamedAddress|Address)[] $addresses
* @param Address[] $addresses
*/
public function __construct(string $name, array $addresses)
{
@ -35,7 +34,7 @@ final class MailboxListHeader extends AbstractHeader
}
/**
* @param (NamedAddress|Address)[] $body
* @param Address[] $body
*
* @throws RfcComplianceException
*/
@ -47,7 +46,7 @@ final class MailboxListHeader extends AbstractHeader
/**
* @throws RfcComplianceException
*
* @return (NamedAddress|Address)[]
* @return Address[]
*/
public function getBody()
{
@ -57,7 +56,7 @@ final class MailboxListHeader extends AbstractHeader
/**
* Sets a list of addresses to be shown in this Header.
*
* @param (NamedAddress|Address)[] $addresses
* @param Address[] $addresses
*
* @throws RfcComplianceException
*/
@ -70,7 +69,7 @@ final class MailboxListHeader extends AbstractHeader
/**
* Sets a list of addresses to be shown in this Header.
*
* @param (NamedAddress|Address)[] $addresses
* @param Address[] $addresses
*
* @throws RfcComplianceException
*/
@ -90,7 +89,7 @@ final class MailboxListHeader extends AbstractHeader
}
/**
* @return (NamedAddress|Address)[]
* @return Address[]
*/
public function getAddresses(): array
{
@ -109,8 +108,8 @@ final class MailboxListHeader extends AbstractHeader
$strings = [];
foreach ($this->addresses as $address) {
$str = $address->getEncodedAddress();
if ($address instanceof NamedAddress && $name = $address->getName()) {
$str = $this->createPhrase($this, $name, $this->getCharset(), empty($strings)).' <'.$str.'>';
if ($name = $address->getName()) {
$str = $this->createPhrase($this, $name, $this->getCharset(), !$strings).' <'.$str.'>';
}
$strings[] = $str;
}

View File

@ -1,42 +0,0 @@
<?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;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
final class NamedAddress extends Address
{
private $name;
public function __construct(string $address, string $name)
{
parent::__construct($address);
$this->name = $name;
}
public function getName(): string
{
return $this->name;
}
public function getEncodedNamedAddress(): string
{
return ($n = $this->getName()) ? $n.' <'.$this->getEncodedAddress().'>' : $this->getEncodedAddress();
}
public function toString(): string
{
return $this->getEncodedNamedAddress();
}
}

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Mime\Tests;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\NamedAddress;
class AddressTest extends TestCase
{
@ -23,6 +22,12 @@ class AddressTest extends TestCase
$this->assertEquals('fabien@symfonï.com', $a->getAddress());
$this->assertEquals('fabien@xn--symfon-nwa.com', $a->toString());
$this->assertEquals('fabien@xn--symfon-nwa.com', $a->getEncodedAddress());
$a = new Address('fabien@symfonï.com', 'Fabien');
$this->assertEquals('Fabien', $a->getName());
$this->assertEquals('fabien@symfonï.com', $a->getAddress());
$this->assertEquals('Fabien <fabien@xn--symfon-nwa.com>', $a->toString());
$this->assertEquals('fabien@xn--symfon-nwa.com', $a->getEncodedAddress());
}
public function testConstructorWithInvalidAddress()
@ -34,7 +39,7 @@ class AddressTest extends TestCase
public function testCreate()
{
$this->assertSame($a = new Address('fabien@symfony.com'), Address::create($a));
$this->assertSame($b = new NamedAddress('helene@symfony.com', 'Helene'), Address::create($b));
$this->assertSame($b = new Address('helene@symfony.com', 'Helene'), Address::create($b));
$this->assertEquals($a, Address::create('fabien@symfony.com'));
}
@ -47,7 +52,7 @@ class AddressTest extends TestCase
public function testCreateArray()
{
$fabien = new Address('fabien@symfony.com');
$helene = new NamedAddress('helene@symfony.com', 'Helene');
$helene = new Address('helene@symfony.com', 'Helene');
$this->assertSame([$fabien, $helene], Address::createArray([$fabien, $helene]));
$this->assertEquals([$fabien], Address::createArray(['fabien@symfony.com']));

View File

@ -14,7 +14,6 @@ namespace Symfony\Component\Mime\Tests;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\NamedAddress;
use Symfony\Component\Mime\Part\DataPart;
use Symfony\Component\Mime\Part\Multipart\AlternativePart;
use Symfony\Component\Mime\Part\Multipart\MixedPart;
@ -58,7 +57,7 @@ class EmailTest extends TestCase
{
$e = new Email();
$helene = new Address('helene@symfony.com');
$thomas = new NamedAddress('thomas@symfony.com', 'Thomas');
$thomas = new Address('thomas@symfony.com', 'Thomas');
$caramel = new Address('caramel@symfony.com');
$this->assertSame($e, $e->from('fabien@symfony.com', $helene, $thomas));
@ -91,7 +90,7 @@ class EmailTest extends TestCase
{
$e = new Email();
$helene = new Address('helene@symfony.com');
$thomas = new NamedAddress('thomas@symfony.com', 'Thomas');
$thomas = new Address('thomas@symfony.com', 'Thomas');
$caramel = new Address('caramel@symfony.com');
$this->assertSame($e, $e->replyTo('fabien@symfony.com', $helene, $thomas));
@ -124,7 +123,7 @@ class EmailTest extends TestCase
{
$e = new Email();
$helene = new Address('helene@symfony.com');
$thomas = new NamedAddress('thomas@symfony.com', 'Thomas');
$thomas = new Address('thomas@symfony.com', 'Thomas');
$caramel = new Address('caramel@symfony.com');
$this->assertSame($e, $e->to('fabien@symfony.com', $helene, $thomas));
@ -157,7 +156,7 @@ class EmailTest extends TestCase
{
$e = new Email();
$helene = new Address('helene@symfony.com');
$thomas = new NamedAddress('thomas@symfony.com', 'Thomas');
$thomas = new Address('thomas@symfony.com', 'Thomas');
$caramel = new Address('caramel@symfony.com');
$this->assertSame($e, $e->cc('fabien@symfony.com', $helene, $thomas));
@ -190,7 +189,7 @@ class EmailTest extends TestCase
{
$e = new Email();
$helene = new Address('helene@symfony.com');
$thomas = new NamedAddress('thomas@symfony.com', 'Thomas');
$thomas = new Address('thomas@symfony.com', 'Thomas');
$caramel = new Address('caramel@symfony.com');
$this->assertSame($e, $e->bcc('fabien@symfony.com', $helene, $thomas));

View File

@ -14,7 +14,6 @@ namespace Symfony\Component\Mime\Tests\Header;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Header\MailboxHeader;
use Symfony\Component\Mime\NamedAddress;
class MailboxHeaderTest extends TestCase
{
@ -44,17 +43,17 @@ class MailboxHeaderTest extends TestCase
$header->setAddress(new Address('fabien@sïmfony.com'));
$this->assertEquals('fabien@xn--smfony-iwa.com', $header->getBodyAsString());
$header = new MailboxHeader('Sender', new NamedAddress('fabien@symfony.com', 'Fabien Potencier'));
$header = new MailboxHeader('Sender', new Address('fabien@symfony.com', 'Fabien Potencier'));
$this->assertEquals('Fabien Potencier <fabien@symfony.com>', $header->getBodyAsString());
$header = new MailboxHeader('Sender', new NamedAddress('fabien@symfony.com', 'Fabien Potencier, "from Symfony"'));
$header = new MailboxHeader('Sender', new Address('fabien@symfony.com', 'Fabien Potencier, "from Symfony"'));
$this->assertEquals('"Fabien Potencier, \"from Symfony\"" <fabien@symfony.com>', $header->getBodyAsString());
$header = new MailboxHeader('From', new NamedAddress('fabien@symfony.com', 'Fabien Potencier, \\escaped\\'));
$header = new MailboxHeader('From', new Address('fabien@symfony.com', 'Fabien Potencier, \\escaped\\'));
$this->assertEquals('"Fabien Potencier, \\\\escaped\\\\" <fabien@symfony.com>', $header->getBodyAsString());
$name = 'P'.pack('C', 0x8F).'tencier';
$header = new MailboxHeader('Sender', new NamedAddress('fabien@symfony.com', 'Fabien '.$name));
$header = new MailboxHeader('Sender', new Address('fabien@symfony.com', 'Fabien '.$name));
$header->setCharset('iso-8859-1');
$this->assertEquals('Fabien =?'.$header->getCharset().'?Q?P=8Ftencier?= <fabien@symfony.com>', $header->getBodyAsString());
}
@ -71,7 +70,7 @@ class MailboxHeaderTest extends TestCase
$header = new MailboxHeader('Sender', new Address('fabien@symfony.com'));
$this->assertEquals('Sender: fabien@symfony.com', $header->toString());
$header = new MailboxHeader('Sender', new NamedAddress('fabien@symfony.com', 'Fabien Potencier'));
$header = new MailboxHeader('Sender', new Address('fabien@symfony.com', 'Fabien Potencier'));
$this->assertEquals('Sender: Fabien Potencier <fabien@symfony.com>', $header->toString());
}
}

View File

@ -14,7 +14,6 @@ namespace Symfony\Component\Mime\Tests\Header;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Header\MailboxListHeader;
use Symfony\Component\Mime\NamedAddress;
class MailboxListHeaderTest extends TestCase
{
@ -28,7 +27,7 @@ class MailboxListHeaderTest extends TestCase
public function testMailboxIsRenderedForNameAddress()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris Corbyn')]);
$this->assertEquals(['Chris Corbyn <chris@swiftmailer.org>'], $header->getAddressStrings());
}
@ -40,32 +39,32 @@ class MailboxListHeaderTest extends TestCase
public function testQuotesInNameAreQuoted()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn, "DHE"')]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris Corbyn, "DHE"')]);
$this->assertEquals(['"Chris Corbyn, \"DHE\"" <chris@swiftmailer.org>'], $header->getAddressStrings());
}
public function testEscapeCharsInNameAreQuoted()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn, \\escaped\\')]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris Corbyn, \\escaped\\')]);
$this->assertEquals(['"Chris Corbyn, \\\\escaped\\\\" <chris@swiftmailer.org>'], $header->getAddressStrings());
}
public function testUtf8CharsInDomainAreIdnEncoded()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swïftmailer.org', 'Chris Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chris@swïftmailer.org', 'Chris Corbyn')]);
$this->assertEquals(['Chris Corbyn <chris@xn--swftmailer-78a.org>'], $header->getAddressStrings());
}
public function testUtf8CharsInLocalPartThrows()
{
$this->expectException('Symfony\Component\Mime\Exception\AddressEncoderException');
$header = new MailboxListHeader('From', [new NamedAddress('chrïs@swiftmailer.org', 'Chris Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chrïs@swiftmailer.org', 'Chris Corbyn')]);
$header->getAddressStrings();
}
public function testGetMailboxesReturnsNameValuePairs()
{
$header = new MailboxListHeader('From', $addresses = [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn, DHE')]);
$header = new MailboxListHeader('From', $addresses = [new Address('chris@swiftmailer.org', 'Chris Corbyn, DHE')]);
$this->assertEquals($addresses, $header->getAddresses());
}
@ -78,7 +77,7 @@ class MailboxListHeaderTest extends TestCase
public function testNameIsEncodedIfNonAscii()
{
$name = 'C'.pack('C', 0x8F).'rbyn';
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris '.$name)]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris '.$name)]);
$header->setCharset('iso-8859-1');
$addresses = $header->getAddressStrings();
$this->assertEquals('Chris =?'.$header->getCharset().'?Q?C=8Frbyn?= <chris@swiftmailer.org>', array_shift($addresses));
@ -92,7 +91,7 @@ class MailboxListHeaderTest extends TestCase
*/
$name = 'C'.pack('C', 0x8F).'rbyn';
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris '.$name)]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris '.$name)]);
$header->setCharset('iso-8859-1');
$addresses = $header->getAddressStrings();
$this->assertEquals('Chris =?'.$header->getCharset().'?Q?C=8Frbyn?= <chris@swiftmailer.org>', array_shift($addresses));
@ -100,13 +99,13 @@ class MailboxListHeaderTest extends TestCase
public function testGetValueReturnsMailboxStringValue()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris Corbyn')]);
$this->assertEquals('Chris Corbyn <chris@swiftmailer.org>', $header->getBodyAsString());
}
public function testGetValueReturnsMailboxStringValueForMultipleMailboxes()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@swiftmailer.org', 'Chris Corbyn'), new NamedAddress('mark@swiftmailer.org', 'Mark Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chris@swiftmailer.org', 'Chris Corbyn'), new Address('mark@swiftmailer.org', 'Mark Corbyn')]);
$this->assertEquals('Chris Corbyn <chris@swiftmailer.org>, Mark Corbyn <mark@swiftmailer.org>', $header->getBodyAsString());
}
@ -125,7 +124,7 @@ class MailboxListHeaderTest extends TestCase
public function testToString()
{
$header = new MailboxListHeader('From', [new NamedAddress('chris@example.org', 'Chris Corbyn'), new NamedAddress('mark@example.org', 'Mark Corbyn')]);
$header = new MailboxListHeader('From', [new Address('chris@example.org', 'Chris Corbyn'), new Address('mark@example.org', 'Mark Corbyn')]);
$this->assertEquals('From: Chris Corbyn <chris@example.org>, Mark Corbyn <mark@example.org>', $header->toString());
}
}

View File

@ -17,7 +17,6 @@ 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
@ -94,9 +93,9 @@ class MessageTest extends TestCase
public function testGetPreparedHeadersWithNamedFrom()
{
$message = new Message();
$message->getHeaders()->addMailboxListHeader('From', [new NamedAddress('fabien@symfony.com', 'Fabien')]);
$message->getHeaders()->addMailboxListHeader('From', [new Address('fabien@symfony.com', 'Fabien')]);
$h = $message->getPreparedHeaders();
$this->assertEquals(new MailboxListHeader('From', [new NamedAddress('fabien@symfony.com', 'Fabien')]), $h->get('From'));
$this->assertEquals(new MailboxListHeader('From', [new Address('fabien@symfony.com', 'Fabien')]), $h->get('From'));
$this->assertTrue($h->has('Message-Id'));
}

View File

@ -1,27 +0,0 @@
<?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\NamedAddress;
class NamedAddressTest extends TestCase
{
public function testConstructor()
{
$a = new NamedAddress('fabien@symfonï.com', 'Fabien');
$this->assertEquals('Fabien', $a->getName());
$this->assertEquals('fabien@symfonï.com', $a->getAddress());
$this->assertEquals('Fabien <fabien@xn--symfon-nwa.com>', $a->toString());
$this->assertEquals('fabien@xn--symfon-nwa.com', $a->getEncodedAddress());
}
}