diff --git a/CRM/Core/DAO/AllCoreTables.data.php b/CRM/Core/DAO/AllCoreTables.data.php index f19c8323197b..0488ea6ce548 100644 --- a/CRM/Core/DAO/AllCoreTables.data.php +++ b/CRM/Core/DAO/AllCoreTables.data.php @@ -24,7 +24,7 @@ | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ */ -// (GenCodeChecksum:fe1a575dafdc824e3ce8a7e0d7fc49bf) +// (GenCodeChecksum:53f1cd5e913b2f82abfc7097127caafc) return array( 'CRM_Core_DAO_AddressFormat' => array( 'name' => 'AddressFormat', diff --git a/CRM/SMS/BAO/Provider.php b/CRM/SMS/BAO/Provider.php index 5906419c8142..4d3470450176 100644 --- a/CRM/SMS/BAO/Provider.php +++ b/CRM/SMS/BAO/Provider.php @@ -106,11 +106,6 @@ public static function saveRecord($values) { * @param int $providerId */ public static function updateRecord($values, $providerId) { - $current_domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $providerId, 'domain_id'); - if (isset($current_domain_id) || is_null($current_domain_id)) { - $current_domain_id = CRM_Core_Config::domainID(); - } - $values['domain_id'] = CRM_Utils_Array::value('domain_id', $values, $current_domain_id); $dao = new CRM_SMS_DAO_Provider(); $dao->id = $providerId; if ($dao->find(TRUE)) { diff --git a/tests/phpunit/CRM/SMS/BAO/ProviderTest.php b/tests/phpunit/CRM/SMS/BAO/ProviderTest.php new file mode 100644 index 000000000000..c4fb26452e00 --- /dev/null +++ b/tests/phpunit/CRM/SMS/BAO/ProviderTest.php @@ -0,0 +1,99 @@ +callAPISuccess('option_value', 'create', array('option_group_id' => 'sms_provider_name', 'name' => 'test_provider_name', 'label' => 'test_provider_name', 'value' => 1)); + $this->option_value = $option['id']; + } + + /** + * Clean up after each test. + */ + public function tearDown() { + parent::tearDown(); + $this->callAPISuccess('option_value', 'delete', array('id' => $this->option_value)); + } + + /** + * CRM-19961 Check that when saving and updating a SMS provider with domain as NULL that it stays null + */ + public function testCreateAndUpdateProvider() { + $values = array( + 'domain_id' => NULL, + 'title' => 'test SMS provider', + 'username' => 'test', + 'password' => 'dummpy password', + 'name' => 1, + 'is_active' => 1, + 'api_type' => 1, + ); + CRM_SMS_BAO_Provider::saveRecord($values); + $provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('title' => 'test SMS provider')); + $domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id'); + $this->assertNull($domain_id); + $values2 = array('title' => 'Test SMS Provider2'); + CRM_SMS_BAO_Provider::updateRecord($values2, $provider['id']); + $provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('id' => $provider['id'])); + $this->assertEquals('Test SMS Provider2', $provider['title']); + $domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id'); + $this->assertNull($domain_id); + CRM_SMS_BAO_Provider::del($provider['id']); + } + + /** + * CRM-19961 Check that when a domain is not passed when saving it defaults to current domain when create + */ + public function testCreateWithoutDomain() { + $values = array( + 'title' => 'test SMS provider', + 'username' => 'test', + 'password' => 'dummpy password', + 'name' => 1, + 'is_active' => 1, + 'api_type' => 1, + ); + CRM_SMS_BAO_Provider::saveRecord($values); + $provider = $this->callAPISuccess('SmsProvider', 'getsingle', array('title' => 'test SMS provider')); + $domain_id = CRM_Core_DAO::getFieldValue('CRM_SMS_DAO_Provider', $provider['id'], 'domain_id'); + $this->assertEquals(CRM_Core_Config::domainID(), $domain_id); + CRM_SMS_BAO_Provider::del($provider['id']); + } + +}