3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.7 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2017 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
19 | You should have received a copy of the GNU Affero General Public |
20 | License along with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
28 * Test SMS provider to allow for testing
30 class CiviTestSMSProvider
extends CRM_SMS_Provider
{
31 protected $_providerInfo = array();
33 static private $_singleton = array();
35 public function __construct($provider, $skipAuth = TRUE) {
36 $this->provider
= $provider;
39 public static function &singleton($providerParams = array(), $force = FALSE) {
40 if (isset($providerParams['provider'])) {
41 $providers = CRM_SMS_BAO_Provider
::getProviders(NULL, array('name' => $providerParams['provider']));
42 $provider = current($providers);
43 $providerID = $provider['id'];
46 $providerID = CRM_Utils_Array
::value('provider_id', $providerParams);
48 $skipAuth = $providerID ?
FALSE : TRUE;
49 $cacheKey = (int) $providerID;
51 if (!isset(self
::$_singleton[$cacheKey]) ||
$force) {
54 $provider = CRM_SMS_BAO_Provider
::getProviderInfo($providerID);
56 self
::$_singleton[$cacheKey] = new CiviTestSMSProvider($provider, $skipAuth);
58 return self
::$_singleton[$cacheKey];
61 public function send($recipients, $header, $message, $dncID = NULL) {