From 1264f433ef4ac070756677e1ff2ff980a04a24af Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 9 Aug 2021 15:03:48 -0700 Subject: [PATCH] MessageTemplate::sendTemplate() - Accept `array $messsageTemplate` option (unit-test) --- .../CRM/Core/BAO/MessageTemplateTest.php | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php index fa5003a2ea..a850b4a6b4 100644 --- a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php +++ b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php @@ -22,6 +22,70 @@ class CRM_Core_BAO_MessageTemplateTest extends CiviUnitTestCase { parent::tearDown(); } + public function testSendTemplate_RenderMode_OpenTemplate() { + $contactId = $this->individualCreate([ + 'first_name' => 'Abba', + 'last_name' => 'Baab', + 'prefix_id' => NULL, + 'suffix_id' => NULL, + ]); + [$sent, $subject, $messageText, $messageHtml] = CRM_Core_BAO_MessageTemplate::sendTemplate( + [ + 'valueName' => 'case_activity', + 'contactId' => $contactId, + 'from' => 'admin@example.com', + // No 'toEmail'/'toName' address => not sendable, but still returns rendered value. + 'attachments' => NULL, + 'messageTemplate' => [ + 'msg_subject' => 'Hello testSendTemplate_RenderMode_OpenTemplate {contact.display_name}!', + 'msg_text' => 'Hello testSendTemplate_RenderMode_OpenTemplate {contact.display_name}!', + 'msg_html' => '

Hello testSendTemplate_RenderMode_OpenTemplate {contact.display_name}!

', + ], + ] + ); + $this->assertEquals(FALSE, $sent); + $this->assertEquals('Hello testSendTemplate_RenderMode_OpenTemplate Abba Baab!', $subject); + $this->assertEquals('Hello testSendTemplate_RenderMode_OpenTemplate Abba Baab!', $messageText); + $this->assertStringContainsString('

Hello testSendTemplate_RenderMode_OpenTemplate Abba Baab!

', $messageHtml); + } + + public function testSendTemplate_RenderMode_DefaultTpl() { + CRM_Core_Transaction::create(TRUE)->run(function(CRM_Core_Transaction $tx) { + $tx->rollback(); + + \Civi\Api4\MessageTemplate::update() + ->addWhere('workflow_name', '=', 'case_activity') + ->addWhere('is_reserved', '=', 0) + ->setValues([ + 'msg_subject' => 'Hello testSendTemplate_RenderMode_Default {contact.display_name}!', + 'msg_text' => 'Hello testSendTemplate_RenderMode_Default {contact.display_name}!', + 'msg_html' => '

Hello testSendTemplate_RenderMode_Default {contact.display_name}!

', + ]) + ->execute(); + + $contactId = $this->individualCreate([ + 'first_name' => 'Abba', + 'last_name' => 'Baab', + 'prefix_id' => NULL, + 'suffix_id' => NULL, + ]); + + [$sent, $subject, $messageText, $messageHtml] = CRM_Core_BAO_MessageTemplate::sendTemplate( + [ + 'valueName' => 'case_activity', + 'contactId' => $contactId, + 'from' => 'admin@example.com', + // No 'toEmail'/'toName' address => not sendable, but still returns rendered value. + 'attachments' => NULL, + ] + ); + $this->assertEquals(FALSE, $sent); + $this->assertEquals('Hello testSendTemplate_RenderMode_Default Abba Baab!', $subject); + $this->assertEquals('Hello testSendTemplate_RenderMode_Default Abba Baab!', $messageText); + $this->assertStringContainsString('

Hello testSendTemplate_RenderMode_Default Abba Baab!

', $messageHtml); + }); + } + /** * Test message template send. * -- 2.25.1