Introduce validation for emails starting with slash

This commit is contained in:
ErickSkrauch
2023-10-15 06:53:17 +02:00
parent e738bce717
commit b3d1f75cc0
2 changed files with 27 additions and 3 deletions

View File

@@ -9,7 +9,10 @@ use common\validators\EmailValidator;
use yii\base\Model;
use yii\validators\EmailValidator as YiiEmailValidator;
class EmailValidatorTest extends TestCase {
/**
* @covers \common\validators\EmailValidator
*/
final class EmailValidatorTest extends TestCase {
private EmailValidator $validator;
@@ -86,6 +89,15 @@ class EmailValidatorTest extends TestCase {
$this->assertNotSame(['error.email_invalid'], $model->getErrors('field'));
}
public function testValidateAttributeStartingWithSlash(): void {
$this->getFunctionMock(YiiEmailValidator::class, 'checkdnsrr')->expects($this->any())->willReturn(true);
$this->getFunctionMock(YiiEmailValidator::class, 'dns_get_record')->expects($this->any())->willReturn(['mx.google.com']);
$model = $this->createModel('\slash@gmail.com');
$this->validator->validateAttribute($model, 'field');
$this->assertSame(['error.email_invalid'], $model->getErrors('field'));
}
public function testValidateAttributeTempmail() {
$this->getFunctionMock(YiiEmailValidator::class, 'checkdnsrr')->expects($this->any())->willReturn(true);
$this->getFunctionMock(YiiEmailValidator::class, 'dns_get_record')->expects($this->any())->willReturn(['127.0.0.1']);