Commit bdf5cf87 authored by colemanw's avatar colemanw Committed by GitHub

Merge pull request #14818 from totten/master-magic-cache

MagicMerge - Fix ephemeral overrides for aliased properties
parents 50e7050d cdf3884e
......@@ -318,10 +318,6 @@ class CRM_Core_Config_MagicMerge {
unset($this->cache[$k]);
$type = $this->map[$k][0];
// If foreign name is set, use that name (except with callback types because
// their second parameter is the object, not the foreign name).
$name = isset($this->map[$k][1]) && $type != 'callback' ? $this->map[$k][1] : $k;
switch ($type) {
case 'setting':
case 'setting-path':
......@@ -331,12 +327,12 @@ class CRM_Core_Config_MagicMerge {
case 'callback':
case 'boot-svc':
// In the past, changes to $config were not persisted automatically.
$this->cache[$name] = $v;
$this->cache[$k] = $v;
return;
case 'local':
$this->initLocals();
$this->locals[$name] = $v;
$this->locals[$k] = $v;
return;
default:
......
<?php
/*
+--------------------------------------------------------------------+
| CiviCRM version 5 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2019 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
/**
*
* @package CiviCRM
* @copyright CiviCRM LLC (c) 2004-2019
* $Id: $
*
*/
/**
* Class CRM_Core_Config_MagicMergeTest
* @group headless
*/
class CRM_Core_Config_MagicMergeTest extends CiviUnitTestCase {
public function getOverrideExamples() {
return [
// Check examples of a few different types
['configAndLogDir', '/tmp/zoo'],
['maxAttachments', '112358'],
['initialized', 'for sure'],
['userFrameworkBaseURL', 'http://example.com/use/the/framework/luke'],
['inCiviCRM', 'all the data'],
['cleanURL', 'as clean as a url can be'],
['defaultCurrencySymbol', ':)'],
];
}
/**
* @param string $field
* @param mixed $tempValue
* @dataProvider getOverrideExamples
*/
public function testTempOverride($field, $tempValue) {
$config = CRM_Core_Config::singleton();
$origValue = $config->{$field};
$config->{$field} = $tempValue;
$this->assertEquals($tempValue, $config->{$field});
$config = CRM_Core_Config::singleton();
$this->assertEquals($tempValue, $config->{$field});
$config = CRM_Core_Config::singleton(TRUE, TRUE);
$this->assertEquals($origValue, $config->{$field});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment