diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-07-08 03:55:58 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-07-08 03:55:58 +0400 |
commit | fc2718d880c37f4fd91fa4824b3b956d6326e1c0 (patch) | |
tree | 60cab6363ff2c19ac27bff3ab4398081efb5f05a /tests | |
parent | fbda5abfcd843eee8d4c33621bdd8e4390b46ddc (diff) |
refs #5409 #341 #5349 if a config value contains a dollar sign convert it to an html entity to prevent it being interpreted as a PHP variable. This allows us to remove the RAW ini parser flag which causes trouble on some PHP versions as the parser seems to be buggy.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Core/ConfigTest.php | 24 | ||||
-rw-r--r-- | tests/resources/Config/common.config.ini.php | 3 |
2 files changed, 25 insertions, 2 deletions
diff --git a/tests/PHPUnit/Core/ConfigTest.php b/tests/PHPUnit/Core/ConfigTest.php index 60245868d0..6ddba5840a 100644 --- a/tests/PHPUnit/Core/ConfigTest.php +++ b/tests/PHPUnit/Core/ConfigTest.php @@ -418,6 +418,17 @@ class ConfigTest extends PHPUnit_Framework_TestCase 'newSetting' => 'newValue')), $header . "[General]\nkey = \"value\"\n\n[CommonCategory]\nnewSetting = \"newValue\"\n\n", )), + + array('Converts Dollar Sign To Dollar Entity', array( + array('General' => array('key' => '$value', 'key2' => '${value}')), // local + array('General' => array('key' => '$global'), // global + 'CommonCategory' => array('settingGlobal' => 'valueGlobal')), + array('CommonCategory' => array('settingCommon' => 'common', // common + 'settingCommon2' => 'common2')), + array('CommonCategory' => array('settingCommon2' => 'common2', + 'newSetting' => 'newValue')), + $header . "[General]\nkey = \"$value\"\nkey2 = \"${value}\"\n\n[CommonCategory]\nnewSetting = \"newValue\"\n\n", + )), ); } @@ -436,5 +447,18 @@ class ConfigTest extends PHPUnit_Framework_TestCase $output = $config->dumpConfig($configLocal, $configGlobal, $configCommon, $configCache); $this->assertEquals($expected, $output, $description); } + + public function testDollarEntityGetsConvertedToDollarSign() + { + $userFile = PIWIK_INCLUDE_PATH . '/tests/resources/Config/config.ini.php'; + $globalFile = PIWIK_INCLUDE_PATH . '/tests/resources/Config/global.ini.php'; + $commonFile = PIWIK_INCLUDE_PATH . '/tests/resources/Config/common.config.ini.php'; + + $config = Config::getInstance(); + $config->setTestEnvironment($userFile, $globalFile, $commonFile); + $config->init(); + + $this->assertEquals('${@piwik(crash))}', $config->Category['key3']); + } } diff --git a/tests/resources/Config/common.config.ini.php b/tests/resources/Config/common.config.ini.php index db8cb53d41..15852485dc 100644 --- a/tests/resources/Config/common.config.ini.php +++ b/tests/resources/Config/common.config.ini.php @@ -1,8 +1,7 @@ [Category] key2 = valueCommon -; This should not trigger an error if INI_SCANNER_RAW is used -key3 = "${@piwik(crash))}" +key3 = "${@piwik(crash))}" [GeneralSection] password = passwordCommonShouldNotBeOverriden |