ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilMailMimeTest.php
Go to the documentation of this file.
1 <?php declare(strict_types=1);
2 
3 /* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
10 {
11  const USER_ID = 6;
12 
16  protected function setUp() : void
17  {
18  if (!defined('ANONYMOUS_USER_ID')) {
19  define('ANONYMOUS_USER_ID', 13);
20  }
21 
23  ilMailMimeSenderUserById::addUserToCache(self::USER_ID, $this->getUserById(self::USER_ID));
24 
25  parent::setUp();
26  }
27 
32  {
33  $defaultTransport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
34  $defaultTransport->expects($this->never())->method('send');
35 
36  $transport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
37  $transport->expects($this->once())->method('send');
38 
39  $transportFactory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
40  $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
41  $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
42 
43  $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->onlyMethods([
44  'set',
45  'get'
46  ])->getMock();
47  $this->setGlobalVariable('ilSetting', $settings);
48 
49  $mail = new ilMimeMail();
50  $mail->send($transport);
51  }
52 
57  {
58  $defaultTransport = $this->getMockBuilder(ilMailMimeTransport::class)->getMock();
59  $defaultTransport->expects($this->once())->method('send');
60 
61  $transportFactory = $this->getMockBuilder(ilMailMimeTransportFactory::class)->disableOriginalConstructor()->getMock();
62  $transportFactory->expects($this->any())->method('getTransport')->will($this->returnValue($defaultTransport));
63  $this->setGlobalVariable('mail.mime.transport.factory', $transportFactory);
64 
65  $settings = $this->getMockBuilder('\ilSetting')->disableOriginalConstructor()->onlyMethods([
66  'set',
67  'get'
68  ])->getMock();
69  $this->setGlobalVariable('ilSetting', $settings);
70 
71  $mail = new ilMimeMail();
72  $mail->send();
73  }
74 
79  {
80  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
81  'set',
82  'get'
83  ])->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  $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
94  'raise',
95  ])->getMock();
96 
97  $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
98  $this->assertInstanceOf('\ilMailMimeTransportNull', $factory->getTransport());
99  }
100 
105  {
106  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
107  'set',
108  'get'
109  ])->getMock();
110  $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
111  if ('mail_allow_external' == $key) {
112  return true;
113  }
114 
115 
116  if ('mail_smtp_status' == $key) {
117  return true;
118  }
119 
120  return true;
121  }));
122  $this->setGlobalVariable('ilSetting', $settings);
123 
124  $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
125  'raise',
126  ])->getMock();
127 
128  $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
129  $this->assertInstanceOf('\ilMailMimeTransportSmtp', $factory->getTransport());
130  }
131 
136  {
137  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
138  'set',
139  'get'
140  ])->getMock();
141 
142  $settings->expects($this->any())->method('get')->will($this->returnCallback(function ($key) {
143  if ('mail_allow_external' == $key) {
144  return true;
145  }
146 
147 
148  if ('mail_smtp_status' == $key) {
149  return false;
150  }
151 
152  return true;
153  }));
154  $this->setGlobalVariable('ilSetting', $settings);
155 
156  $eventHandler = $this->getMockBuilder(ilAppEventHandler::class)->disableOriginalConstructor()->onlyMethods([
157  'raise',
158  ])->getMock();
159 
160  $factory = new ilMailMimeTransportFactory($settings, $eventHandler);
161  $this->assertInstanceOf('\ilMailMimeTransportSendMail', $factory->getTransport());
162  }
163 
168  {
169  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
170  'set',
171  'get'
172  ])->getMock();
173 
174  $factory = new ilMailMimeSenderFactory($settings);
175  $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->getSenderByUsrId(ANONYMOUS_USER_ID));
176  }
177 
182  {
183  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
184  'set',
185  'get'
186  ])->getMock();
187 
188  $factory = new ilMailMimeSenderFactory($settings);
189  $this->assertInstanceOf('\ilMailMimeSenderSystem', $factory->system());
190  }
191 
197  protected function getUserById(int $usrId) : ilObjUser
198  {
199  $user = $this->getMockBuilder(ilObjUser::class)
200  ->disableOriginalConstructor()
201  ->onlyMethods(['getId'])
202  ->getMock();
203  $user->expects($this->any())->method('getId')->will($this->returnValue($usrId));
204 
205  return $user;
206  }
207 
212  {
213  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
214  'set',
215  'get'
216  ])->getMock();
217 
218  $factory = new ilMailMimeSenderFactory($settings);
219  $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->getSenderByUsrId(self::USER_ID));
220  }
221 
226  {
227  $settings = $this->getMockBuilder(ilSetting::class)->disableOriginalConstructor()->onlyMethods([
228  'set',
229  'get'
230  ])->getMock();
231 
232  $factory = new ilMailMimeSenderFactory($settings);
233  $this->assertInstanceOf('\ilMailMimeSenderUser', $factory->user(self::USER_ID));
234  }
235 }
static addUserToCache(int $usrId, ilObjUser $user)
Class ilMailMimeSenderFactory.
const ANONYMOUS_USER_ID
Definition: constants.php:25
testFactoryWillReturnUserSenderForExistingUserId()
static setDefaultTransport(?ilMailMimeTransport $transport)
testTransportFactoryWillReturnSendmailTransportIfSmtpTransportIsDisabled()
testFactoryWillReturnSystemSenderForAnonymousUserId()
testFactoryWillReturnSystemSenderWhenExplicitlyRequested()
Class ilMailBaseTest.
setGlobalVariable(string $name, $value)
testMimMailDelegatesEmailDeliveryToDefaultTransport()
Class ilMimeMail.
testMimMailDelegatesEmailDeliveryToThePassedTransporter()
testTransportFactoryWillReturnNullTransportIfExternalEmailDeliveryIsDisabled()
testFactoryWillReturnUserSenderWhenExplicitlyRequested()
testTransportFactoryWillReturnSmtpTransportIfEnabled()
getUserById(int $usrId)
$factory
Definition: metadata.php:58
Class ilMailMimeTest.