From ee8dba2b3173eb1444fc360ede78b6568805e32b Mon Sep 17 00:00:00 2001
From: Maxim Medinskiy <mmedinskiy@magento.com>
Date: Tue, 8 Nov 2016 19:23:34 +0200
Subject: [PATCH] MAGETWO-56072: [Performance] Image resize mechanism does not
 generate images of all necessary sizes

---
 app/code/Magento/Catalog/Model/Product/Image.php             | 5 +----
 .../Magento/Catalog/Test/Unit/Model/Product/ImageTest.php    | 5 ++++-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/code/Magento/Catalog/Model/Product/Image.php b/app/code/Magento/Catalog/Model/Product/Image.php
index 34b145ac113..769faa682f4 100644
--- a/app/code/Magento/Catalog/Model/Product/Image.php
+++ b/app/code/Magento/Catalog/Model/Product/Image.php
@@ -468,9 +468,6 @@ class Image extends \Magento\Framework\Model\AbstractModel
     public function setBaseFile($file)
     {
         $this->_isBaseFilePlaceholder = false;
-        if ($file == 'no_selection') {
-            return $this;
-        }
 
         $this->imageAsset = $this->getViewAssetImageFactory()->create(
             [
@@ -478,7 +475,7 @@ class Image extends \Magento\Framework\Model\AbstractModel
                 'filePath' => $file,
             ]
         );
-        if (!$this->_fileExists($this->imageAsset->getSourceFile())
+        if ($file == 'no_selection' || !$this->_fileExists($this->imageAsset->getSourceFile())
             || !$this->_checkMemory($this->imageAsset->getSourceFile())
         ) {
             $this->_isBaseFilePlaceholder = true;
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/ImageTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/ImageTest.php
index e4cae1d88eb..8ee875dad17 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Product/ImageTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/ImageTest.php
@@ -254,8 +254,10 @@ class ImageTest extends \PHPUnit_Framework_TestCase
 
     public function testSetBaseNoSelectionFile()
     {
+        $this->viewAssetPlaceholderFactory->expects($this->once())->method('create')->willReturn($this->imageAsset);
+        $this->imageAsset->expects($this->any())->method('getSourceFile')->willReturn('Default Placeholder Path');
         $this->image->setBaseFile('no_selection');
-        $this->assertNull($this->image->getBaseFile());
+        $this->assertEquals('Default Placeholder Path', $this->image->getBaseFile());
     }
 
     public function testSetGetImageProcessor()
@@ -373,6 +375,7 @@ class ImageTest extends \PHPUnit_Framework_TestCase
 
     public function testGetUrlNoSelection()
     {
+        $this->viewAssetPlaceholderFactory->expects($this->once())->method('create')->willReturn($this->imageAsset);
         $this->imageAsset->expects($this->any())->method('getUrl')->will($this->returnValue('Default Placeholder URL'));
         $this->image->setBaseFile('no_selection');
         $this->assertEquals('Default Placeholder URL', $this->image->getUrl());
-- 
GitLab