/** * Validate if extension is allowed. * * @param FileInfoInterface $fileInfo The file that should be validated * @param Constraint $constraint The constraint for the validation */ protected function validateFileExtension(FileInfoInterface $fileInfo, Constraint $constraint) { if (!empty($constraint->allowedExtensions)) { $extension = null !== $fileInfo->getUploadedFile() ? $fileInfo->getUploadedFile()->getClientOriginalExtension() : $fileInfo->getExtension(); if (!in_array(strtolower($extension), $constraint->allowedExtensions)) { $this->context->buildViolation($constraint->extensionsMessage, ['%extensions%' => implode(', ', $constraint->allowedExtensions)])->addViolation(); } } }
function it_validates_empty_extension_and_size($context, File $constraint, FileInfoInterface $fileInfo) { $constraint->allowedExtensions = []; $fileInfo->getId()->willReturn(12); $fileInfo->getUploadedFile()->willReturn(null); $fileInfo->getExtension()->willReturn('jpg'); $fileInfo->getSize()->willReturn(100); $context->buildViolation(Argument::any())->shouldNotBeCalled(); $this->validate($fileInfo, $constraint); }