From e05d2e11745c1db70cfeb4e8b7f806fdaed4b29a Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Thu, 12 May 2016 21:54:32 +0530 Subject: [PATCH] CRM-18426: added unit test and fixed notices --- CRM/Contribute/BAO/Contribution/Utils.php | 2 +- CRM/Contribute/BAO/ContributionPage.php | 1 + tests/phpunit/api/v3/ContributionTest.php | 60 +++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/CRM/Contribute/BAO/Contribution/Utils.php b/CRM/Contribute/BAO/Contribution/Utils.php index 01356aef8a..fc9c9c2859 100644 --- a/CRM/Contribute/BAO/Contribution/Utils.php +++ b/CRM/Contribute/BAO/Contribution/Utils.php @@ -172,7 +172,7 @@ class CRM_Contribute_BAO_Contribution_Utils { $contribution->payment_status_id = $result['payment_status_id']; } $result['contribution'] = $contribution; - if ($contribution->payment_status_id == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', + if ($result['payment_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'status_id', 'Pending') && $payment->isSendReceiptForPending()) { CRM_Contribute_BAO_ContributionPage::sendMail($contactID, $form->_values, diff --git a/CRM/Contribute/BAO/ContributionPage.php b/CRM/Contribute/BAO/ContributionPage.php index 78e3c62026..c23e02199f 100644 --- a/CRM/Contribute/BAO/ContributionPage.php +++ b/CRM/Contribute/BAO/ContributionPage.php @@ -384,6 +384,7 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio 'amount' => $values['amount'], 'is_pay_later' => $values['is_pay_later'], 'receipt_date' => !$values['receipt_date'] ? NULL : date('YmdHis', strtotime($values['receipt_date'])), + 'pay_later_receipt' => CRM_Utils_Array::value('pay_later_receipt', $values), ); if ($contributionTypeId = CRM_Utils_Array::value('financial_type_id', $values)) { diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index ec7ff73e5b..b35fff3bf0 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -1603,6 +1603,66 @@ class api_v3_ContributionTest extends CiviUnitTestCase { $this->revertTemplateToReservedTemplate(); } + /** + * Test to ensure mail is sent on chosing pay later + */ + public function testpayLater() { + $mut = new CiviMailUtils($this, TRUE); + $this->swapMessageTemplateForTestTemplate(); + $this->createLoggedInUser(); + + // create contribution page first + $contributionPageParams = array( + 'title' => 'Help Support CiviCRM!', + 'financial_type_id' => 1, + 'is_monetary' => TRUE, + 'is_pay_later' => 1, + 'is_quick_config' => TRUE, + 'pay_later_text' => 'I will send payment by check', + 'pay_later_receipt' => 'This is a pay later reciept', + 'is_allow_other_amount' => 1, + 'min_amount' => 10.00, + 'max_amount' => 10000.00, + 'goal_amount' => 100000.00, + 'is_email_receipt' => 1, + 'is_active' => 1, + 'amount_block_is_active' => 1, + 'currency' => 'USD', + 'is_billing_required' => 0, + ); + $contributionPageResult = $this->callAPISuccess('contribution_page', 'create', $contributionPageParams); + + // submit form values + $priceSet = $this->callAPISuccess('price_set', 'getsingle', array('name' => 'default_contribution_amount')); + $params = array( + 'id' => $contributionPageResult['id'], + 'contact_id' => $this->_individualId, + 'email-5' => 'anthony_anderson@civicrm.org', + 'payment_processor_id' => 0, + 'amount' => 100.00, + 'tax_amount' => '', + 'currencyID' => 'USD', + 'is_pay_later' => 1, + 'invoiceID' => 'f28e1ddc86f8c4a0ff5bcf46393e4bc8', + 'is_quick_config' => 1, + 'description' => 'Online Contribution: Help Support CiviCRM!', + 'price_set_id' => $priceSet['id'], + ); + $this->callAPISuccess('contribution_page', 'submit', $params); + + $mut->checkMailLog(array( + 'is_pay_later:::1', + 'email:::anthony_anderson@civicrm.org', + 'pay_later_receipt:::' . $contributionPageParams['pay_later_receipt'], + 'displayName:::Mr. Anthony Anderson II', + 'contributionPageId:::' . $contributionPageResult['id'], + 'title:::' . $contributionPageParams['title'], + )); + $mut->stop(); + $this->revertTemplateToReservedTemplate(); + } + + /** * Test to check whether contact billing address is used when no contribution address */ -- 2.25.1