From 63f6f48a43bae7b799030014efb509737b236938 Mon Sep 17 00:00:00 2001
From: Leonid Poluyanov <lpoluyanov@magento.com>
Date: Mon, 17 Oct 2016 15:55:22 +0300
Subject: [PATCH] MAGETWO-57989: Unable to create custom image attribute in
 category

---
 .../Controller/Adminhtml/Category/Save.php    | 26 ++++++++++++++++++-
 .../Magento/Catalog/Model/CategoryTest.php    |  2 +-
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
index b8fe7df8189..fa29d46c615 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php
@@ -81,6 +81,30 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category
             ?: \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Eav\Model\Config::class);
     }
 
+    /**
+     * Filter category data
+     *
+     * @deprecated
+     * @param array $rawData
+     * @return array
+     */
+    protected function _filterCategoryPostData(array $rawData)
+    {
+        $data = $rawData;
+        if (isset($data['image']) && is_array($data['image'])) {
+            if (!empty($data['image']['delete'])) {
+                $data['image'] = null;
+            } else {
+                if (isset($data['image'][0]['name']) && isset($data['image'][0]['tmp_name'])) {
+                    $data['image'] = $data['image'][0]['name'];
+                } else {
+                    unset($data['image']);
+                }
+            }
+        }
+        return $data;
+    }
+
     /**
      * Category save
      *
@@ -239,7 +263,7 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category
      * @param array $data
      * @return array
      */
-    public function imagePreprocessing(array $data)
+    public function imagePreprocessing($data)
     {
         $entityType = $this->eavConfig->getEntityType(CategoryAttributeInterface::ENTITY_TYPE_CODE);
 
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
index a3e90819912..49787c94038 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
@@ -293,7 +293,7 @@ class CategoryTest extends \PHPUnit_Framework_TestCase
             ->isObjectNew(true);
 
         $repository->save($model);
-        $this->assertNull($model->getImage());
+        $this->assertEmpty($model->getImage());
     }
 
     /**
-- 
GitLab