8000 [FrameworkBundle] Add missing mailer transports in xsd · symfony/symfony@c21df9b · GitHub
[go: up one dir, main page]

Skip to content

Commit c21df9b

Browse files
committed
[FrameworkBundle] Add missing mailer transports in xsd
1 parent d6b9936 commit c21df9b

File tree

8 files changed

+87
-3
lines changed

8 files changed

+87
-3
lines changed

src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,11 +571,16 @@
571571

572572
<xsd:complexType name="mailer">
573573
<xsd:sequence>
574+
<xsd:element name="transport" type="mailer_transport" minOccurs="0" maxOccurs="unbounded" />
574575
<xsd:element name="envelope" type="mailer_envelope" minOccurs="0" maxOccurs="1" />
575576
</xsd:sequence>
576577
<xsd:attribute name="dsn" type="xsd:string" />
577578
</xsd:complexType>
578579

580+
<xsd:complexType name="mailer_transport" mixed="true">
581+
<xsd:attribute name="name" type="xsd:string" use="required" />
582+
</xsd:complexType>
583+
579584
<xsd:complexType name="mailer_envelope">
580585
<xsd:sequence>
581586
<xsd:element name="sender" type="xsd:string" minOccurs="0" maxOccurs="1" />
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
return static function (ContainerConfigurator $container) {
6+
$container->extension('framework', [
7+
'mailer' => [
8+
'dsn' => 'smtp://example.com',
9+
'envelope' => [
10+
'sender' => 'sender@example.org',
11+
'recipients' => ['redirected@example.org', 'redirected1@example.org'],
12+
],
13+
],
14+
]);
15+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
return static function (ContainerConfigurator $container) {
6+
$container->extension('framework', [
7+
'mailer' => [
8+
'transports' => [
9+
'transport1' => 'smtp://example1.com',
10+
'transport2' => 'smtp://example2.com',
11+
],
12+
'envelope' => [
13+
'sender' => 'sender@example.org',
14+
'recipients' => ['redirected@example.org', 'redirected1@example.org'],
15+
],
16+
],
17+
]);
18+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xmlns:framework="http://symfony.com/schema/dic/symfony"
6+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
7+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
8+
9+
<framework:config>
10+
<framework:mailer>
11+
<framework:transport name="transport1">smtp://example1.com</framework:transport>
12+
<framework:transport name="transport2">smtp://example2.com</framework:transport>
13+
<framework:envelope>
14+
<framework:sender>sender@example.org</framework:sender>
15+
<framework:recipients>redirected@example.org</framework:recipients>
16+
<framework:recipients>redirected1@example.org</framework:recipients>
17+
</framework:envelope>
18+
</framework:mailer>
19+
</framework:config>
20+
</container>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
framework:
2+
mailer:
3+
transports:
4+
transport1: 'smtp://example1.com'
5+
transport2: 'smtp://example2.com'
6+
envelope:
7+
sender: sender@example.org
8+
recipients:
9+
- redirected@example.org
10+
- redirected1@example.org

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1617,13 +1617,29 @@ public function testHttpClientFullDefaultOptions()
16171617
], $defaultOptions['peer_fingerprint']);
16181618
}
16191619

1620-
public function testMailer(): void
1620+
public function provideMailer(): array
1621+
{
1622+
return [
1623+
['mailer_with_dsn', ['main' => 'smtp://example.com']],
1624+
['mailer_with_transports', [
1625+
'transport1' => 'smtp://example1.com',
1626+
'transport2' => 'smtp://example2.com',
1627+
]],
1628+
];
1629+
}
1630+
1631+
/**
1632+
* @dataProvider provideMailer
1633+
*/
1634+
public function testMailer(string $configFile, array $expectedTransports): void
16211635
{
1622-
$container = $this->createContainerFromFile('mailer');
1636+
$container = $this->createContainerFromFile($configFile);
16231637

16241638
$this->assertTrue($container->hasAlias('mailer'));
1639+
$this->assertTrue($container->hasDefinition('mailer.transports'));
1640+
$this->assertSame($expectedTransports, $container->getDefinition('mailer.transports')->getArgument(0));
16251641
$this->assertTrue($container->hasDefinition('mailer.default_transport'));
1626-
$this->assertSame('smtp://example.com', $container->getDefinition('mailer.default_transport')->getArgument(0));
1642+
$this->assertSame(current($expectedTransports), $container->getDefinition('mailer.default_transport')->getArgument(0));
16271643
$this->assertTrue($container->hasDefinition('mailer.envelope_listener'));
16281644
$l = $container->getDefinition('mailer.envelope_listener');
16291645
$this->assertSame('sender@example.org', $l->getArgument(0));

0 commit comments

Comments
 (0)
0