BUG When asserting an email was sent, sanitise both the To and From field

This commit is contained in:
Maxime Rainville 2021-09-09 19:23:37 +12:00
parent c69bc3719f
commit 1c698348a2

View File

@ -103,17 +103,18 @@ class TestMailer implements Mailer
foreach ($this->emailsSent as $email) { foreach ($this->emailsSent as $email) {
$matched = true; $matched = true;
foreach (['To', 'From', 'Subject', 'Content'] as $field) { // Loop all our Email fields
foreach ($compare as $field => $value) {
$emailValue = $email[$field]; $emailValue = $email[$field];
if ($value = $compare[$field]) { if ($value) {
if ($field == 'To') { if (in_array($field, ['To', 'From'])) {
$emailValue = $this->normaliseSpaces($emailValue); $emailValue = $this->normaliseSpaces($emailValue);
$value = $this->normaliseSpaces($value); $value = $this->normaliseSpaces($value);
} }
if ($value[0] == '/') { if ($value[0] === '/') {
$matched = preg_match($value, $emailValue); $matched = preg_match($value, $emailValue);
} else { } else {
$matched = ($value == $emailValue); $matched = ($value === $emailValue);
} }
if (!$matched) { if (!$matched) {
break; break;