/**
  * Test that expected thumbnail is created.
  */
 public function testThumbnailCreation()
 {
     $container = static::$kernel->getContainer();
     $fileStorageConfiguration = $container->get('reskume_file.configuration.file_storage_configuration');
     $entityManager = $container->get('doctrine.orm.entity_manager');
     $thumbnailHelper = new ThumbnailHelper($fileStorageConfiguration, $entityManager);
     $thumb = $thumbnailHelper->createScaledThumb(TestPathProvider::getPath() . '/Fixtures/files/test_image.jpeg', 50);
     $this->assertFileExists($thumb->getPathname());
     $thumbBase64Value = $thumbnailHelper->getBase64Thumb($thumb);
     // get base64 value of fixture test thumbnail
     $testThumb = new File(TestPathProvider::getPath() . '/Fixtures/files/thumbs/thumb_test_image_50px.jpeg');
     $expectedThumbBase64Value = $thumbnailHelper->getBase64Thumb($thumb);
     $this->assertEquals($expectedThumbBase64Value, $thumbBase64Value);
 }
 /**
  * Test that a base64 encoded string is returned for the specified pathname.
  */
 public function testCreateUploadThumbnailReturnBase64EncodedString()
 {
     $mockEntityManager = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $configuration = new TestFileStorageConfiguration();
     $twigExtension = new ReskumeFileBundleExtension($configuration, $mockEntityManager);
     $file = new File();
     $file->setTmpPathname(TestPathProvider::getPath() . '/Fixtures/files/test_image.jpeg');
     $this->assertEquals(ThumbnailHelper::getBase64Thumb(new HttpFile(TestPathProvider::getPath() . '/Fixtures/files/thumbs/thumb_test_image.jpeg')), $twigExtension->createThumbnailFunction($file));
     $this->assertEquals(ThumbnailHelper::getBase64Thumb(new HttpFile(TestPathProvider::getPath() . '/Fixtures/files/thumbs/thumb_test_image.jpeg')), $twigExtension->createThumbnailFunction($file, 'base64'));
 }
 /**
  * Creates either image url or a base64 encoded thumbnail for an uploaded image and returns the value.
  *
  * @param mixed  $value  expects a Reskume\FileBundle\Entity\File entity
  * @param string $output define the output type. May be 'base64' or 'url'. Defaults to 'base64'.
  *
  * @return string
  */
 public function createThumbnailFunction($value, $output = 'base64')
 {
     if (!$value instanceof File) {
         return null;
     }
     $thumbHelper = new ThumbnailHelper($this->configuration, $this->entityManager);
     $pathname = $value->isTmpFile() ? $value->getTmpPathname() : $value->getKey();
     $thumbFile = $thumbHelper->createScaledThumb($pathname, 50);
     switch ($output) {
         case 'url':
             $retVal = $thumbFile->getPathname();
             break;
         default:
         case 'base64':
             $retVal = ThumbnailHelper::getBase64Thumb($thumbFile);
             break;
     }
     // @codeCoverageIgnore
     return $retVal === null ? null : $retVal;
 }
 /**
  * @return string
  */
 private function renderResponseContent()
 {
     if (empty($this->uploadedFile) || $this->error) {
         return null;
     }
     $metaArr = array();
     $thumbHelper = new ThumbnailHelper($this->configuration, $this->entityManager);
     foreach ($this->uploadedFile as $file) {
         $basename = $file->getBaseName();
         $tmpPathname = $file->getPathname();
         $thumbFile = $thumbHelper->createScaledThumb($tmpPathname, 50);
         $base64Thumb = $thumbHelper->getBase64Thumb($thumbFile);
         $this->attachmentIndex++;
         // @important increment by one
         $metaArr[$basename] = array('key' => $this->attachmentIndex, 'tmpPathname' => $tmpPathname, 'origFilename' => $this->uploadedFile[$basename]->getClientOriginalName(), 'thumbnail' => $base64Thumb);
     }
     return $this->uploadRenderer->renderTemplate(array('formName' => $this->formName, 'formId' => $this->formId, 'metadata' => $metaArr));
 }
 /**
  * Test that method returns a base64 encoded string of the requested thumbnail.
  */
 public function testGetBase64ThumbReturnsBaseEncodedString()
 {
     $mockEntityManager = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $configuration = new TestFileStorageConfiguration();
     $helper = new ThumbnailHelper($configuration, $mockEntityManager);
     $thumbFile = $helper->findThumbnail('test_image.jpeg');
     $this->assertSame(base64_encode(file_get_contents($thumbFile->getPathname())), $helper->getBase64Thumb($thumbFile));
 }