[Mailer] fixed wrong behavior

This commit is contained in:
Fabien Potencier 2019-09-02 16:39:38 +02:00
parent 9e0640a281
commit e15df84313
2 changed files with 52 additions and 1 deletions

View File

@ -0,0 +1,51 @@
<?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\Mailer\Tests\Transport;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\Transport\TransportInterface;
use Symfony\Component\Mailer\Transport\Transports;
use Symfony\Component\Mime\Header\Headers;
use Symfony\Component\Mime\Message;
use Symfony\Component\Mime\Part\TextPart;
class TransportsTest extends TestCase
{
public function testDefaultTransport()
{
$transport = new Transports([
'foo' => $foo = $this->createMock(TransportInterface::class),
'bar' => $bar = $this->createMock(TransportInterface::class),
]);
$foo->expects($this->once())->method('send');
$bar->expects($this->never())->method('send');
$email = new Message(new Headers(), new TextPart('...'));
$transport->send($email);
}
public function testOverrideTransport()
{
$transport = new Transports([
'foo' => $foo = $this->createMock(TransportInterface::class),
'bar' => $bar = $this->createMock(TransportInterface::class),
]);
$foo->expects($this->never())->method('send');
$bar->expects($this->once())->method('send');
$headers = (new Headers())->addTextHeader('X-Transport', 'bar');
$email = new Message($headers, new TextPart('...'));
$transport->send($email);
}
}

View File

@ -52,7 +52,7 @@ class Transports implements TransportInterface
}
$headers = $message->getHeaders();
$transport = $headers->get('X-Transport');
$transport = $headers->get('X-Transport')->getBody();
$headers->remove('X-Transport');
if (!isset($this->transports[$transport])) {