mirror of
https://github.com/retailcrm/mailgun-php.git
synced 2025-02-06 08:19:25 +03:00
Bug fix - Allow adding custom headers with non-array value (#255)
* Bug fix - Allow adding custom headers with non-array value * Remove whitespace * Functional test for adding custom headers (either singular or multiple) * Style fixes for functional test
This commit is contained in:
parent
64d1c40604
commit
d2638a0457
@ -248,7 +248,16 @@ class MessageBuilder
|
|||||||
if (!preg_match('/^h:/i', $headerName)) {
|
if (!preg_match('/^h:/i', $headerName)) {
|
||||||
$headerName = 'h:'.$headerName;
|
$headerName = 'h:'.$headerName;
|
||||||
}
|
}
|
||||||
$this->message[$headerName] = [$headerData];
|
|
||||||
|
if (array_key_exists($headerName, $this->message)) {
|
||||||
|
if (is_array($this->message[$headerName])) {
|
||||||
|
$this->message[$headerName][] = $headerData;
|
||||||
|
} else {
|
||||||
|
$this->message[$headerName] = [$this->message[$headerName], $headerData];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->message[$headerName] = $headerData;
|
||||||
|
}
|
||||||
|
|
||||||
return $this->message[$headerName];
|
return $this->message[$headerName];
|
||||||
}
|
}
|
||||||
|
41
tests/Functional/MessageBuilderHeaderTest.php
Normal file
41
tests/Functional/MessageBuilderHeaderTest.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013-2016 Mailgun
|
||||||
|
*
|
||||||
|
* This software may be modified and distributed under the terms
|
||||||
|
* of the MIT license. See the LICENSE file for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Mailgun\Tests\Functional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author James Kraus <jkraus@imagineteam.com>
|
||||||
|
*/
|
||||||
|
class MessageBuilderHeaderTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testSimpleExample()
|
||||||
|
{
|
||||||
|
$messageValidator = function ($headers) {
|
||||||
|
$this->assertContains(['name' => 'h:My-Singular-Header', 'contents' => '123'], $headers);
|
||||||
|
$this->assertContains(['name' => 'h:My-Plural-Header[0]', 'contents' => '123'], $headers);
|
||||||
|
$this->assertContains(['name' => 'h:My-Plural-Header[1]', 'contents' => '456'], $headers);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Create the mocked mailgun client.
|
||||||
|
$mailgun = MockedMailgun::create($this, 'POST', 'domain/messages', [], $messageValidator);
|
||||||
|
|
||||||
|
$builder = $mailgun->MessageBuilder();
|
||||||
|
|
||||||
|
$builder->addCustomHeader('My-Singular-Header', '123');
|
||||||
|
$builder->addCustomHeader('My-Plural-Header', '123');
|
||||||
|
$builder->addCustomHeader('My-Plural-Header', '456');
|
||||||
|
|
||||||
|
$builder->setFromAddress('from@example.com');
|
||||||
|
$builder->addToRecipient('to@example.com');
|
||||||
|
$builder->setSubject('Foo');
|
||||||
|
$builder->setTextBody('Bar');
|
||||||
|
|
||||||
|
$mailgun->sendMessage('domain', $builder->getMessage());
|
||||||
|
}
|
||||||
|
}
|
@ -133,7 +133,16 @@ class MessageBuilderTest extends \Mailgun\Tests\MailgunTestCase
|
|||||||
$message = $this->client->MessageBuilder();
|
$message = $this->client->MessageBuilder();
|
||||||
$message->addCustomHeader('My-Header', '123');
|
$message->addCustomHeader('My-Header', '123');
|
||||||
$messageObj = $message->getMessage();
|
$messageObj = $message->getMessage();
|
||||||
$this->assertEquals(['h:My-Header' => ['123']], $messageObj);
|
$this->assertEquals(['h:My-Header' => '123'], $messageObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAddMultipleCustomHeader()
|
||||||
|
{
|
||||||
|
$message = $this->client->MessageBuilder();
|
||||||
|
$message->addCustomHeader('My-Header', '123');
|
||||||
|
$message->addCustomHeader('My-Header', '456');
|
||||||
|
$messageObj = $message->getMessage();
|
||||||
|
$this->assertEquals(['h:My-Header' => ['123', '456']], $messageObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSetTextBody()
|
public function testSetTextBody()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user