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.
		
		
		
		
		
			
		
			
				
					
					
						
							120 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							120 lines
						
					
					
						
							3.6 KiB
						
					
					
				| <?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!'); | |
|     } | |
| }
 | |
| 
 |