Fix message update routine.
authoreileen <emcnaughton@wikimedia.org>
Tue, 17 Jul 2018 07:59:27 +0000 (19:59 +1200)
committereileen <emcnaughton@wikimedia.org>
Tue, 17 Jul 2018 08:33:53 +0000 (20:33 +1200)
Turns out this was seeming to pass but not because the test wasn't running.

CRM/Upgrade/Incremental/MessageTemplates.php
tests/phpunit/CRM/Upgrade/Incremental/BaseTest.php

index e04d4613cd919b733aba65ebb727dd8947cf78d3..7b11e199df9e34e062c4bd00bb98bc0c2aea0c38 100644 (file)
@@ -138,6 +138,7 @@ class CRM_Upgrade_Incremental_MessageTemplates {
           ON reserved.workflow_id = default_template.workflow_id
         WHERE reserved.workflow_id = $workFlowID
         AND reserved.is_reserved = 1 AND default_template.is_default = 1 AND reserved.id <> default_template.id
+        AND reserved.msg_{$template['type']} = default_template.msg_{$template['type']}
       ");
       if ($defaultTemplateID) {
         $templatesToUpdate[] = $defaultTemplateID;
index 6acfaeb2044ced40b68b2578664a06554db09a6c..fc8e00a9fcfda404231dfb460afc980ff26c5b88 100644 (file)
@@ -4,7 +4,7 @@
  * Class CRM_UF_Page_ProfileEditorTest
  * @group headless
  */
-class CRM_Upgrade_Incremental_Base_Test extends CiviUnitTestCase {
+class CRM_Upgrade_Incremental_BaseTest extends CiviUnitTestCase {
 
   /**
    * Test message upgrade process.
@@ -24,7 +24,7 @@ class CRM_Upgrade_Incremental_Base_Test extends CiviUnitTestCase {
 
     foreach ($templates as $template) {
       $msg_text = $this->callAPISuccessGetValue('MessageTemplate', ['id' => $template['id'], 'return' => 'msg_text']);
-      $this->assertContains('{ts}Membership Information{/ts}', $msg_text);
+      $this->assertContains('{assign var="greeting" value="{contact.email_greeting}"}{if $greeting}{$greeting},{/if}', $msg_text);
       if ($msg_text !== $originalText) {
         // Reset value for future tests.
         $this->callAPISuccess('MessageTemplate', 'create', ['msg_text' => $originalText, 'id' => $template['id']]);
@@ -54,7 +54,7 @@ class CRM_Upgrade_Incremental_Base_Test extends CiviUnitTestCase {
     foreach ($templates as $template) {
       $msg_text = $this->callAPISuccessGetValue('MessageTemplate', ['id' => $template['id'], 'return' => 'msg_text']);
       if ($template['is_reserved']) {
-        $this->assertTrue(strstr($msg_text, '{ts}Membership Information{/ts}'));
+        $this->assertContains('{assign var="greeting" value="{contact.email_greeting}"}{if $greeting}{$greeting},{/if}', $msg_text);
       }
       else {
         $this->assertEquals('great what a silly sausage you are', $msg_text);
@@ -73,7 +73,11 @@ class CRM_Upgrade_Incremental_Base_Test extends CiviUnitTestCase {
   public function testMessageTemplateGetUpgradeMessages() {
     $messageTemplateObject = new CRM_Upgrade_Incremental_MessageTemplates('5.4.alpha1');
     $messages = $messageTemplateObject->getUpgradeMessages();
-    $this->assertEquals(['Memberships - Receipt (on-line)' => 'Use email greeting at top where available'], $messages);
+    $this->assertEquals([
+      'Memberships - Receipt (on-line)' => 'Use email greeting at top where available',
+      'Contributions - Receipt (on-line)' => 'Use email greeting at top where available',
+      'Events - Registration Confirmation and Receipt (on-line)' => 'Use email greeting at top where available',
+    ], $messages);
   }
 
 }