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.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.7 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace frontend\tests\unit\models; | 
						|
 | 
						|
use Yii; | 
						|
use frontend\models\PasswordResetRequestForm; | 
						|
use common\fixtures\UserFixture as UserFixture; | 
						|
use common\models\User; | 
						|
 | 
						|
class PasswordResetRequestFormTest extends \Codeception\Test\Unit | 
						|
{ | 
						|
    /** | 
						|
     * @var \frontend\tests\UnitTester | 
						|
     */ | 
						|
    protected $tester; | 
						|
 | 
						|
 | 
						|
    public function _before() | 
						|
    { | 
						|
        $this->tester->haveFixtures([ | 
						|
            'user' => [ | 
						|
                'class' => UserFixture::className(), | 
						|
                'dataFile' => codecept_data_dir() . 'user.php' | 
						|
            ] | 
						|
        ]); | 
						|
    } | 
						|
 | 
						|
    public function testSendMessageWithWrongEmailAddress() | 
						|
    { | 
						|
        $model = new PasswordResetRequestForm(); | 
						|
        $model->email = 'not-existing-email@example.com'; | 
						|
        expect_not($model->sendEmail()); | 
						|
    } | 
						|
 | 
						|
    public function testNotSendEmailsToInactiveUser() | 
						|
    { | 
						|
        $user = $this->tester->grabFixture('user', 1); | 
						|
        $model = new PasswordResetRequestForm(); | 
						|
        $model->email = $user['email']; | 
						|
        expect_not($model->sendEmail()); | 
						|
    } | 
						|
 | 
						|
    public function testSendEmailSuccessfully() | 
						|
    { | 
						|
        $userFixture = $this->tester->grabFixture('user', 0); | 
						|
         | 
						|
        $model = new PasswordResetRequestForm(); | 
						|
        $model->email = $userFixture['email']; | 
						|
        $user = User::findOne(['password_reset_token' => $userFixture['password_reset_token']]); | 
						|
 | 
						|
        expect_that($model->sendEmail()); | 
						|
        expect_that($user->password_reset_token); | 
						|
 | 
						|
        $emailMessage = $this->tester->grabLastSentEmail(); | 
						|
        expect('valid email is sent', $emailMessage)->isInstanceOf('yii\mail\MessageInterface'); | 
						|
        expect($emailMessage->getTo())->hasKey($model->email); | 
						|
        expect($emailMessage->getFrom())->hasKey(Yii::$app->params['supportEmail']); | 
						|
    } | 
						|
}
 | 
						|
 |