From b40d71671ad0ebb0e3378df4fc637a5f5e20c561 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 9 Aug 2021 15:02:04 -0700 Subject: [PATCH] MessageTemplate::sendTemplate() - Accept `array $tokenContext` option (unit-test) --- .../CRM/Core/BAO/MessageTemplateTest.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php index a850b4a6b4..08edc85ca5 100644 --- a/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php +++ b/tests/phpunit/CRM/Core/BAO/MessageTemplateTest.php @@ -86,6 +86,47 @@ class CRM_Core_BAO_MessageTemplateTest extends CiviUnitTestCase { }); } + public function testSendTemplate_RenderMode_TokenContext() { + 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 {contact.display_name} about {activity.subject}!', + 'msg_text' => 'Hello {contact.display_name} about {activity.subject}!', + 'msg_html' => '

Hello {contact.display_name} about {activity.subject}!

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

Hello Abba Baab about Something Something!

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