return $fromEmailValues;
}
+ $contactFromEmails = [];
// add logged in user's active email ids
$contactID = CRM_Core_Session::singleton()->getLoggedInContactID();
if ($contactID) {
if (!empty($emailVal['is_primary'])) {
$fromEmailHtml .= ' ' . ts('(preferred)');
}
- $fromEmailValues[$emailId] = $fromEmailHtml;
+ $contactFromEmails[$fromEmail] = $fromEmailHtml;
}
}
- return $fromEmailValues;
+ return CRM_Utils_Array::crmArrayMerge($contactFromEmails, $fromEmailValues);
}
/**
$this->contactDelete($contactId);
}
+ /**
+ * Test getting list of Emails for use in Receipts and Single Email sends
+ */
+ public function testGetFromEmail() {
+ $this->createLoggedInUser();
+ $fromEmails = CRM_Core_BAO_Email::getFromEmail();
+ $emails = array_values($fromEmails);
+ $this->assertContains("(preferred)", $emails[0]);
+ Civi::settings()->set("allow_mail_from_logged_in_contact", 0);
+ $this->callAPISuccess('system', 'flush', []);
+ $fromEmails = CRM_Core_BAO_Email::getFromEmail();
+ $emails = array_values($fromEmails);
+ $this->assertNotContains("(preferred)", $emails[0]);
+ $this->assertContains("info@EXAMPLE.ORG", $emails[0]);
+ Civi::settings()->set("allow_mail_from_logged_in_contact", 1);
+ $this->callAPISuccess('system', 'flush', []);
+ }
+
}