/** * @magentoDataIsolation enabled * @magentoDataFixture mediaImportImageFixture * * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testSaveMediaImage() { $this->markTestSkipped('The test is skipped due to incomplete story https://jira.corp.x.com/browse/MAGETWO-15713'); $attribute = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Entity\\Attribute'); $attribute->loadByCode('catalog_product', 'media_gallery'); $data = implode(',', ['sku', '_attribute_set', '_type', '_product_websites', 'name', 'price', 'description', 'short_description', 'weight', 'status', 'visibility', 'tax_class_id', '_media_attribute_id', '_media_image', '_media_label', '_media_position', '_media_is_disabled']) . "\n"; $data .= implode(',', ['test_sku', 'Default', \Magento\Catalog\Model\Product\Type::DEFAULT_TYPE, 'base', 'Product Name', '9.99', 'Product description', 'Short desc.', '1', \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED, \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH, 0, $attribute->getId(), 'magento_image.jpg', 'Image Label', '1', '0']) . "\n"; $data = 'data://text/plain;base64,' . base64_encode($data); $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $fixture = $objectManager->create('Magento\\ImportExport\\Model\\Import\\Source\\Csv', ['$fileOrStream' => $data]); foreach (\Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Resource\\Product\\Collection') as $product) { $this->fail("Unexpected precondition - product exists: '{$product->getId()}'."); } $uploader = $this->getMock('Magento\\CatalogImportExport\\Model\\Import\\Uploader', ['init'], [$objectManager->create('Magento\\MediaStorage\\Helper\\File\\Storage\\Database'), $objectManager->create('Magento\\MediaStorage\\Helper\\File\\Storage'), $objectManager->create('Magento\\Framework\\Image\\AdapterFactory'), $objectManager->create('Magento\\MediaStorage\\Model\\File\\Validator\\NotProtectedExtension')]); $this->_uploaderFactory->expects($this->any())->method('create')->will($this->returnValue($uploader)); $this->_model->setSource($fixture)->setParameters(['behavior' => \Magento\ImportExport\Model\Import::BEHAVIOR_APPEND])->isDataValid(); $this->_model->importData(); $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $resource = $objectManager->get('Magento\\Catalog\\Model\\Resource\\Product'); $productId = $resource->getIdBySku('test_sku'); // fixture $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $product->load($productId); $gallery = $product->getMediaGalleryImages(); $this->assertInstanceOf('Magento\\Framework\\Data\\Collection', $gallery); $items = $gallery->getItems(); $this->assertCount(1, $items); $item = array_pop($items); $this->assertInstanceOf('Magento\\Framework\\Object', $item); $this->assertEquals('magento_image.jpg', $item->getFile()); $this->assertEquals('Image Label', $item->getLabel()); }