4 * Class CRM_UF_Page_ProfileEditorTest
7 class CRM_Upgrade_Incremental_Base_Test
extends CiviUnitTestCase
{
10 * Test message upgrade process.
12 public function testMessageTemplateUpgrade() {
13 $workFlowID = civicrm_api3('OptionValue', 'getvalue', ['return' => 'id', 'name' => 'membership_online_receipt', 'options' => ['limit' => 1, 'sort' => 'id DESC']]);
15 $templates = $this->callAPISuccess('MessageTemplate', 'get', ['workflow_id' => $workFlowID])['values'];
16 foreach ($templates as $template) {
17 $originalText = $template['msg_text'];
18 $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => 'great what a cool member you are', 'id' => $template['id']]);
19 $msg_text = $this->callAPISuccessGetValue('MessageTemplate', ['id' => $template['id'], 'return' => 'msg_text']);
20 $this->assertEquals('great what a cool member you are', $msg_text);
22 $messageTemplateObject = new CRM_Upgrade_Incremental_MessageTemplates('5.4.alpha1');
23 $messageTemplateObject->updateTemplates();
25 foreach ($templates as $template) {
26 $msg_text = $this->callAPISuccessGetValue('MessageTemplate', ['id' => $template['id'], 'return' => 'msg_text']);
27 $this->assertContains('{ts}Membership Information{/ts}', $msg_text);
28 if ($msg_text !== $originalText) {
29 // Reset value for future tests.
30 $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => $originalText, 'id' => $template['id']]);
36 * Test message upgrade process only edits the default if the template is customised.
38 public function testMessageTemplateUpgradeAlreadyCustomised() {
39 $workFlowID = civicrm_api3('OptionValue', 'getvalue', ['return' => 'id', 'name' => 'membership_online_receipt', 'options' => ['limit' => 1, 'sort' => 'id DESC']]);
41 $templates = $this->callAPISuccess('MessageTemplate', 'get', ['workflow_id' => $workFlowID])['values'];
42 foreach ($templates as $template) {
43 if ($template['is_reserved']) {
44 $originalText = $template['msg_text'];
45 $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => 'great what a cool member you are', 'id' => $template['id']]);
48 $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => 'great what a silly sausage you are', 'id' => $template['id']]);
51 $messageTemplateObject = new CRM_Upgrade_Incremental_MessageTemplates('5.4.alpha1');
52 $messageTemplateObject->updateTemplates();
54 foreach ($templates as $template) {
55 $msg_text = $this->callAPISuccessGetValue('MessageTemplate', ['id' => $template['id'], 'return' => 'msg_text']);
56 if ($template['is_reserved']) {
57 $this->assertTrue(strstr($msg_text, '{ts}Membership Information{/ts}'));
60 $this->assertEquals('great what a silly sausage you are', $msg_text);
63 if ($msg_text !== $originalText) {
64 // Reset value for future tests.
65 $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => $originalText, 'id' => $template['id']]);
71 * Test function for messages on upgrade.
73 public function testMessageTemplateGetUpgradeMessages() {
74 $messageTemplateObject = new CRM_Upgrade_Incremental_MessageTemplates('5.4.alpha1');
75 $messages = $messageTemplateObject->getUpgradeMessages();
76 $this->assertEquals(['Memberships - Receipt (on-line)' => 'Use email greeting at top where available'], $messages);