fix E_NOTICE
authorDemeritCowboy <demeritcowboy@hotmail.com>
Thu, 6 Jun 2019 05:10:51 +0000 (01:10 -0400)
committerDemeritCowboy <demeritcowboy@hotmail.com>
Thu, 6 Jun 2019 06:03:19 +0000 (02:03 -0400)
api/v3/Mailing.php
tests/phpunit/CRM/SMS/PreviewTest.php [new file with mode: 0644]

index c29d3d1350e38dd65ce15cd3150358b89d869ead..a71e5645d96f8ba969693eeecd8be2a227d24634 100644 (file)
@@ -594,7 +594,7 @@ function civicrm_api3_mailing_preview($params) {
   return civicrm_api3_create_success([
     'id' => $mailingID,
     'contact_id' => $contactID,
-    'subject' => $mime->headers()['Subject'],
+    'subject' => CRM_Utils_Array::value('Subject', $mime->headers(), ''),
     'body_html' => $mime->getHTMLBody(),
     'body_text' => $mime->getTXTBody(),
   ]);
diff --git a/tests/phpunit/CRM/SMS/PreviewTest.php b/tests/phpunit/CRM/SMS/PreviewTest.php
new file mode 100644 (file)
index 0000000..dfe8271
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ *  Test SMS Preview
+ *
+ * @group headless
+ */
+class CRM_SMS_PreviewTest extends CiviUnitTestCase {
+
+  /**
+   * Set Up Function
+   */
+  public function setUp() {
+    parent::setUp();
+    $option = $this->callAPISuccess('option_value', 'create', ['option_group_id' => 'sms_provider_name', 'name' => 'test_provider_name', 'label' => 'Test Provider Label', 'value' => 1]);
+    $this->option_value = $option['id'];
+  }
+
+  /**
+   * Clean up after each test.
+   */
+  public function tearDown() {
+    parent::tearDown();
+    $this->callAPISuccess('option_value', 'delete', ['id' => $this->option_value]);
+  }
+
+  /**
+   * Test SMS preview.
+   */
+  public function testSMSPreview() {
+    $result = $this->callAPISuccess('SmsProvider', 'create', [
+      'title' => 'test SMS provider',
+      'username' => 'test',
+      'password' => 'password',
+      // 'name' is the option_value 'value' (not id, not name) we created in setUp()
+      'name' => 1,
+      'is_active' => 1,
+      'is_default' => 1,
+      'api_type' => 1,
+    ]);
+    $provider_id = $result['id'];
+    $result = $this->callAPISuccess('Mailing', 'create', [
+      'name' => "Test1",
+      'from_name' => "+12223334444",
+      'from_email' => "test@test.com",
+      'replyto_email' => "test@test.com",
+      'body_text' => "Testing body",
+      'sms_provider_id' => $provider_id,
+      'header_id' => NULL,
+      'footer_id' => NULL,
+      'unsubscribe_id' => NULL,
+    ]);
+    $mailing_id = $result['id'];
+    $result = $this->callAPISuccess('Mailing', 'preview', [
+      'id' => $mailing_id,
+    ]);
+  }
+
+}