Skip to content

Commit

Permalink
Fix 'Add support for headers in native mailer'
Browse files Browse the repository at this point in the history
  • Loading branch information
lyrixx committed Jun 19, 2019
1 parent 7ecbc9e commit 19eaa0f
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 6 deletions.
3 changes: 2 additions & 1 deletion DependencyInjection/Configuration.php
Expand Up @@ -175,7 +175,7 @@
* - subject: string
* - [level]: level name or int value, defaults to DEBUG
* - [bubble]: bool, defaults to true
* - [headers]: optional array containing additional headers
* - [headers]: optional array containing additional headers: ['Foo: Bar', '...']
*
* - socket:
* - connection_string: string
Expand Down Expand Up @@ -348,6 +348,7 @@ public function getConfigTreeBuilder()
->fixXmlConfig('excluded_http_code')
->fixXmlConfig('tag')
->fixXmlConfig('accepted_level')
->fixXmlConfig('header')
->canBeUnset()
->children()
->scalarNode('type')
Expand Down
2 changes: 1 addition & 1 deletion DependencyInjection/MonologExtension.php
Expand Up @@ -541,7 +541,7 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler
$handler['bubble'],
));
if (!empty($handler['headers'])) {
$definition->addMethodCall('addHeader', $handler['headers']);
$definition->addMethodCall('addHeader', [$handler['headers']]);
}
break;

Expand Down
8 changes: 4 additions & 4 deletions Resources/config/schema/monolog-1.0.xsd
Expand Up @@ -28,6 +28,7 @@
<xsd:element name="tag" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="accepted-level" type="level" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="to-email" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="header" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="priority" type="xsd:integer" />
Expand Down Expand Up @@ -88,7 +89,6 @@
<xsd:attribute name="content-type" type="xsd:string" />
<xsd:attribute name="webhook-url" type="xsd:string" />
<xsd:attribute name="slack-team" type="xsd:string" />
<xsd:attribute name="headers" type="headers" />
</xsd:complexType>

<xsd:simpleType name="level">
Expand Down Expand Up @@ -189,8 +189,8 @@
</xsd:complexType>

<xsd:complexType name="headers">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="header" type="xsd:string" />
</xsd:choice>
<xsd:sequence>
<xsd:any minOccurs="0" processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
11 changes: 11 additions & 0 deletions Tests/DependencyInjection/FixtureMonologExtensionTest.php
Expand Up @@ -216,6 +216,17 @@ public function testPsr3MessageProcessingDisabled()
$this->assertNotContains(array('pushProcessor', array(new Reference('monolog.processor.psr_log_message'))), $methodCalls, 'The PSR-3 processor should not be enabled', false, false);
}

public function testNativeMailer()
{
$container = $this->getContainer('native_mailer');

$logger = $container->getDefinition('monolog.handler.mailer');
$methodCalls = $logger->getMethodCalls();

$this->assertCount(2, $methodCalls);
$this->assertSame(['addHeader', [['Foo: bar', 'Baz: inga']]], $methodCalls[1]);
}

protected function getContainer($fixture)
{
$container = new ContainerBuilder();
Expand Down
15 changes: 15 additions & 0 deletions Tests/DependencyInjection/Fixtures/xml/native_mailer.xml
@@ -0,0 +1,15 @@
<?xml version="1.0" ?>

<srv:container xmlns="http://symfony.com/schema/dic/monolog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:srv="http://symfony.com/schema/dic/services"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/monolog http://symfony.com/schema/dic/monolog/monolog-1.0.xsd">

<config>
<handler name="mailer" type="native_mailer" to-email="foo@example.com" from-email="bar@example.com" subject="a subject">
<header>Foo: bar</header>
<header>Baz: inga</header>
</handler>
</config>
</srv:container>
10 changes: 10 additions & 0 deletions Tests/DependencyInjection/Fixtures/yml/native_mailer.yml
@@ -0,0 +1,10 @@
monolog:
handlers:
mailer:
type: native_mailer
from_email: foo@example.com
to_email: bar@exemple.com
subject: a subject
headers:
- "Foo: bar"
- "Baz: inga"

0 comments on commit 19eaa0f

Please sign in to comment.