From db83d99157ae7fbadcf67ad288aa02f3d7b217aa Mon Sep 17 00:00:00 2001
From: Oleksandr Karpenko <okarpenko@ebay.com>
Date: Wed, 6 Apr 2016 19:06:25 +0300
Subject: [PATCH] MAGETWO-51604: [TD] Add functionality to save image in custom
 folder

---
 app/code/Magento/Theme/Model/Design/Config/Storage.php      | 1 -
 app/code/Magento/Theme/Model/Design/Config/ValueChecker.php | 2 --
 .../Magento/Theme/Model/Design/Config/ValueProcessor.php    | 5 ++---
 .../Model/ResourceModel/Design/Config/Scope/Collection.php  | 1 -
 .../Theme/Test/Unit/Model/Design/Config/StorageTest.php     | 4 ++--
 .../Test/Unit/Model/Design/Config/ValueProcessorTest.php    | 4 ++--
 .../ResourceModel/Design/Config/Scope/CollectionTest.php    | 6 +++---
 7 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/app/code/Magento/Theme/Model/Design/Config/Storage.php b/app/code/Magento/Theme/Model/Design/Config/Storage.php
index 8857e79297f..5e47d1aefe4 100644
--- a/app/code/Magento/Theme/Model/Design/Config/Storage.php
+++ b/app/code/Magento/Theme/Model/Design/Config/Storage.php
@@ -77,7 +77,6 @@ class Storage
         foreach ($fieldsData as &$fieldData) {
             $value = $this->valueProcessor->process(
                 $this->scopeConfig->getValue($fieldData->getPath(), $scope, $scopeId),
-                $fieldData->getPath(),
                 $scope,
                 $scopeId,
                 $fieldData->getFieldConfig()
diff --git a/app/code/Magento/Theme/Model/Design/Config/ValueChecker.php b/app/code/Magento/Theme/Model/Design/Config/ValueChecker.php
index 4c8c790fa42..0a1c61f7564 100644
--- a/app/code/Magento/Theme/Model/Design/Config/ValueChecker.php
+++ b/app/code/Magento/Theme/Model/Design/Config/ValueChecker.php
@@ -57,14 +57,12 @@ class ValueChecker
             return !$this->isEqual(
                 $this->valueProcessor->process(
                     $value,
-                    $fieldConfig['path'],
                     $scope,
                     $scopeId,
                     $fieldConfig
                 ),
                 $this->valueProcessor->process(
                     $this->appConfig->getValue($fieldConfig['path'], $scope, $scopeId),
-                    $fieldConfig['path'],
                     $scope,
                     $scopeId,
                     $fieldConfig
diff --git a/app/code/Magento/Theme/Model/Design/Config/ValueProcessor.php b/app/code/Magento/Theme/Model/Design/Config/ValueProcessor.php
index 77d027b87ec..ed3ae3809fd 100644
--- a/app/code/Magento/Theme/Model/Design/Config/ValueProcessor.php
+++ b/app/code/Magento/Theme/Model/Design/Config/ValueProcessor.php
@@ -27,16 +27,15 @@ class ValueProcessor
      * Process value
      *
      * @param string $value
-     * @param string $path
      * @param string $scope
      * @param string $scopeId
      * @param array $fieldConfig
      * @return mixed
      */
-    public function process($value, $path, $scope, $scopeId, array $fieldConfig)
+    public function process($value, $scope, $scopeId, array $fieldConfig)
     {
         $backendModel = $this->backendModelFactory->createByPath(
-            $path,
+            $fieldConfig['path'],
             [
                 'value' => $value,
                 'field_config' => $fieldConfig,
diff --git a/app/code/Magento/Theme/Model/ResourceModel/Design/Config/Scope/Collection.php b/app/code/Magento/Theme/Model/ResourceModel/Design/Config/Scope/Collection.php
index ce7eda260fd..7c1b50024ba 100644
--- a/app/code/Magento/Theme/Model/ResourceModel/Design/Config/Scope/Collection.php
+++ b/app/code/Magento/Theme/Model/ResourceModel/Design/Config/Scope/Collection.php
@@ -101,7 +101,6 @@ class Collection extends \Magento\Framework\Data\Collection
             if (isset($itemData['use_in_grid']) && (boolean)$itemData['use_in_grid']) {
                 $result[$itemName] = $this->valueProcessor->process(
                     $this->appConfig->getValue($itemData['path'], $scope, $scopeId),
-                    $itemData['path'],
                     $scope,
                     $scopeId,
                     $itemData
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Config/StorageTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Config/StorageTest.php
index 075e0984627..58d993cf20c 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Config/StorageTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Config/StorageTest.php
@@ -177,14 +177,14 @@ class StorageTest extends \PHPUnit_Framework_TestCase
             ->willReturn('path');
         $this->designConfigData->expects($this->atLeastOnce())
             ->method('getFieldConfig')
-            ->willReturn([]);
+            ->willReturn(['path' => 'path']);
         $this->scopeConfig->expects($this->once())
             ->method('getValue')
             ->with('path', $scope, $scopeId)
             ->willReturn('value');
         $this->valueProcessor->expects($this->once())
             ->method('process')
-            ->with('value', 'path', 'website', 1, [])
+            ->with('value', 'website', 1, ['path' => 'path'])
             ->willReturnArgument(0);
         $this->designConfigData->expects($this->once())
             ->method('setValue')
diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Config/ValueProcessorTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Config/ValueProcessorTest.php
index 19f3da24aca..03eaca7853a 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/Design/Config/ValueProcessorTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Config/ValueProcessorTest.php
@@ -44,7 +44,7 @@ class ValueProcessorTest extends \PHPUnit_Framework_TestCase
                 $path,
                 [
                     'value' => $value,
-                    'field_config' => [],
+                    'field_config' => ['path' => $path],
                     'scope' => $scope,
                     'scope_id' => $scopeId
                 ]
@@ -55,6 +55,6 @@ class ValueProcessorTest extends \PHPUnit_Framework_TestCase
         $this->backendModel->expects($this->once())
             ->method('getValue')
             ->willReturn($value);
-        $this->assertEquals($value, $this->valueProcessor->process($value, $path, $scope, $scopeId, []));
+        $this->assertEquals($value, $this->valueProcessor->process($value, $scope, $scopeId, ['path' => $path]));
     }
 }
diff --git a/app/code/Magento/Theme/Test/Unit/Model/ResourceModel/Design/Config/Scope/CollectionTest.php b/app/code/Magento/Theme/Test/Unit/Model/ResourceModel/Design/Config/Scope/CollectionTest.php
index 45a812039df..378016bb7e1 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/ResourceModel/Design/Config/Scope/CollectionTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/ResourceModel/Design/Config/Scope/CollectionTest.php
@@ -113,9 +113,9 @@ class CollectionTest extends \PHPUnit_Framework_TestCase
         $this->valueProcessor->expects($this->atLeastOnce())
             ->method('process')
             ->withConsecutive(
-                ['DefaultValue', 'second/field/path'],
-                ['WebsiteValue', 'second/field/path'],
-                ['WebsiteValue', 'second/field/path']
+                ['DefaultValue', 'default', null, ['path' => 'second/field/path', 'use_in_grid' => 1]],
+                ['WebsiteValue', 'website', 1, ['path' => 'second/field/path', 'use_in_grid' => 1]],
+                ['WebsiteValue', 'store', 1, ['path' => 'second/field/path', 'use_in_grid' => 1]]
             )
             ->willReturnOnConsecutiveCalls(
                 'DefaultValue',
-- 
GitLab