2 declare(strict_types = 1);
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
42 protected function setUp()
44 $this->subject = $this->getMockBuilder(Mailer::class)
45 ->setMethods([
'emitPostInitializeMailerSignal'])
46 ->disableOriginalConstructor()
55 $settings = [
'transport' =>
'mbox',
'transport_mbox_file' =>
'/path/to/file'];
56 $GLOBALS[
'TYPO3_CONF_VARS'][
'MAIL'] = [
'transport' =>
'sendmail',
'transport_sendmail_command' =>
'sendmail'];
57 $this->subject->injectMailSettings($settings);
58 $this->subject->__construct();
59 $this->assertAttributeSame($settings,
'mailSettings', $this->subject);
67 $settings = (
$GLOBALS[
'TYPO3_CONF_VARS'][
'MAIL'] = [
'transport' =>
'sendmail',
'transport_sendmail_command' =>
'sendmail']);
68 $this->subject->__construct();
69 $this->assertAttributeSame($settings,
'mailSettings', $this->subject);
80 'smtp but no host' => [[
'transport' =>
'smtp']],
81 'sendmail but no command' => [[
'transport' =>
'sendmail']],
82 'mbox but no file' => [[
'transport' =>
'mbox']],
83 'no instance of Swift_Transport' => [[
'transport' => ErrorPageController::class]]
94 $this->expectException(Exception::class);
95 $this->expectExceptionCode(1291068569);
97 $this->subject->injectMailSettings($settings);
98 $this->subject->__construct();
106 $this->subject->injectMailSettings([
'transport' => FakeTransportFixture::class]);
107 $this->subject->__construct();
115 $this->subject->injectMailSettings([
'transport' =>
'smtp',
'transport_smtp_server' =>
'localhost']);
116 $this->subject->__construct();
117 $port = $this->subject->getTransport()->getPort();
118 $this->assertEquals(25, $port);
126 $this->subject->injectMailSettings([
'transport' =>
'smtp',
'transport_smtp_server' =>
'localhost:']);
127 $this->subject->__construct();
128 $port = $this->subject->getTransport()->getPort();
129 $this->assertEquals(25, $port);
137 $this->subject->injectMailSettings([
'transport' =>
'smtp',
'transport_smtp_server' =>
'localhost:12345']);
138 $this->subject->__construct();
139 $port = $this->subject->getTransport()->getPort();
140 $this->assertEquals(12345, $port);
149 $this->subject->injectMailSettings($settings);
150 $transport = $this->subject->getRealTransport();
152 $this->assertInstanceOf(\Swift_Transport::class, $transport);
153 $this->assertNotInstanceOf(\Swift_SpoolTransport::class, $transport);
164 'without spool' => [[
165 'transport' =>
'mail',
169 'transport' =>
'mail',