function it_validates_extensions_with_product_media($context, File $constraint, ProductMediaInterface $productMedia) { $constraint->allowedExtensions = ['gif', 'jpg']; $productMedia->getFile()->willReturn(new \SplFileInfo(__DIR__ . '/../../../../../../features/Context/fixtures/akeneo.jpg')); $context->addViolation(Argument::any())->shouldNotBeCalled(); $this->validate($productMedia, $constraint); }
function it_duplicates_product_media($filesystem, ProductMediaInterface $source, ProductMediaInterface $target, File $newFile) { $target->setFile(Argument::any())->shouldBeCalled(); $source->getOriginalFilename()->willReturn('akeneo.jpg'); $target->getOriginalFilename()->willReturn('akeneo.jpg'); // upload $target->getFile()->willReturn($newFile); $newFile->getPathname()->willReturn('/tmp/tmp-phpspec'); // write a fake file in tmp $adapter = new LocalAdapter('/tmp'); $fs = new Filesystem($adapter); $fs->write('tmp-phpspec', '', true); $source->getFilename()->willReturn('akeneo.jpg'); $newFile->getFilename()->willReturn('akeneo.jpg'); $filesystem->write('prefix-akeneo.jpg', '', false)->shouldBeCalled(); $target->setOriginalFilename('akeneo.jpg')->shouldBeCalled(); $target->setFilename('prefix-akeneo.jpg')->shouldBeCalled(); $filesystem->has('akeneo.jpg')->willReturn(true); $target->getFilename()->willReturn('akeneo.jpg'); $newFile->getMimeType()->willReturn('jpg'); $target->setMimeType('jpg')->shouldBeCalled(); // update original file name $source->getOriginalFilename()->willReturn('akeneo.jpg'); $target->setOriginalFilename('akeneo.jpg')->shouldBeCalled(); $this->duplicate($source, $target, 'prefix'); }
/** * Upload a file * * @param ProductMediaInterface $media ProductMediaInterface entity * @param string $filename Filename * @param bool $overwrite Overwrite file or not */ protected function upload(ProductMediaInterface $media, $filename, $overwrite = false) { if ($file = $media->getFile()) { if ($file instanceof UploadedFile && UPLOAD_ERR_OK !== $file->getError()) { return; } $pathname = $file->getPathname(); $this->write($filename, file_get_contents($pathname), $overwrite); if ($file instanceof UploadedFile) { $originalFilename = $file->getClientOriginalName(); $media->resetFile(); } elseif (false !== strpos($file->getFilename(), $media->getOriginalFilename())) { $originalFilename = $media->getOriginalFilename(); } elseif (null !== $media->getOriginalFilename() && '' !== $media->getOriginalFilename()) { $originalFilename = $media->getOriginalFilename(); $media->resetFile(); } else { $originalFilename = $file->getFilename(); $media->resetFile(); } $media->setOriginalFilename($originalFilename); $media->setFilename($filename); $media->setMimeType($file->getMimeType()); } }