Files
piratepoet/mailpoet/tests/integration/Models/ModelValidatorTest.php
Rodrigo Primo 00d021109c Move ModelValidator::validateNonRoleEmail() to a new Validator class
We want to remove/refactor the whole ModelValidator class as part of the
Doctrine refactor.

This commit moves the method ModelValidator::validateNonRoleEmail() to a
new Validator class as the method is not used by the validator system of
the Paris models. ModelValidator::validateEmail() was also moved as it
is called by ModelValidator::validateNonRoleEmail().

[MAILPOET-4343]
2023-05-17 12:37:22 +02:00

44 lines
2.1 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Test\Models;
use MailPoet\Models\ModelValidator;
class ModelValidatorTest extends \MailPoetTest {
public $validator;
public function __construct() {
parent::__construct();
$this->validator = new ModelValidator();
}
public function testItConfiguresValidators() {
$configuredValidators = $this->validator->getValidators();
foreach (array_keys($this->validator->validators) as $validator) {
expect($configuredValidators)->contains($validator);
}
}
public function testItValidatesEmail() {
expect($this->validator->validateEmail('test'))->false();
expect($this->validator->validateEmail('tést@éxample.com'))->false();
expect($this->validator->validateEmail('test@example.com'))->true();
expect($this->validator->validateEmail('loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_email@example.com'))->false();
expect($this->validator->validateEmail('a@b.c'))->false();
}
public function testItValidatesRenderedNewsletterBody() {
expect($this->validator->validateRenderedNewsletterBody('test'))->false();
expect($this->validator->validateRenderedNewsletterBody(serialize('test')))->false();
expect($this->validator->validateRenderedNewsletterBody(['html' => 'test', 'text' => null]))->false();
expect($this->validator->validateRenderedNewsletterBody(['html' => null, 'text' => 'test']))->false();
expect($this->validator->validateRenderedNewsletterBody(null))->true();
expect($this->validator->validateRenderedNewsletterBody(serialize(null)))->true();
expect($this->validator->validateRenderedNewsletterBody(serialize(['html' => 'test', 'text' => 'test'])))->true();
expect($this->validator->validateRenderedNewsletterBody(['html' => 'test', 'text' => 'test']))->true();
expect($this->validator->validateRenderedNewsletterBody(json_encode(null)))->true();
expect($this->validator->validateRenderedNewsletterBody(json_encode(['html' => 'test', 'text' => 'test'])))->true();
}
}