Skip to content

Commit 4b31dc6

Browse files
Merge branch '7.2' into 7.3
* 7.2: remove useless @legacy annotation [Mailer] [Transport] Send clone of `RawMessage` instance in `RoundRobinTransport`
2 parents cde2156 + e8401ca commit 4b31dc6

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

src/Symfony/Component/Mailer/Bridge/Mailgun/Tests/Transport/MailgunApiTransportTest.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,6 @@ public function testCustomHeader()
9898
$this->assertEquals('amp-html-value', $payload['amp-html']);
9999
}
100100

101-
/**
102-
* @legacy
103-
*/
104101
public function testPrefixHeaderWithH()
105102
{
106103
$email = new Email();

src/Symfony/Component/Mailer/Tests/Transport/RoundRobinTransportTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
1717
use Symfony\Component\Mailer\Transport\RoundRobinTransport;
1818
use Symfony\Component\Mailer\Transport\TransportInterface;
19+
use Symfony\Component\Mime\Header\Headers;
20+
use Symfony\Component\Mime\Message;
1921
use Symfony\Component\Mime\RawMessage;
2022

2123
/**
@@ -144,6 +146,27 @@ public function testSendOneDeadAndRecoveryWithinRetryPeriod()
144146
$this->assertTransports($t, 1, []);
145147
}
146148

149+
public function testSendOneDeadMessageAlterationsDoNotPersist()
150+
{
151+
$t1 = $this->createMock(TransportInterface::class);
152+
$t1->expects($this->once())->method('send')
153+
->willReturnCallback(function (Message $message) {
154+
$message->getHeaders()->addTextHeader('X-Transport-1', 'value');
155+
throw new TransportException();
156+
});
157+
$t2 = $this->createMock(TransportInterface::class);
158+
$t2->expects($this->once())->method('send');
159+
$t = new RoundRobinTransport([$t1, $t2]);
160+
$p = new \ReflectionProperty($t, 'cursor');
161+
$p->setValue($t, 0);
162+
$headers = new Headers();
163+
$headers->addTextHeader('X-Shared', 'value');
164+
$message = new Message($headers);
165+
$t->send($message);
166+
$this->assertSame($message->getHeaders()->get('X-Shared')->getBody(), 'value');
167+
$this->assertFalse($message->getHeaders()->has('X-Transport-1'));
168+
}
169+
147170
public function testFailureDebugInformation()
148171
{
149172
$t1 = $this->createMock(TransportInterface::class);

src/Symfony/Component/Mailer/Transport/RoundRobinTransport.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public function send(RawMessage $message, ?Envelope $envelope = null): ?SentMess
5050

5151
while ($transport = $this->getNextTransport()) {
5252
try {
53-
return $transport->send($message, $envelope);
53+
return $transport->send(clone $message, $envelope);
5454
} catch (TransportExceptionInterface $e) {
5555
$exception ??= new TransportException('All transports failed.');
5656
$exception->appendDebug(\sprintf("Transport \"%s\": %s\n", $transport, $e->getDebug()));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy