/
EsmtpTransportFactoryTest.php
85 lines (68 loc) · 2.53 KB
/
EsmtpTransportFactoryTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
namespace Symfony\Component\Mailer\Tests\Transport\Smtp;
use Symfony\Component\Mailer\Test\TransportFactoryTestCase;
use Symfony\Component\Mailer\Transport\Dsn;
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransportFactory;
use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream;
use Symfony\Component\Mailer\Transport\TransportFactoryInterface;
class EsmtpTransportFactoryTest extends TransportFactoryTestCase
{
public function getFactory(): TransportFactoryInterface
{
return new EsmtpTransportFactory($this->getDispatcher(), $this->getClient(), $this->getLogger());
}
public function supportsProvider(): iterable
{
yield [
new Dsn('smtp', 'example.com'),
true,
];
yield [
new Dsn('smtps', 'example.com'),
true,
];
yield [
new Dsn('api', 'example.com'),
false,
];
}
public function createProvider(): iterable
{
$eventDispatcher = $this->getDispatcher();
$logger = $this->getLogger();
$transport = new EsmtpTransport('localhost', 25, false, $eventDispatcher, $logger);
yield [
new Dsn('smtp', 'localhost'),
$transport,
];
$transport = new EsmtpTransport('example.com', 99, true, $eventDispatcher, $logger);
$transport->setUsername(self::USER);
$transport->setPassword(self::PASSWORD);
yield [
new Dsn('smtps', 'example.com', self::USER, self::PASSWORD, 99),
$transport,
];
$transport = new EsmtpTransport('example.com', 465, true, $eventDispatcher, $logger);
yield [
new Dsn('smtps', 'example.com'),
$transport,
];
$transport = new EsmtpTransport('example.com', 465, true, $eventDispatcher, $logger);
yield [
new Dsn('smtps', 'example.com', '', '', 465),
$transport,
];
$transport = new EsmtpTransport('example.com', 465, true, $eventDispatcher, $logger);
/** @var SocketStream $stream */
$stream = $transport->getStream();
$streamOptions = $stream->getStreamOptions();
$streamOptions['ssl']['verify_peer'] = false;
$streamOptions['ssl']['verify_peer_name'] = false;
$stream->setStreamOptions($streamOptions);
yield [
new Dsn('smtps', 'example.com', '', '', 465, ['verify_peer' => false]),
$transport,
];
}
}