ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilMailMimeTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/Mail/test/ilMailBaseTest.php';
5require_once 'Services/Mail/classes/Mime/Transport/class.ilMailMimeTransportFactory.php';
6require_once 'Services/Mail/classes/Mime/Transport/interface.ilMailMimeTransport.php';
7require_once 'Services/Mail/classes/Mime/Sender/class.ilMailMimeSenderFactory.php';
8require_once 'Services/Mail/classes/Mime/Sender/class.ilMailMimeSenderUser.php';
9require_once 'Services/User/classes/class.ilObjUser.php';
10require_once 'Services/Mail/classes/class.ilMimeMail.php';
11
16{
20 const USER_ID = 6;
21
25 protected function setUp()
26 {
27 if (!defined('ANONYMOUS_USER_ID')) {
28 define('ANONYMOUS_USER_ID', 13);
29 }
30
32 \ilMailMimeSenderUser::addUserToCache(self::USER_ID, $this->getUserById(self::USER_ID));
33
34 parent::setUp();
35 }
36
41 {
42 $defaultTransport = $this->getMockBuilder('\ilMailMimeTransport')->getMock();
43 $defaultTransport->expects($this->never())->method('send');
44
45 $transport = $this->getMockBuilder('\ilMailMimeTransport')->getMock();
46 $transport->expects($this->once())->method('send');
47
48 $transportFactory = $this->getMockBuilder('\ilMailMimeTransportFactory')->disableOriginalConstructor()->getMock();
49 $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
50 $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
51
52 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
53 $this->setGlobalVariable('ilSetting', $settings);
54
55 $mail = new \ilMimeMail();
56 $mail->send($transport);
57 }
58
63 {
64 $defaultTransport = $this->getMockBuilder('\ilMailMimeTransport')->getMock();
65 $defaultTransport->expects($this->once())->method('send');
66
67 $transportFactory = $this->getMockBuilder('\ilMailMimeTransportFactory')->disableOriginalConstructor()->getMock();
68 $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
69 $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
70
71 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
72 $this->setGlobalVariable('ilSetting', $settings);
73
74 $mail = new \ilMimeMail();
75 $mail->send();
76 }
77
82 {
83 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
84 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
85 if ('mail_allow_external' == $key) {
86 return false;
87 }
88
89 return true;
90 }));
91 $this->setGlobalVariable('ilSetting', $settings);
92
93 $factory = new \ilMailMimeTransportFactory($settings);
94 $this->assertInstanceOf('\ilMailMimeTransportNull', $factory->getTransport());
95 }
96
101 {
102 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
103 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
104 if ('mail_allow_external' == $key) {
105 return true;
106 }
107
108
109 if ('mail_smtp_status' == $key) {
110 return true;
111 }
112
113 return true;
114 }));
115 $this->setGlobalVariable('ilSetting', $settings);
116
117 $factory = new \ilMailMimeTransportFactory($settings);
118 $this->assertInstanceOf('\ilMailMimeTransportSmtp', $factory->getTransport());
119 }
120
125 {
126 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
127 $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
128 if ('mail_allow_external' == $key) {
129 return true;
130 }
131
132
133 if ('mail_smtp_status' == $key) {
134 return false;
135 }
136
137 return true;
138 }));
139 $this->setGlobalVariable('ilSetting', $settings);
140
141 $factory = new \ilMailMimeTransportFactory($settings);
142 $this->assertInstanceOf('\ilMailMimeTransportSendMail', $factory->getTransport());
143 }
144
149 {
150 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
151
152 $factory = new \ilMailMimeSenderFactory($settings);
153 $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->getSenderByUsrId(\ANONYMOUS_USER_ID));
154 }
155
160 {
161 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
162
163 $factory = new \ilMailMimeSenderFactory($settings);
164 $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->system());
165 }
166
171 protected function getUserById($usrId)
172 {
173 $user = $this->getMockBuilder('\ilObjUser')->disableOriginalConstructor()->setMethods(
174 array()
175 )->getMock();
176 $user->expects($this->any())->method('getId')->will($this->returnValue($usrId));
177
178 return $user;
179 }
180
185 {
186 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
187
188 $factory = new \ilMailMimeSenderFactory($settings);
189 $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->getSenderByUsrId(self::USER_ID));
190 }
191
196 {
197 $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->setMethods(array('set', 'get'))->getMock();
198
199 $factory = new \ilMailMimeSenderFactory($settings);
200 $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->user(self::USER_ID));
201 }
202}
$factory
Definition: metadata.php:47
An exception for terminatinating execution or to throw for unit testing.
setGlobalVariable($name, $value)
static addUserToCache($usrId, \ilObjUser $user)
testFactoryWillReturnUserSenderForExistingUserId()
testMimMailDelegatesEmailDeliveryToThePassedTransporter()
testMimMailDelegatesEmailDeliveryToDefaultTransport()
testTransportFactoryWillReturnNullTransportIfExternalEmailDeliveryIsDisabled()
testFactoryWillReturnUserSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderWhenExplicitlyRequested()
testFactoryWillReturnSystemSenderForAnonymousUserId()
testTransportFactoryWillReturnSendmailTransportIfSmtpTransportIsDisabled()
testTransportFactoryWillReturnSmtpTransportIfEnabled()
static setDefaultTransport($transport)
$key
Definition: croninfo.php:18
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27