/** * {@inheritdoc} */ public function beforeSave($object) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'beforeSave'); if (!$pluginInfo) { return parent::beforeSave($object); } else { return $this->___callPlugins('beforeSave', func_get_args(), $pluginInfo); } }
/** * @covers \Magento\Catalog\Model\Product\Attribute\Backend\Media::beforeSave * @covers \Magento\Catalog\Model\Product\Attribute\Backend\Media::getRenamedImage */ public function testBeforeSave() { $fileName = 'magento_image.jpg'; $fileLabel = 'Magento image'; /** @var $product \Magento\Catalog\Model\Product */ $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $product->setData('media_gallery', ['images' => ['image' => ['file' => $fileName, 'label' => $fileLabel]]]); $product->setData('image', $fileName); $this->_model->beforeSave($product); $this->assertStringStartsWith('./magento_image', $product->getData('media_gallery/images/image/new_file')); $this->assertEquals($fileLabel, $product->getData('image_label')); $product->setIsDuplicate(true); $product->setData('media_gallery', ['images' => ['image' => ['value_id' => '100', 'file' => $fileName, 'label' => $fileLabel]]]); $this->_model->beforeSave($product); $this->assertStringStartsWith('./magento_image', $product->getData('media_gallery/duplicate/100')); $this->assertEquals($fileLabel, $product->getData('image_label')); }
/** * @dataProvider beforeSaveDataProvider * @param array $value */ public function testBeforeSave($value) { $attributeCode = 'attr_code'; $attribute = $this->getMock('Magento\\Eav\\Model\\Entity\\Attribute', ['getAttributeCode', 'getIsRequired', 'isValueEmpty', 'getIsUnique', 'getEntityType', '__wakeup'], [], '', false); $mediaAttributes = ['image' => $attribute, 'small_image' => $attribute, 'thumbnail' => $attribute]; $attribute->expects($this->any())->method('getAttributeCode')->will($this->returnValue($attributeCode)); $this->dataObject->expects($this->any())->method('getIsDuplicate')->will($this->returnValue(false)); $this->model->setAttribute($attribute); $this->dataObject->setData(['attr_code' => ['images' => $value]]); $this->dataObject->expects($this->any())->method('getMediaAttributes')->will($this->returnValue($mediaAttributes)); $this->model->beforeSave($this->dataObject); foreach ($this->dataObject['attr_code']['images'] as $imageType => $imageData) { if (isset($imageData['new_file'])) { $value[$imageType]['file'] = $imageData['file']; $value[$imageType]['new_file'] = $imageData['new_file']; } $this->assertEquals($value[$imageType], $imageData); } }