Add test cover, use token for event.is_share
authorEileen McNaughton <emcnaughton@wikimedia.org>
Mon, 18 Sep 2023 00:11:06 +0000 (12:11 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Mon, 18 Sep 2023 00:14:55 +0000 (12:14 +1200)
Also fix a couple of places where is_monetary is using the smarty variable.

We have updated & tested is_monetary elsewhere

tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php
tests/phpunit/CiviTest/CiviMailUtils.php
xml/templates/message_templates/event_offline_receipt_text.tpl
xml/templates/message_templates/event_online_receipt_html.tpl
xml/templates/message_templates/event_online_receipt_text.tpl

index 88ee9eebeea6e13a46ced72adb969607d503ce2c..ed1d2a61feecd5a50c3113c071a3c10aab893f83 100644 (file)
@@ -25,15 +25,22 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase {
    * Initial test of submit function.
    */
   public function testSubmit(): void {
-    $mut = new CiviMailUtils($this, TRUE);
     $this->submitPaidEvent();
-
-    $mut->checkMailLog([
+    $this->assertSentMailHasStrings([
       'Dear Kim,  Thank you for your registration.  This is a confirmation that your registration has been received and your status has been updated to Registered.',
       'Friday September 16th, 2022 12:00 PM-Saturday September 17th, 2022 12:00 PM',
+      'Add event to Google Calendar',
     ]);
-    $mut->stop();
-    $mut->clearMessages();
+  }
+
+  public function assertSentMailHasStrings(array $strings): void {
+    foreach ($strings as $string) {
+      $this->assertSentMailHasString($string);
+    }
+  }
+
+  public function assertSentMailHasString(string $string): void {
+    $this->assertStringContainsString($string, $this->sentMail[0]);
   }
 
   /**
@@ -645,6 +652,7 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase {
    * @param array $submitValues
    */
   protected function submitPaidEvent(array $submitValues = []): void {
+    $mailUtil = new CiviMailUtils($this, TRUE);
     $this->dummyProcessorCreate();
     $event = $this->eventCreatePaid(['payment_processor' => [$this->ids['PaymentProcessor']['dummy_live']], 'confirm_email_text' => '', 'is_pay_later' => FALSE, 'start_date' => '2022-09-16 12:00', 'end_date' => '2022-09-17 12:00']);
     $this->submitForm($event['id'], array_merge([
@@ -669,6 +677,7 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase {
       'billing_state_province-5' => 'AP',
       'billing_country-5' => 'US',
     ], $submitValues));
+    $this->sentMail = $mailUtil->getAllMessages();
   }
 
   public function testRegistrationWithoutCiviContributeEnabled(): void {
index 0c4c23eee9a4486d0bf479466a6d6a25986f676c..347f7b2935088eba7ab64b2b53d217b282009890 100644 (file)
@@ -124,9 +124,10 @@ class CiviMailUtils extends PHPUnit\Framework\TestCase {
    * @param string $type
    *   'raw'|'ezc'.
    *
-   * @throws CRM_Core_Exception
-   *
    * @return array(ezcMail)|array(string)
+   *
+   * @noinspection PhpMissingReturnTypeInspection
+   * @noinspection PhpDocMissingThrowsInspection
    */
   public function getAllMessages($type = 'raw') {
     $msgs = [];
index 8ce9fb265d74bfeaa014405271d57e5577c8597a..bd780138f404586dfaed56e6d4a48d9f18a71513 100644 (file)
@@ -84,7 +84,7 @@
 
 {$email}
 {/if}
-{if !empty($event.is_monetary)} {* This section for Paid events only.*}
+{if {event.is_monetary|boolean}} {* This section for Paid events only.*}
 
 ==========================================================={if !empty($pricesetFieldsCount) }===================={/if}
 
index fe6646f37f94ecd0a8a3d3ae3026acfea06a9a05..daa8aab8a98bb253852ec44dc0d5f6fd8ee3b4e7 100644 (file)
           </tr>
         {/if}
 
-        {if $event.is_share}
+        {if {event.is_share|boolean}}
           <tr>
             <td colspan="2" {$valueStyle}>
               {capture assign=eventUrl}{crmURL p='civicrm/event/info' q="id={event.id}&reset=1" a=true fe=1 h=1}{/capture}
index fcc713f2bcdb5d13dcacd26fa8d4e104ad40097d..db1d19037ef94393148960f65a026abf18b37903 100644 (file)
@@ -96,7 +96,7 @@
 {if !empty($payer.name)}
 You were registered by: {$payer.name}
 {/if}
-{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}
+{if {event.is_monetary|boolean} and empty($isRequireApproval)} {* This section for Paid events only.*}
 
 ==========================================================={if !empty($pricesetFieldsCount)}===================={/if}