diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php index 492bf1c021cf04c071528821f2e966f506e6a17b..b8fe7df8189de416ae51edffb5ea914c4f035974 100644 --- a/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php +++ b/app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php @@ -6,7 +6,7 @@ namespace Magento\Catalog\Controller\Adminhtml\Category; use Magento\Store\Model\StoreManagerInterface; -use \Magento\Catalog\Api\Data\CategoryAttributeInterface; +use Magento\Catalog\Api\Data\CategoryAttributeInterface; /** * Class Save @@ -70,14 +70,15 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, \Magento\Framework\View\LayoutFactory $layoutFactory, StoreManagerInterface $storeManager, - \Magento\Eav\Model\Config $eavConfig + \Magento\Eav\Model\Config $eavConfig = null ) { parent::__construct($context); $this->resultRawFactory = $resultRawFactory; $this->resultJsonFactory = $resultJsonFactory; $this->layoutFactory = $layoutFactory; $this->storeManager = $storeManager; - $this->eavConfig = $eavConfig; + $this->eavConfig = $eavConfig + ?: \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Eav\Model\Config::class); } /** @@ -233,9 +234,10 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Category } /** - * @param array $data Category data - * @return mixed - * @throws \Magento\Framework\Exception\LocalizedException + * Sets image attribute data to false if image was removed + * + * @param array $data + * @return array */ public function imagePreprocessing(array $data) { diff --git a/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php b/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php index efd3a4afb4a60d72490698b3c9453cec3609b4e7..4d5a811211bf75b81a1e983f740e43971fce604c 100644 --- a/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php +++ b/app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php @@ -48,34 +48,29 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend */ private $imageUploader; - /** - * @var \Magento\Framework\ObjectManagerInterface - */ - private $objectManager; - /** * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory - * @param \Magento\Framework\ObjectManagerInterface $objectManager */ public function __construct( \Psr\Log\LoggerInterface $logger, \Magento\Framework\Filesystem $filesystem, - \Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory, - \Magento\Framework\ObjectManagerInterface $objectManager + \Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory ) { $this->_filesystem = $filesystem; $this->_fileUploaderFactory = $fileUploaderFactory; $this->_logger = $logger; - $this->objectManager = $objectManager; } /** + * Gets image name from $value array. + * Will return empty string in a case when $value is not an array + * * @param array $value Attribute value * @return string */ - protected function getUploadedImageName($value) + private function getUploadedImageName($value) { if (is_array($value) && isset($value[0]['name'])) { return $value[0]['name']; @@ -86,6 +81,7 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend /** * Avoiding saving potential upload data to DB + * Will set empty image attribute value if image was not uploaded * * @param \Magento\Framework\DataObject $object * @return $this @@ -113,7 +109,8 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend private function getImageUploader() { if ($this->imageUploader === null) { - $this->imageUploader = $this->objectManager->get(\Magento\Catalog\CategoryImageUpload::class); + $this->imageUploader = \Magento\Framework\App\ObjectManager::getInstance() + ->get(\Magento\Catalog\CategoryImageUpload::class); } return $this->imageUploader; diff --git a/app/code/Magento/Catalog/Model/Category/DataProvider.php b/app/code/Magento/Catalog/Model/Category/DataProvider.php index 8ea60d54ec5564e7cea09c61ff7546283d3183de..aefd31e21ad62f8469837a801581170581555c6a 100644 --- a/app/code/Magento/Catalog/Model/Category/DataProvider.php +++ b/app/code/Magento/Catalog/Model/Category/DataProvider.php @@ -370,11 +370,13 @@ class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider } /** + * Converts category image data to acceptable for rendering format + * * @param \Magento\Catalog\Model\Category $category * @param array $categoryData * @return array */ - protected function convertValues($category, $categoryData) + private function convertValues($category, $categoryData) { foreach ($category->getAttributes() as $attributeCode => $attribute) { if (!isset($categoryData[$attributeCode])) { diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Image/UploadTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Image/UploadTest.php index 40c40a17b8e52ec0cb0115db65bc11d1f0e9ae51..e49da3972e0a0c998d3511c524c3312be42afaa5 100644 --- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Image/UploadTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/Image/UploadTest.php @@ -5,27 +5,26 @@ */ namespace Magento\Catalog\Test\Unit\Controller\Adminhtml\Category\Image; -use \Magento\Catalog\Controller\Adminhtml\Category\Image\Upload as Model; -use \Magento\Framework\App\Request\Http as Request; -use \Magento\Catalog\Model\ImageUploader; -use \Magento\Framework\Controller\ResultFactory; -use \Magento\Framework\DataObject; -use \Magento\Backend\App\Action\Context; +use Magento\Catalog\Controller\Adminhtml\Category\Image\Upload as Model; +use Magento\Framework\App\Request\Http as Request; +use Magento\Catalog\Model\ImageUploader; +use Magento\Framework\Controller\ResultFactory; +use Magento\Framework\DataObject; +use Magento\Backend\App\Action\Context; /** * Class UploadTest - * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class UploadTest extends \PHPUnit_Framework_TestCase { - protected $objectManager; + private $objectManager; protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); } - public function uploadedImageNameProvider() + public function executeDataProvider() { return [ ['image1', 'image1'], @@ -35,12 +34,12 @@ class UploadTest extends \PHPUnit_Framework_TestCase } /** - * @param $name - * @param $savedName + * @param string $name + * @param string $savedName * - * @dataProvider uploadedImageNameProvider + * @dataProvider executeDataProvider */ - public function testExecuteShouldSaveUploadedImageWithSpecifiedNameToTmpFolder($name, $savedName) + public function testExecute($name, $savedName) { $request = $this->objectManager->getObject(Request::class); diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php index 9ef502b9640cac5d1c17606244f61015e0c2bbd0..58557e25d970b442fe1bdeaac494d7b215c64472 100644 --- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Category/SaveTest.php @@ -16,67 +16,67 @@ class SaveTest extends \PHPUnit_Framework_TestCase /** * @var \Magento\Backend\Model\View\Result\RedirectFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $resultRedirectFactoryMock; + private $resultRedirectFactoryMock; /** * @var \Magento\Framework\Controller\Result\RawFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $resultRawFactoryMock; + private $resultRawFactoryMock; /** * @var \Magento\Framework\Controller\Result\JsonFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $resultJsonFactoryMock; + private $resultJsonFactoryMock; /** * @var \Magento\Framework\View\LayoutFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $layoutFactoryMock; + private $layoutFactoryMock; /** * @var \Magento\Backend\App\Action\Context|\PHPUnit_Framework_MockObject_MockObject */ - protected $contextMock; + private $contextMock; /** * @var \Magento\Framework\View\Page\Title|\PHPUnit_Framework_MockObject_MockObject */ - protected $titleMock; + private $titleMock; /** * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $requestMock; + private $requestMock; /** * @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $objectManagerMock; + private $objectManagerMock; /** * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $eventManagerMock; + private $eventManagerMock; /** * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $responseMock; + private $responseMock; /** * @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $messageManagerMock; + private $messageManagerMock; /** * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ - protected $objectManager; + private $objectManager; /** * @var \Magento\Catalog\Controller\Adminhtml\Category\Save */ - protected $save; + private $save; /** * Set up @@ -581,7 +581,10 @@ class SaveTest extends \PHPUnit_Framework_TestCase ]; } - public function attributeValueDataProvider() + /** + * @return array + */ + public function imagePreprocessingDataProvider() { return [ [['attribute1' => null, 'attribute2' => 123]], @@ -590,11 +593,11 @@ class SaveTest extends \PHPUnit_Framework_TestCase } /** - * @dataProvider attributeValueDataProvider + * @dataProvider imagePreprocessingDataProvider * - * @param $data + * @param array $data */ - public function testImagePreprocessingShouldSetAttributesWithImageBackendToFalse($data) + public function testImagePreprocessingWithoutValue($data) { $eavConfig = $this->getMock(\Magento\Eav\Model\Config::class, ['getEntityType'], [], '', false); @@ -630,7 +633,7 @@ class SaveTest extends \PHPUnit_Framework_TestCase ], $result); } - public function testImagePreprocessingShouldNotSetValueToFalseWhenValueSet() + public function testImagePreprocessingWithValue() { $eavConfig = $this->getMock(\Magento\Eav\Model\Config::class, ['getEntityType'], [], '', false); diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php index 2bd41e6bca343fc399a11e620cdead60cc47c2ee..aa78fea89668773a2864741526d07c3e76aae1d1 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Category/Attribute/Backend/ImageTest.php @@ -5,29 +5,27 @@ */ namespace Magento\Catalog\Test\Unit\Model\Category\Attribute\Backend; -use \Magento\Catalog\Model\Category\Attribute\Backend\Image as Model; - class ImageTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute */ - protected $attribute; + private $attribute; /** * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ - protected $objectManager; + private $objectManager; /** * @var \Magento\Catalog\Model\ImageUploader */ - protected $imageUploader; + private $imageUploader; /** * @var \Psr\Log\LoggerInterface */ - protected $logger; + private $logger; protected function setUp() { @@ -66,7 +64,10 @@ class ImageTest extends \PHPUnit_Framework_TestCase ); } - public function deletionValueProvider() + /** + * @return array + */ + public function deletedValueDataProvider() { return [ [false], @@ -75,13 +76,13 @@ class ImageTest extends \PHPUnit_Framework_TestCase } /** - * @dataProvider deletionValueProvider + * @dataProvider deletedValueDataProvider * - * @param $value + * @param array $value */ - public function testBeforeSaveShouldSetAttributeValueToBlankWhenImageValueRequiresDeletion($value) + public function testBeforeSaveValueDeletion($value) { - $model = $this->objectManager->getObject(Model::class); + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class); $model->setAttribute($this->attribute); $object = new \Magento\Framework\DataObject([ @@ -93,7 +94,10 @@ class ImageTest extends \PHPUnit_Framework_TestCase $this->assertEquals('', $object->getTestAttribute()); } - public function invalidValueProvider() + /** + * @return array + */ + public function invalidValueDataProvider() { $closure = function () { return false; @@ -109,13 +113,13 @@ class ImageTest extends \PHPUnit_Framework_TestCase } /** - * @dataProvider invalidValueProvider + * @dataProvider invalidValueDataProvider * - * @param $value + * @param array $value */ - public function testBeforeSaveShouldSetAttributeValueToBlankWhenImageValueInvalid($value) + public function testBeforeSaveValueInvalid($value) { - $model = $this->objectManager->getObject(Model::class); + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class); $model->setAttribute($this->attribute); $object = new \Magento\Framework\DataObject([ @@ -127,9 +131,9 @@ class ImageTest extends \PHPUnit_Framework_TestCase $this->assertEquals('', $object->getTestAttribute()); } - public function testBeforeSaveShouldSetAttributeValueToUploadedImageName() + public function testBeforeSaveAttributeFileName() { - $model = $this->objectManager->getObject(Model::class); + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class); $model->setAttribute($this->attribute); $object = new \Magento\Framework\DataObject([ @@ -143,27 +147,27 @@ class ImageTest extends \PHPUnit_Framework_TestCase $this->assertEquals('test123.jpg', $object->getTestAttribute()); } - public function testBeforeSaveShouldSetAttributeUploadInformationToTemporaryAttribute() + public function testBeforeSaveTemporaryAttribute() { - $model = $this->objectManager->getObject(Model::class); + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class); $model->setAttribute($this->attribute); $object = new \Magento\Framework\DataObject([ 'test_attribute' => [ - ['name' => 'test123.jpg', 'tmp_name' => 'abc123', 'url' => 'http://www.test.com/test123.jpg'] + ['name' => 'test123.jpg', 'tmp_name' => 'abc123', 'url' => 'http://www.example.com/test123.jpg'] ] ]); $model->beforeSave($object); $this->assertEquals([ - ['name' => 'test123.jpg', 'tmp_name' => 'abc123', 'url' => 'http://www.test.com/test123.jpg'] + ['name' => 'test123.jpg', 'tmp_name' => 'abc123', 'url' => 'http://www.example.com/test123.jpg'] ], $object->getData('_additional_data_test_attribute')); } - public function testBeforeSaveShouldNotModifyAttributeValueWhenStringValue() + public function testBeforeSaveAttributeStringValue() { - $model = $this->objectManager->getObject(Model::class); + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class); $model->setAttribute($this->attribute); $object = new \Magento\Framework\DataObject([ @@ -173,23 +177,13 @@ class ImageTest extends \PHPUnit_Framework_TestCase $model->beforeSave($object); $this->assertEquals('test123.jpg', $object->getTestAttribute()); - } - - public function testBeforeSaveShouldNotSetAdditionalDataWhenStringValue() - { - $model = $this->objectManager->getObject(Model::class); - $model->setAttribute($this->attribute); - - $object = new \Magento\Framework\DataObject([ - 'test_attribute' => 'test123.jpg' - ]); - - $model->beforeSave($object); - $this->assertNull($object->getData('_additional_data_test_attribute')); } - protected function setUpModelForAfterSave() + /** + * @return \Magento\Catalog\Model\Category\Attribute\Backend\Image + */ + private function setUpModelForAfterSave() { $objectManagerMock = $this->getMock( \Magento\Framework\App\ObjectManager::class, @@ -211,15 +205,16 @@ class ImageTest extends \PHPUnit_Framework_TestCase return $this->objectManager->get($class, $params); })); - $model = $this->objectManager->getObject(Model::class, [ + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category\Attribute\Backend\Image::class, [ 'objectManager' => $objectManagerMock, 'logger' => $this->logger ]); + $this->objectManager->setBackwardCompatibleProperty($model, 'imageUploader', $this->imageUploader); return $model->setAttribute($this->attribute); } - public function attributeValidValueProvider() + public function attributeValueDataProvider() { return [ [[['name' => 'test1234.jpg']]], @@ -230,11 +225,11 @@ class ImageTest extends \PHPUnit_Framework_TestCase } /** - * @dataProvider attributeValidValueProvider + * @dataProvider attributeValueDataProvider * - * @param $value + * @param array $value */ - public function testAfterSaveShouldUploadImageWhenAdditionalDataSet($value) + public function testAfterSaveWithAdditionalData($value) { $model = $this->setUpModelForAfterSave(); @@ -242,36 +237,38 @@ class ImageTest extends \PHPUnit_Framework_TestCase ->method('moveFileFromTmp') ->with($this->equalTo('test1234.jpg')); - $object = new \Magento\Framework\DataObject([ - 'test_attribute' => $value, - '_additional_data_test_attribute' => [ - ['name' => 'test1234.jpg'] + $object = new \Magento\Framework\DataObject( + [ + 'test_attribute' => $value, + '_additional_data_test_attribute' => [['name' => 'test1234.jpg']] ] - ]); + ); $model->afterSave($object); } /** - * @dataProvider attributeValidValueProvider + * @dataProvider attributeValueDataProvider * - * @param $value + * @param array $value */ - public function testAfterSaveShouldNotUploadImageWhenAdditionalDataNotSet($value) + public function testAfterSaveWithoutAdditionalData($value) { $model = $this->setUpModelForAfterSave(); $this->imageUploader->expects($this->never()) ->method('moveFileFromTmp'); - $object = new \Magento\Framework\DataObject([ - 'test_attribute' => $value - ]); + $object = new \Magento\Framework\DataObject( + [ + 'test_attribute' => $value + ] + ); $model->afterSave($object); } - public function testAfterSaveShouldCreateCriticalLogEntryOnUploadExceptions() + public function testAfterSaveWithExceptions() { $model = $this->setUpModelForAfterSave(); @@ -285,11 +282,11 @@ class ImageTest extends \PHPUnit_Framework_TestCase ->method('critical') ->with($this->equalTo($exception)); - $object = new \Magento\Framework\DataObject([ - '_additional_data_test_attribute' => [ - ['name' => 'test1234.jpg'] + $object = new \Magento\Framework\DataObject( + [ + '_additional_data_test_attribute' => [['name' => 'test1234.jpg']] ] - ]); + ); $model->afterSave($object); } diff --git a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php index 66403d39648901fb1c7f63b735dc1639ca462f87..ce4cc93b0181b7e2a3002c8c103cb7ae247259ba 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php @@ -9,7 +9,7 @@ namespace Magento\Catalog\Test\Unit\Model; use Magento\Catalog\Model\Indexer; -use Magento\Catalog\Model\Category as Model; +use Magento\Catalog\Model\Category; /** * @SuppressWarnings(PHPMD.TooManyFields) @@ -17,83 +17,125 @@ use Magento\Catalog\Model\Category as Model; */ class CategoryTest extends \PHPUnit_Framework_TestCase { - /** @var \Magento\Catalog\Model\Category */ - protected $category; + /** + * @var \Magento\Catalog\Model\Category + */ + private $category; - /** @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject */ - protected $context; + /** + * @var \Magento\Framework\Model\Context|\PHPUnit_Framework_MockObject_MockObject + */ + private $context; - /** @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $eventManager; + /** + * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $eventManager; - /** @var \Magento\Framework\App\CacheInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $cacheManager; + /** + * @var \Magento\Framework\App\CacheInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $cacheManager; - /** @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject */ - protected $registry; + /** + * @var \Magento\Framework\Registry|\PHPUnit_Framework_MockObject_MockObject + */ + private $registry; - /** @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $storeManager; + /** + * @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $storeManager; - /** @var \Magento\Catalog\Model\ResourceModel\Category\Tree|\PHPUnit_Framework_MockObject_MockObject */ - protected $categoryTreeResource; + /** + * @var \Magento\Catalog\Model\ResourceModel\Category\Tree|\PHPUnit_Framework_MockObject_MockObject + */ + private $categoryTreeResource; - /** @var \PHPUnit_Framework_MockObject_MockObject */ - protected $categoryTreeFactory; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $categoryTreeFactory; - /** @var \Magento\Catalog\Api\CategoryRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $categoryRepository; + /** + * @var \Magento\Catalog\Api\CategoryRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $categoryRepository; - /** @var \PHPUnit_Framework_MockObject_MockObject */ - protected $storeCollectionFactory; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $storeCollectionFactory; - /** @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $url; + /** + * @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $url; - /** @var \PHPUnit_Framework_MockObject_MockObject */ - protected $productCollectionFactory; + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $productCollectionFactory; - /** @var \Magento\Catalog\Model\Config|\PHPUnit_Framework_MockObject_MockObject */ - protected $catalogConfig; + /** + * @var \Magento\Catalog\Model\Config|\PHPUnit_Framework_MockObject_MockObject + */ + private $catalogConfig; - /** @var \Magento\Framework\Filter\FilterManager|\PHPUnit_Framework_MockObject_MockObject */ - protected $filterManager; + /** + * @var \Magento\Framework\Filter\FilterManager|\PHPUnit_Framework_MockObject_MockObject + */ + private $filterManager; - /** @var \Magento\Catalog\Model\Indexer\Category\Flat\State|\PHPUnit_Framework_MockObject_MockObject */ - protected $flatState; + /** + * @var \Magento\Catalog\Model\Indexer\Category\Flat\State|\PHPUnit_Framework_MockObject_MockObject + */ + private $flatState; - /** @var \Magento\Framework\Indexer\IndexerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $flatIndexer; + /** + * @var \Magento\Framework\Indexer\IndexerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $flatIndexer; - /** @var \Magento\Framework\Indexer\IndexerInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $productIndexer; + /** + * @var \Magento\Framework\Indexer\IndexerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $productIndexer; - /** @var \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator|\PHPUnit_Framework_MockObject_MockObject */ - protected $categoryUrlPathGenerator; + /** + * @var \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator|\PHPUnit_Framework_MockObject_MockObject + */ + private $categoryUrlPathGenerator; - /** @var \Magento\UrlRewrite\Model\UrlFinderInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $urlFinder; + /** + * @var \Magento\UrlRewrite\Model\UrlFinderInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $urlFinder; - /** @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ - protected $resource; + /** + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + */ + private $resource; - /** @var \Magento\Framework\Indexer\IndexerRegistry|\PHPUnit_Framework_MockObject_MockObject */ - protected $indexerRegistry; + /** + * @var \Magento\Framework\Indexer\IndexerRegistry|\PHPUnit_Framework_MockObject_MockObject + */ + private $indexerRegistry; /** - * @var \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Catalog\Api\CategoryAttributeRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $metadataServiceMock; + private $metadataServiceMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $attributeValueFactory; + private $attributeValueFactory; /** * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ - protected $objectManager; + private $objectManager; protected function setUp() { @@ -496,21 +538,24 @@ class CategoryTest extends \PHPUnit_Framework_TestCase ); } - public function imageAttributeNameAndUrlProvider() + /** + * @return array + */ + public function getImageWithAttributeCodeDataProvider() { return [ - ['testimage', 'http://www.test123.com/catalog/category/testimage'], + ['testimage', 'http://www.example.com/catalog/category/testimage'], [false, false] ]; } /** - * @param $value - * @param $url + * @param string|bool $value + * @param string|bool $url * - * @dataProvider imageAttributeNameAndUrlProvider + * @dataProvider getImageWithAttributeCodeDataProvider */ - public function testGetImageUrlShouldGenerateMediaUrlForSpecifiedAttributeValue($value, $url) + public function testGetImageWithAttributeCode($value, $url) { $storeManager = $this->getMock(\Magento\Store\Model\StoreManager::class, ['getStore'], [], '', false); $store = $this->getMock(\Magento\Store\Model\Store::class, ['getBaseUrl'], [], '', false); @@ -522,11 +567,15 @@ class CategoryTest extends \PHPUnit_Framework_TestCase $store->expects($this->any()) ->method('getBaseUrl') ->with(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) - ->will($this->returnValue('http://www.test123.com/')); + ->will($this->returnValue('http://www.example.com/')); - $model = $this->objectManager->getObject(Model::class, [ - 'storeManager' => $storeManager - ]); + /** @var \Magento\Catalog\Model\Category $model */ + $model = $this->objectManager->getObject( + \Magento\Catalog\Model\Category::class, + [ + 'storeManager' => $storeManager + ] + ); $model->setData('attribute1', $value); @@ -535,7 +584,7 @@ class CategoryTest extends \PHPUnit_Framework_TestCase $this->assertEquals($url, $result); } - public function testGetImageUrlShouldGenerateMediaUrlForImageAttributeValue() + public function testGetImageWithoutAttributeCode() { $storeManager = $this->getMock(\Magento\Store\Model\StoreManager::class, ['getStore'], [], '', false); $store = $this->getMock(\Magento\Store\Model\Store::class, ['getBaseUrl'], [], '', false); @@ -547,9 +596,10 @@ class CategoryTest extends \PHPUnit_Framework_TestCase $store->expects($this->any()) ->method('getBaseUrl') ->with(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) - ->will($this->returnValue('http://www.test123.com/')); + ->will($this->returnValue('http://www.example.com/')); - $model = $this->objectManager->getObject(Model::class, [ + /** @var \Magento\Catalog\Model\Category $model */ + $model = $this->objectManager->getObject(\Magento\Catalog\Model\Category::class, [ 'storeManager' => $storeManager ]); @@ -557,6 +607,6 @@ class CategoryTest extends \PHPUnit_Framework_TestCase $result = $model->getImageUrl(); - $this->assertEquals('http://www.test123.com/catalog/category/myimage', $result); + $this->assertEquals('http://www.example.com/catalog/category/myimage', $result); } } diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/file-uploader.js b/app/code/Magento/Ui/view/base/web/js/form/element/file-uploader.js index 5d06886fe91bd613134845706ab0ede28b277829..917dc62f9f49b148d58ad62c671eb6fbeeff8beb 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/file-uploader.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/file-uploader.js @@ -299,16 +299,15 @@ define([ */ onBeforeFileUpload: function (e, data) { var file = data.files[0], - allowed = this.isFileAllowed(file); + allowed = this.isFileAllowed(file), + target = $(e.target); if (allowed.passed) { - var $target = $(e.target); - - $target.on('fileuploadsend', function(event, postData) { + target.on('fileuploadsend', function (event, postData) { postData.data.set('param_name', this.paramName); }.bind(data)); - $target.fileupload('process', data).done(function () { + target.fileupload('process', data).done(function () { data.submit(); }); } else {