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 
4 require_once 'Services/Mail/test/ilMailBaseTest.php';
5 require_once 'Services/Mail/classes/Mime/Transport/class.ilMailMimeTransportFactory.php';
6 require_once 'Services/Mail/classes/Mime/Transport/interface.ilMailMimeTransport.php';
7 require_once 'Services/Mail/classes/Mime/Sender/class.ilMailMimeSenderFactory.php';
8 require_once 'Services/Mail/classes/Mime/Sender/class.ilMailMimeSenderUser.php';
9 require_once 'Services/User/classes/class.ilObjUser.php';
10 require_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 }
static setDefaultTransport($transport)
testFactoryWillReturnUserSenderForExistingUserId()
$factory
Definition: metadata.php:47
testTransportFactoryWillReturnSendmailTransportIfSmtpTransportIsDisabled()
testFactoryWillReturnSystemSenderForAnonymousUserId()
testFactoryWillReturnSystemSenderWhenExplicitlyRequested()
static addUserToCache($usrId, \ilObjUser $user)
testMimMailDelegatesEmailDeliveryToDefaultTransport()
testMimMailDelegatesEmailDeliveryToThePassedTransporter()
Create styles array
The data for the language used.
setGlobalVariable($name, $value)
testTransportFactoryWillReturnNullTransportIfExternalEmailDeliveryIsDisabled()
testFactoryWillReturnUserSenderWhenExplicitlyRequested()
testTransportFactoryWillReturnSmtpTransportIfEnabled()
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27
$key
Definition: croninfo.php:18