FIX Trim recipient email addresses before write

This commit is contained in:
Steve Boyd 2020-07-14 16:41:36 +12:00
parent 575d1f99a4
commit 59cd87d842
2 changed files with 23 additions and 0 deletions

View File

@ -116,6 +116,17 @@ class EmailRecipient extends DataObject
DB::query("UPDATE \"UserDefinedForm_EmailRecipient\" SET \"FormClass\" = 'Page' WHERE \"FormClass\" IS NULL");
}
public function onBeforeWrite()
{
parent::onBeforeWrite();
// email addresses have trim() applied to them during validation for a slightly nicer UX
// apply trim() here too before saving to the database
$this->EmailAddress = trim($this->EmailAddress);
$this->EmailFrom = trim($this->EmailFrom);
$this->EmailReplyTo = trim($this->EmailReplyTo);
}
public function summaryFields()
{
$fields = parent::summaryFields();

View File

@ -38,4 +38,16 @@ class EmailRecipientTest extends SapphireTest
$recipient->EmailFrom = 'test@example.com';
$recipient->write();
}
public function testEmailAddressesTrimmed()
{
$recipient = new EmailRecipient();
$recipient->EmailAddress = 'test1@example.com ';
$recipient->EmailFrom = 'test2@example.com ';
$recipient->EmailReplyTo = 'test3@example.com ';
$recipient->write();
$this->assertSame('test1@example.com', $recipient->EmailAddress);
$this->assertSame('test2@example.com', $recipient->EmailFrom);
$this->assertSame('test3@example.com', $recipient->EmailReplyTo);
}
}