mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Merge pull request #5119 from ndm2/fix-unset-email-pattern
Make unsetting the email pattern work as expected.
This commit is contained in:
commit
c1063dcd81
2 changed files with 27 additions and 5 deletions
|
@ -553,7 +553,9 @@ class CakeEmail {
|
|||
/**
|
||||
* EmailPattern setter/getter
|
||||
*
|
||||
* @param string $regex for email address validation
|
||||
* @param string|bool|null $regex The pattern to use for email address validation,
|
||||
* null to unset the pattern and make use of filter_var() instead, false or
|
||||
* nothing to return the current value
|
||||
* @return string|$this
|
||||
*/
|
||||
public function emailPattern($regex = false) {
|
||||
|
@ -602,10 +604,11 @@ class CakeEmail {
|
|||
* @throws SocketException If email address does not validate
|
||||
*/
|
||||
protected function _validateEmail($email) {
|
||||
if ($this->_emailPattern === null && filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return;
|
||||
}
|
||||
if (preg_match($this->_emailPattern, $email)) {
|
||||
if ($this->_emailPattern === null) {
|
||||
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return;
|
||||
}
|
||||
} elseif (preg_match($this->_emailPattern, $email)) {
|
||||
return;
|
||||
}
|
||||
throw new SocketException(__d('cake_dev', 'Invalid email: "%s"', $email));
|
||||
|
|
|
@ -386,6 +386,25 @@ class CakeEmailTest extends CakeTestCase {
|
|||
), $this->CakeEmail->to());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that it is possible to unset the email pattern and make use of filter_var() instead.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @expectedException SocketException
|
||||
* @expectedExceptionMessage Invalid email: "fail.@example.com"
|
||||
*/
|
||||
public function testUnsetEmailPattern() {
|
||||
$email = new CakeEmail();
|
||||
$this->assertSame(CakeEmail::EMAIL_PATTERN, $email->emailPattern());
|
||||
|
||||
$email->emailPattern(null);
|
||||
$this->assertNull($email->emailPattern());
|
||||
|
||||
$email->to('pass@example.com');
|
||||
$email->to('fail.@example.com');
|
||||
}
|
||||
|
||||
/**
|
||||
* testFormatAddress method
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue