/** * Validate if file size is allowed. * * @param FileInfoInterface $fileInfo * @param Constraint $constraint */ protected function validateFileSize(FileInfoInterface $fileInfo, Constraint $constraint) { // comes from Symfony\Component\Validator\Constraints\FileValidator if ($constraint->maxSize) { $limitInBytes = $constraint->maxSize; if ($fileInfo->getSize() > $limitInBytes) { $factorizeSizes = $this->factorizeSizes($fileInfo->getSize(), $limitInBytes, $constraint->binaryFormat); list($sizeAsString, $limitAsString, $suffix) = $factorizeSizes; $this->context->buildViolation($constraint->maxSizeMessage)->setParameter('{{ file }}', $this->formatValue($fileInfo->getOriginalFilename()))->setParameter('{{ size }}', $sizeAsString)->setParameter('{{ limit }}', $limitAsString)->setParameter('{{ suffix }}', $suffix)->setCode(File::TOO_LARGE_ERROR)->addViolation(); return; } } }
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); }