1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* MtMail - e-mail module for Zend Framework 2 |
4
|
|
|
* |
5
|
|
|
* @link http://github.com/mtymek/MtMail |
6
|
|
|
* @copyright Copyright (c) 2013-2014 Mateusz Tymek |
7
|
|
|
* @license BSD 2-Clause |
8
|
|
|
*/ |
9
|
|
|
|
10
|
|
|
namespace MtMailTest\Plugin; |
11
|
|
|
|
12
|
|
|
use MtMail\Event\ComposerEvent; |
13
|
|
|
use MtMail\ComposerPlugin\DefaultHeaders; |
14
|
|
|
use MtMailTest\Test\HeaderObjectProviderTemplate; |
15
|
|
|
use MtMailTest\Test\HeadersProviderTemplate; |
16
|
|
|
use PHPUnit\Framework\TestCase; |
17
|
|
|
use Zend\Mail\Headers; |
18
|
|
|
use Zend\Mail\Header\Subject; |
19
|
|
|
use Zend\Mail\Message; |
20
|
|
|
|
21
|
|
|
class DefaultHeadersTest extends TestCase |
22
|
|
|
{ |
23
|
|
|
/** |
24
|
|
|
* @var DefaultHeaders |
25
|
|
|
*/ |
26
|
|
|
protected $plugin; |
27
|
|
|
|
28
|
|
|
public function setUp() |
29
|
|
|
{ |
30
|
|
|
$this->plugin = new DefaultHeaders(); |
31
|
|
|
} |
32
|
|
|
|
33
|
|
|
public function testLayoutHeadersIsMutable() |
34
|
|
|
{ |
35
|
|
|
$this->plugin->setHeaders(['from' => '[email protected]']); |
36
|
|
|
$this->assertEquals(['from' => '[email protected]'], $this->plugin->getHeaders()); |
37
|
|
|
} |
38
|
|
|
|
39
|
|
|
public function testInjectDefaultHeadersSetsHeaders() |
40
|
|
|
{ |
41
|
|
|
$this->plugin->setHeaders([ |
42
|
|
|
'from' => '[email protected]', |
43
|
|
|
'subject' => 'Hello!', |
44
|
|
|
]); |
45
|
|
|
$headers = $this->prophesize(Headers::class); |
46
|
|
|
$headers->setEncoding("ASCII")->shouldBeCalled(); |
47
|
|
|
$headers->addHeaderLine('from', '[email protected]')->shouldBeCalled(); |
48
|
|
|
$headers->addHeaderLine('subject', 'Hello!')->shouldBeCalled(); |
49
|
|
|
$message = new Message(); |
50
|
|
|
$message->setHeaders($headers->reveal()); |
51
|
|
|
$event = new ComposerEvent(); |
52
|
|
|
$event->setMessage($message); |
53
|
|
|
$this->plugin->injectDefaultHeaders($event); |
54
|
|
|
} |
55
|
|
|
|
56
|
|
|
public function testPluginCanInjectTemplateSpecificHeaders() |
57
|
|
|
{ |
58
|
|
|
$headers = $this->prophesize(Headers::class); |
59
|
|
|
$headers->setEncoding("ASCII")->shouldBeCalled(); |
60
|
|
|
$headers->addHeaderLine('subject', 'Default subject')->shouldBeCalled(); |
61
|
|
|
$template = new HeadersProviderTemplate(); |
62
|
|
|
$message = new Message(); |
63
|
|
|
$message->setHeaders($headers->reveal()); |
64
|
|
|
$event = new ComposerEvent(); |
65
|
|
|
$event->setMessage($message); |
66
|
|
|
$event->setTemplate($template); |
67
|
|
|
$this->plugin->injectDefaultHeaders($event); |
68
|
|
|
} |
69
|
|
|
|
70
|
|
|
public function testPluginCanInjectHeaderObjects() |
71
|
|
|
{ |
72
|
|
|
$subject = (new Subject())->setSubject('Hello!'); |
73
|
|
|
$this->plugin->setHeaders([ |
74
|
|
|
'subject' => $subject, |
75
|
|
|
]); |
76
|
|
|
|
77
|
|
|
$headers = $this->getMock('Zend\Mail\Headers', ['addHeader']); |
|
|
|
|
78
|
|
|
$headers->expects($this->at(0))->method('addHeader')->with($subject); |
79
|
|
|
$message = new Message(); |
80
|
|
|
$message->setHeaders($headers); |
81
|
|
|
$event = new ComposerEvent(); |
82
|
|
|
$event->setMessage($message); |
83
|
|
|
$this->plugin->injectDefaultHeaders($event); |
84
|
|
|
} |
85
|
|
|
|
86
|
|
|
public function testPluginCanInjectTemplateSpecificHeaderObjects() |
87
|
|
|
{ |
88
|
|
|
$headers = $this->getMock('Zend\Mail\Headers', ['addHeader']); |
|
|
|
|
89
|
|
|
$headers->expects($this->at(0))->method('addHeader')->with((new Subject())->setSubject('Default subject')); |
90
|
|
|
$template = new HeaderObjectProviderTemplate(); |
91
|
|
|
$message = new Message(); |
92
|
|
|
$message->setHeaders($headers); |
93
|
|
|
$event = new ComposerEvent(); |
94
|
|
|
$event->setMessage($message); |
95
|
|
|
$event->setTemplate($template); |
96
|
|
|
$this->plugin->injectDefaultHeaders($event); |
97
|
|
|
} |
98
|
|
|
} |
99
|
|
|
|
This method has been deprecated. The supplier of the class has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.