CRM-20253 Add another test using dummy processor and switch noReceipt test to dummy...
authorSeamus Lee <seamuslee001@gmail.com>
Thu, 15 Jun 2017 00:53:43 +0000 (10:53 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Thu, 15 Jun 2017 01:01:51 +0000 (11:01 +1000)
tests/phpunit/CRM/Contribute/Form/ContributionTest.php

index 0214dd57218c407ee6ef4063abb766818456c4d8..b6942b453c5b4b60c9ca4c7c5399afd22ca6dd82 100644 (file)
@@ -249,6 +249,71 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
     $mut->stop();
   }
 
+  /**
+   * Test the submit function on the contribution page
+   */
+  public function testSubmitCreditCardWithEmailReceipt() {
+    $mut = new CiviMailUtils($this, TRUE);
+    $mut->clearMessages(0);
+    $form = new CRM_Contribute_Form_Contribution();
+    $form->_mode = 'Live';
+    $error = FALSE;
+    try {
+      $form->testSubmit(array(
+        'total_amount' => 50,
+        'financial_type_id' => 1,
+        'receive_date' => '04/21/2015',
+        'receive_date_time' => '11:27PM',
+        'contact_id' => $this->_individualId,
+        'contribution_status_id' => 1,
+        'credit_card_number' => 4444333322221111,
+        'cvv2' => 123,
+        'credit_card_exp_date' => array(
+          'M' => 9,
+          'Y' => 2025,
+        ),
+        'credit_card_type' => 'Visa',
+        'billing_first_name' => 'Junko',
+        'billing_middle_name' => '',
+        'billing_last_name' => 'Adams',
+        'billing_street_address-5' => '790L Lincoln St S',
+        'billing_city-5' => 'Maryknoll',
+        'billing_state_province_id-5' => 1031,
+        'billing_postal_code-5' => 10545,
+        'billing_country_id-5' => 1228,
+        'frequency_interval' => 1,
+        'frequency_unit' => 'month',
+        'installments' => '',
+        'hidden_AdditionalDetail' => 1,
+        'hidden_Premium' => 1,
+        'from_email_address' => '"civi45" <civi45@civicrm.com>',
+        'is_email_receipt' => TRUE,
+        'receipt_date' => '',
+        'receipt_date_time' => '',
+        'payment_processor_id' => $this->paymentProcessorID,
+        'currency' => 'USD',
+        'source' => 'bob sled race',
+      ), CRM_Core_Action::ADD);
+    }
+    catch (Civi\Payment\Exception\PaymentProcessorException $e) {
+      $error = TRUE;
+    }
+    $this->callAPISuccessGetCount('Contribution', array(
+      'contact_id' => $this->_individualId,
+      'contribution_status_id' => $error ? 'Failed' : 'Completed',
+      'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array(
+        'return' => 'payment_instrument_id',
+        'id' => $this->paymentProcessorID,
+      )),
+    ), 1);
+    $contact = $this->callAPISuccessGetSingle('Contact', array('id' => $this->_individualId));
+    $this->assertTrue(empty($contact['source']));
+    $msgs = $mut->getAllMessages();
+    $this->assertEquals(1, count($msgs));
+    $mut->stop();
+  }
+
+
   /**
    * Test the submit function on the contribution page.
    */
@@ -256,7 +321,6 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
     $mut = new CiviMailUtils($this, TRUE);
     $mut->clearMessages(0);
     $form = new CRM_Contribute_Form_Contribution();
-    $paymentProcessorID = $this->paymentProcessorCreate(array('is_test' => 0));
     $form->_mode = 'Live';
     $error = FALSE;
     try {
@@ -290,7 +354,7 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
         'from_email_address' => '"civi45" <civi45@civicrm.com>',
         'receipt_date' => '',
         'receipt_date_time' => '',
-        'payment_processor_id' => $paymentProcessorID,
+        'payment_processor_id' => $this->paymentProcessorID,
         'currency' => 'USD',
         'source' => 'bob sled race',
       ), CRM_Core_Action::ADD);
@@ -304,7 +368,7 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
       'contribution_status_id' => $error ? 'Failed' : 'Completed',
       'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array(
         'return' => 'payment_instrument_id',
-        'id' => $paymentProcessorID,
+        'id' => $this->paymentProcessorID,
        )),
     ), 1);
     $contact = $this->callAPISuccessGetSingle('Contact', array('id' => $this->_individualId));