3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
13 * Class api_v3_MailSettingsTest
17 class api_v3_MailSettingsTest
extends CiviUnitTestCase
{
19 protected $_apiversion = 3;
25 public $DBResetRequired = FALSE;
27 public function setUp() {
30 'name' => "my mail setting",
31 'domain' => 'setting.com',
32 'localpart' => 'civicrm+',
33 'server' => "localhost",
39 $this->useTransaction(TRUE);
47 * @dataProvider versionThreeAndFour
49 public function testCreateMailSettings($version) {
50 $this->_apiversion
= $version;
51 $this->callAPISuccessGetCount('mail_settings', [], 1);
52 $result = $this->callAPIAndDocument('MailSettings', 'create', $this->params
, __FUNCTION__
, __FILE__
);
53 $this->assertEquals(1, $result['count']);
54 $this->assertNotNull($result['values'][$result['id']]['id']);
55 $this->callAPISuccess('MailSettings', 'delete', ['id' => $result['id']]);
56 $this->callAPISuccessGetCount('mail_settings', [], 1);
60 * Test caches cleared adequately.
64 * @dataProvider versionThreeAndFour
66 public function testCreateUpdateMailSettings($version) {
67 $this->_apiversion
= $version;
68 $result = $this->callAPISuccess('MailSettings', 'create', $this->params
);
69 $this->assertEquals('setting.com', CRM_Core_BAO_MailSettings
::defaultDomain());
70 $this->callAPISuccess('mail_settings', 'create', ['id' => $result['id'], 'domain' => 'updated.com']);
71 $this->assertEquals('updated.com', CRM_Core_BAO_MailSettings
::defaultDomain());
72 $this->callAPISuccess('MailSettings', 'delete', ['id' => $result['id']]);
73 $this->callAPISuccessGetCount('mail_settings', [], 1);
81 * @dataProvider versionThreeAndFour
83 public function testGetMailSettings($version) {
84 $this->_apiversion
= $version;
85 $this->callAPIAndDocument('MailSettings', 'create', $this->params
, __FUNCTION__
, __FILE__
);
86 $result = $this->callAPIAndDocument('MailSettings', 'get', $this->params
, __FUNCTION__
, __FILE__
);
87 $this->assertEquals(1, $result['count']);
88 $this->assertNotNull($result['values'][$result['id']]['id']);
89 $this->callAPISuccess('MailSettings', 'delete', ['id' => $result['id']]);
90 $this->callAPISuccessGetCount('mail_settings', [], 1);
96 * @dataProvider versionThreeAndFour
98 public function testDeleteMailSettings($version) {
99 $this->_apiversion
= $version;
100 $this->callAPIAndDocument('MailSettings', 'create', $this->params
, __FUNCTION__
, __FILE__
);
101 $entity = $this->callAPISuccess('MailSettings', 'get', $this->params
);
102 $this->assertEquals('setting.com', $entity['values'][$entity['id']]['domain']);
103 $this->callAPIAndDocument('MailSettings', 'delete', ['id' => $entity['id']], __FUNCTION__
, __FILE__
);
104 $checkDeleted = $this->callAPISuccess('MailSettings', 'get', []);
105 $this->assertEquals('EXAMPLE.ORG', $checkDeleted['values'][$checkDeleted['id']]['domain']);
109 * Test chained delete.
111 * @param int $version
113 * @dataProvider versionThreeAndFour
115 public function testGetMailSettingsChainDelete($version) {
116 $this->_apiversion
= $version;
117 $description = "Demonstrates get + delete in the same call.";
118 $subFile = 'ChainedGetDelete';
120 'name' => "delete this setting",
121 'api.MailSettings.delete' => 1,
123 $this->callAPISuccess('MailSettings', 'create', ['name' => "delete this setting"] +
$this->params
);
124 $result = $this->callAPIAndDocument('MailSettings', 'get', $params, __FUNCTION__
, __FILE__
, $description, $subFile);
125 $this->assertEquals(0, $this->callAPISuccess('MailSettings', 'getcount', ['name' => "delete this setting"]));