123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace yiiunit\extensions\swiftmailer;
- use Yii;
- use yii\swiftmailer\Mailer;
- Yii::setAlias('@yii/swiftmailer', __DIR__ . '/../../../../extensions/swiftmailer');
- class MailerTest extends TestCase
- {
- public function setUp()
- {
- $this->mockApplication([
- 'components' => [
- 'email' => $this->createTestEmailComponent()
- ]
- ]);
- }
- /**
- * @return Mailer test email component instance.
- */
- protected function createTestEmailComponent()
- {
- $component = new Mailer();
- return $component;
- }
- // Tests :
- public function testSetupTransport()
- {
- $mailer = new Mailer();
- $mailer->getSwiftMailer(); // make sure accessing SwiftMailer does not affect behavior of setTransport
- $transport = new \Swift_SendmailTransport();
- $mailer->setTransport($transport);
- $this->assertSame($transport, $mailer->getSwiftMailer()->getTransport(), 'Unable to setup transport!');
- }
- /**
- * @depends testSetupTransport
- */
- public function testConfigureTransport()
- {
- $mailer = new Mailer();
- $transportConfig = [
- 'class' => 'Swift_SmtpTransport',
- 'host' => 'localhost',
- 'username' => 'username',
- 'password' => 'password',
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertEquals($transportConfig['class'], get_class($transport), 'Invalid transport class!');
- $this->assertEquals($transportConfig['host'], $transport->getHost(), 'Invalid transport host!');
- }
- /**
- * @depends testConfigureTransport
- */
- public function testConfigureTransportConstruct()
- {
- $mailer = new Mailer();
- $class = 'Swift_SmtpTransport';
- $host = 'some.test.host';
- $port = 999;
- $transportConfig = [
- 'class' => $class,
- 'constructArgs' => [
- $host,
- $port,
- ],
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertEquals($class, get_class($transport), 'Invalid transport class!');
- $this->assertEquals($host, $transport->getHost(), 'Invalid transport host!');
- $this->assertEquals($port, $transport->getPort(), 'Invalid transport host!');
- }
- /**
- * @depends testConfigureTransportConstruct
- */
- public function testConfigureTransportWithPlugins()
- {
- $mailer = new Mailer();
- $pluginClass = 'Swift_Plugins_ThrottlerPlugin';
- $rate = 10;
- $transportConfig = [
- 'class' => 'Swift_SmtpTransport',
- 'plugins' => [
- [
- 'class' => $pluginClass,
- 'constructArgs' => [
- $rate,
- ],
- ],
- ],
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertContains(':' . $pluginClass . ':', print_r($transport, true), 'Plugin not added');
- }
- public function testGetSwiftMailer()
- {
- $mailer = new Mailer();
- $this->assertTrue(is_object($mailer->getSwiftMailer()), 'Unable to get Swift mailer instance!');
- }
- }
|