You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					125 lines
				
				3.5 KiB
			
		
		
			
		
	
	
					125 lines
				
				3.5 KiB
			| 
											11 years ago
										 | <?php
 | ||
|  | 
 | ||
|  | namespace yiiunit\extensions\swiftmailer;
 | ||
|  | 
 | ||
|  | use Yii;
 | ||
|  | use yii\swiftmailer\Mailer;
 | ||
|  | 
 | ||
|  | Yii::setAlias('@yii/swiftmailer', __DIR__ . '/../../../../extensions/swiftmailer');
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @group vendor
 | ||
|  |  * @group mail
 | ||
|  |  * @group 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();
 | ||
|  | 
 | ||
|  |         $transport = \Swift_MailTransport::newInstance();
 | ||
|  |         $mailer->setTransport($transport);
 | ||
|  |         $this->assertEquals($transport, $mailer->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!');
 | ||
|  |     }
 | ||
|  | }
 |