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.
		
		
		
		
			
				
					42 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					42 lines
				
				1.3 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace tests\unit\models;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\models\ContactForm;
							 | 
						||
| 
								 | 
							
								use yii\mail\MessageInterface;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ContactFormTest extends \Codeception\Test\Unit
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @var \UnitTester
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $tester;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testEmailIsSentOnContact()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $model = new ContactForm();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $model->attributes = [
							 | 
						||
| 
								 | 
							
								            'name' => 'Tester',
							 | 
						||
| 
								 | 
							
								            'email' => 'tester@example.com',
							 | 
						||
| 
								 | 
							
								            'subject' => 'very important letter subject',
							 | 
						||
| 
								 | 
							
								            'body' => 'body of current message',
							 | 
						||
| 
								 | 
							
								            'verifyCode' => 'testme',
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        verify($model->contact('admin@example.com'))->notEmpty();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // using Yii2 module actions to check email was sent
							 | 
						||
| 
								 | 
							
								        $this->tester->seeEmailIsSent();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /** @var MessageInterface $emailMessage */
							 | 
						||
| 
								 | 
							
								        $emailMessage = $this->tester->grabLastSentEmail();
							 | 
						||
| 
								 | 
							
								        verify($emailMessage)->instanceOf('yii\mail\MessageInterface');
							 | 
						||
| 
								 | 
							
								        verify($emailMessage->getTo())->arrayHasKey('admin@example.com');
							 | 
						||
| 
								 | 
							
								        verify($emailMessage->getFrom())->arrayHasKey('noreply@example.com');
							 | 
						||
| 
								 | 
							
								        verify($emailMessage->getReplyTo())->arrayHasKey('tester@example.com');
							 | 
						||
| 
								 | 
							
								        verify($emailMessage->getSubject())->equals('very important letter subject');
							 | 
						||
| 
								 | 
							
								        verify($emailMessage->toString())->stringContainsString('body of current message');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |