diff --git a/app/code/Magento/Config/Model/Placeholder/Environment.php b/app/code/Magento/Config/Model/Placeholder/Environment.php index b5c1c6be89c2f23a031102590514c026730827b0..96ffadc96c6f9a958ebc61e6626bcc02ac178237 100644 --- a/app/code/Magento/Config/Model/Placeholder/Environment.php +++ b/app/code/Magento/Config/Model/Placeholder/Environment.php @@ -59,7 +59,7 @@ class Environment implements PlaceholderInterface */ public function restore($template) { - $template = str_replace(static::PREFIX, '', $template); + $template = preg_replace('/^' . static::PREFIX . '/', '', $template); $template = str_replace('__', '/', $template); $template = strtolower($template); diff --git a/app/code/Magento/Config/Test/Unit/Model/Placeholder/EnvironmentTest.php b/app/code/Magento/Config/Test/Unit/Model/Placeholder/EnvironmentTest.php index 6d1113a7750c54ab5246352b3aa5eb66799011d9..64b4e6e37fb94867854da15f8e0f72d9b0ccbf3c 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Placeholder/EnvironmentTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Placeholder/EnvironmentTest.php @@ -47,8 +47,8 @@ class EnvironmentTest extends \PHPUnit_Framework_TestCase public function testGenerate($path, $scope, $scopeId, $expected) { $this->assertSame( - $this->model->generate($path, $scope, $scopeId), - $expected + $expected, + $this->model->generate($path, $scope, $scopeId) ); } @@ -103,4 +103,29 @@ class EnvironmentTest extends \PHPUnit_Framework_TestCase [Environment::PREFIX . 'A@#$', false] ]; } + + /** + * @param string $template + * @param string $expected + * @dataProvider restoreDataProvider + */ + public function testRestore($template, $expected) + { + $this->assertSame( + $expected, + $this->model->restore($template) + ); + } + + /** + * @return array + */ + public function restoreDataProvider() + { + return [ + [Environment::PREFIX . 'TEST__CONFIG', 'test/config'], + [Environment::PREFIX . 'TEST__CONFIG__VALUE', 'test/config/value'], + [Environment::PREFIX . 'TEST__CONFIG_VALUE', 'test/config_value'], + ]; + } }