mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Make unsetting the email pattern work as expected.
When set to `null`, only `filter_var()` should be used. This is a partial backport of #5111
This commit is contained in:
parent
c151ea585d
commit
f0b6657113
2 changed files with 27 additions and 5 deletions
|
@ -553,7 +553,9 @@ class CakeEmail {
|
||||||
/**
|
/**
|
||||||
* EmailPattern setter/getter
|
* 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
|
* @return string|$this
|
||||||
*/
|
*/
|
||||||
public function emailPattern($regex = false) {
|
public function emailPattern($regex = false) {
|
||||||
|
@ -602,10 +604,11 @@ class CakeEmail {
|
||||||
* @throws SocketException If email address does not validate
|
* @throws SocketException If email address does not validate
|
||||||
*/
|
*/
|
||||||
protected function _validateEmail($email) {
|
protected function _validateEmail($email) {
|
||||||
if ($this->_emailPattern === null && filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
if ($this->_emailPattern === null) {
|
||||||
|
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (preg_match($this->_emailPattern, $email)) {
|
} elseif (preg_match($this->_emailPattern, $email)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
throw new SocketException(__d('cake_dev', 'Invalid email: "%s"', $email));
|
throw new SocketException(__d('cake_dev', 'Invalid email: "%s"', $email));
|
||||||
|
|
|
@ -386,6 +386,25 @@ class CakeEmailTest extends CakeTestCase {
|
||||||
), $this->CakeEmail->to());
|
), $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
|
* testFormatAddress method
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue