4 class SettingsBagTest
extends \CiviUnitTestCase
{
6 protected $origSetting;
8 protected function setUp() {
9 $this->origSetting
= $GLOBALS['civicrm_setting'];
12 $this->useTransaction(TRUE);
17 public function tearDown() {
18 $GLOBALS['civicrm_setting'] = $this->origSetting
;
23 * CRM-19610 - Ensure InnoDb FTS doesn't break search preferenes when disabled.
25 public function testInnoDbFTS() {
27 $settingsBag = \Civi
::settings();
29 $settingsBag->set("enable_innodb_fts", "0");
30 $this->assertEquals(0, $settingsBag->get('enable_innodb_fts'));
34 * The setting "contribution_invoice_settings" is actually a virtual value built on other settings.
35 * Check that various updates work as expected.
37 public function testVirtualContributionSetting_explicit() {
38 $s = \Civi
::settings();
40 $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
41 $this->assertEquals(10, $s->get('invoice_due_date'));
42 $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
44 $s->set('invoice_due_date', 20);
45 $this->assertEquals(20, $s->get('contribution_invoice_settings')['due_date']);
46 $this->assertEquals(20, $s->get('invoice_due_date'));
47 $this->assertEquals(20, $s->getExplicit('invoice_due_date'));
49 $s->set('contribution_invoice_settings', array_merge($s->get('contribution_invoice_settings'), [
52 $this->assertEquals(30, $s->get('contribution_invoice_settings')['due_date']);
53 $this->assertEquals(30, $s->get('invoice_due_date'));
54 $this->assertEquals(30, $s->getExplicit('invoice_due_date'));
56 $s->revert('invoice_due_date');
57 $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
58 $this->assertEquals(10, $s->get('invoice_due_date'));
59 $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
63 * The setting "contribution_invoice_settings" is actually a virtual value built on other settings.
64 * Check that mandatory values ($civicrm_settings) are respected.
66 public function testVirtualContributionSetting_mandatory() {
67 $s = \Civi
::settings();
68 $this->assertEquals(10, $s->get('contribution_invoice_settings')['due_date']);
69 $this->assertEquals(10, $s->get('invoice_due_date'));
70 $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));
72 $s->loadMandatory(['invoice_due_date' => 30]);
74 $this->assertEquals(30, $s->get('contribution_invoice_settings')['due_date']);
75 $this->assertEquals(30, $s->get('invoice_due_date'));
76 $this->assertEquals(NULL, $s->getExplicit('invoice_due_date'));