Event confirm - minor cleanup + test
authoreileen <emcnaughton@wikimedia.org>
Sat, 10 Aug 2019 02:08:52 +0000 (14:08 +1200)
committereileen <emcnaughton@wikimedia.org>
Sat, 10 Aug 2019 02:08:52 +0000 (14:08 +1200)
I've just started delving into this & have
1) added a test
2) removed an assign that is  ALSO done in the sendMail function - ie participantID - this is tested
3) removed a pass-by-reference that I checked was not required

CRM/Event/BAO/Event.php
CRM/Event/Form/Registration/Confirm.php
tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php
tests/phpunit/CiviTest/CiviUnitTestCase.php

index e77244bef1f0b5eeeb16ee436942b51e45411ec1..df8ece444cc83ea27fc36df9839241d64d9b1dc4 100644 (file)
@@ -1054,7 +1054,7 @@ WHERE civicrm_event.is_active = 1
    * @return array|null
    * @throws \CiviCRM_API3_Exception
    */
-  public static function sendMail($contactID, &$values, $participantId, $isTest = FALSE, $returnMessageText = FALSE) {
+  public static function sendMail($contactID, $values, $participantId, $isTest = FALSE, $returnMessageText = FALSE) {
 
     $template = CRM_Core_Smarty::singleton();
     $gIds = [
index db2829ef08e5983114fb58bcd90addca79dc396c..b5d6739186d72fc346e3c1b3a4d7260cc8cdf116 100644 (file)
@@ -928,7 +928,6 @@ class CRM_Event_Form_Registration_Confirm extends CRM_Event_Form_Registration {
 
         //send mail to primary as well as additional participants.
         $this->assign('contactID', $contactId);
-        $this->assign('participantID', $participantID);
         CRM_Event_BAO_Event::sendMail($contactId, $this->_values, $participantID, $isTest);
       }
     }
index 782874b2bf0bd56672274a2d265132184ca8859c..683ed6035c36be3daf8d410b587b0478d860a068 100644 (file)
@@ -22,6 +22,7 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase {
    */
   public function testSubmit() {
     $event = $this->eventCreate();
+    $mut = new CiviMailUtils($this, TRUE);
     CRM_Event_Form_Registration_Confirm::testSubmit([
       'id' => $event['id'],
       'contributeMode' => 'direct',
@@ -77,7 +78,15 @@ class CRM_Event_Form_Registration_ConfirmTest extends CiviUnitTestCase {
         ],
       ],
     ]);
-    $this->callAPISuccessGetSingle('Participant', []);
+    $participant = $this->callAPISuccessGetSingle('Participant', []);
+    $mut->checkMailLog([
+      'Dear Logged In,  Thank you for your participation.  This letter is a confirmation that your registration has been received and your status has been updated to Registered.',
+    ]);
+    $mut->stop();
+    $mut->clearMessages();
+    $tplVars = CRM_Core_Smarty::singleton()->get_template_vars();
+    $this->assertEquals($participant['id'], $tplVars['participantID']);
+
   }
 
   /**
index 957a716325a7395e3381b9fcc29b4c7b9a154bfb..1343cffa1b4297b55fe44511b9798e202bb41302 100644 (file)
@@ -1015,6 +1015,7 @@ class CiviUnitTestCase extends PHPUnit\Framework\TestCase {
       'is_monetary' => 0,
       'is_active' => 1,
       'is_show_location' => 0,
+      'is_email_confirm' => 1,
     ), $params);
 
     return $this->callAPISuccess('Event', 'create', $params);