new-support.webeffector.ru/frontend/tests/functional/ResendVerificationEmailCest...

84 lines
2.4 KiB
PHP

<?php
namespace frontend\tests\functional;
use common\fixtures\UserFixture;
use frontend\tests\FunctionalTester;
class ResendVerificationEmailCest
{
protected $formId = '#resend-verification-email-form';
/**
* Load fixtures before db transaction begin
* Called in _before()
* @see \Codeception\Module\Yii2::_before()
* @see \Codeception\Module\Yii2::loadFixtures()
* @return array
*/
public function _fixtures()
{
return [
'user' => [
'class' => UserFixture::class,
'dataFile' => codecept_data_dir() . 'user.php',
],
];
}
public function _before(FunctionalTester $I)
{
$I->amOnRoute('/site/resend-verification-email');
}
protected function formParams($email)
{
return [
'ResendVerificationEmailForm[email]' => $email
];
}
public function checkPage(FunctionalTester $I)
{
$I->see('Resend verification email', 'h1');
$I->see('Please fill out your email. A verification email will be sent there.');
}
public function checkEmptyField(FunctionalTester $I)
{
$I->submitForm($this->formId, $this->formParams(''));
$I->seeValidationError('Email cannot be blank.');
}
public function checkWrongEmailFormat(FunctionalTester $I)
{
$I->submitForm($this->formId, $this->formParams('abcd.com'));
$I->seeValidationError('Email is not a valid email address.');
}
public function checkWrongEmail(FunctionalTester $I)
{
$I->submitForm($this->formId, $this->formParams('wrong@email.com'));
$I->seeValidationError('There is no user with this email address.');
}
public function checkAlreadyVerifiedEmail(FunctionalTester $I)
{
$I->submitForm($this->formId, $this->formParams('test2@mail.com'));
$I->seeValidationError('There is no user with this email address.');
}
public function checkSendSuccessfully(FunctionalTester $I)
{
$I->submitForm($this->formId, $this->formParams('test@mail.com'));
$I->canSeeEmailIsSent();
$I->seeRecord('common\models\User', [
'email' => 'test@mail.com',
'username' => 'test.test',
'status' => \common\models\User::STATUS_INACTIVE
]);
$I->see('Check your email for further instructions.');
}
}