public function testBaseProvider()
    {

        $provider = $this->getProvider();
        $provider->setTemplates(array(
            'edit' => 'edit.twig'
        ));

        $this->assertInternalType('array', $provider->getTemplates());
        $this->assertEquals('edit.twig', $provider->getTemplate('edit'));

        $this->assertInstanceOf('\Sonata\MediaBundle\CDN\CDNInterface', $provider->getCdn());

        $provider->addFormat('small', array());

        $this->assertInternalType('array', $provider->getFormat('small'));

        $media = new \Sonata\MediaBundle\Tests\Entity\Media;
        $media->setContext('test');

        $this->assertEquals('admin', $provider->getFormatName($media, 'admin'));
        $this->assertEquals('reference', $provider->getFormatName($media, 'reference'));
        $this->assertEquals('test_small', $provider->getFormatName($media, 'small'));
        $this->assertEquals('test_small', $provider->getFormatName($media, 'test_small'));
    }
 public function testPHPCRGenerator()
 {
     $generator = new PHPCRGenerator();
     $media = new Media();
     $media->setContext('user');
     $media->setId('nodename');
     $this->assertEquals('user', $generator->generatePath($media));
     $media->setId('/media/nodename');
     $this->assertEquals('user/media', $generator->generatePath($media));
     $media->setId('/media/sub/path/nodename');
     $this->assertEquals('user/media/sub/path', $generator->generatePath($media));
 }
 public function testProvider()
 {
     $generator = new DefaultGenerator();
     $media = new Media();
     $media->setContext('user');
     $media->setId(10);
     $this->assertEquals('user/0001/01', $generator->generatePath($media));
     $media->setId(10000);
     $this->assertEquals('user/0001/11', $generator->generatePath($media));
     $media->setId(12341230);
     $this->assertEquals('user/0124/42', $generator->generatePath($media));
     $media->setId(999999999);
     $this->assertEquals('user/10000/100', $generator->generatePath($media));
 }
 public function testEvent()
 {
     $provider = $this->getProvider();
     $provider->addFormat('big', array('width' => 200, 'height' => 100, 'constraint' => true));
     $file = new \Symfony\Component\HttpFoundation\File\File(realpath(__DIR__ . '/../fixtures/logo.png'));
     $media = new Media();
     $media->setBinaryContent($file);
     $media->setId(1023456);
     // pre persist the media
     $provider->prePersist($media);
     $this->assertEquals('logo.png', $media->getName(), '::getName() return the file name');
     $this->assertNotNull($media->getProviderReference(), '::getProviderReference() is set');
     // post persit the media
     $provider->postPersist($media);
     $provider->postRemove($media);
 }
 public function testHelperProperies()
 {
     $provider = $this->getProvider();
     $provider->addFormat('admin', array('width' => 100));
     $media = new Media();
     $media->setName('Les tests');
     $media->setProviderReference('ASDASDAS.png');
     $media->setId(10);
     $media->setHeight(100);
     $media->setWidth(100);
     $properties = $provider->getHelperProperties($media, 'admin');
     $this->assertInternalType('array', $properties);
     $this->assertEquals(100, $properties['height']);
     $this->assertEquals(100, $properties['width']);
 }
 /**
  * @group test
  */
 public function testTransformFormatNotSupported()
 {
     $provider = $this->getProvider();
     $file = new \Symfony\Component\HttpFoundation\File\File(realpath(__DIR__ . '/../fixtures/video.mp4'));
     $media = new Media();
     $media->setBinaryContent($file);
     $this->assertNull($provider->transform($media));
     $this->assertNull($media->getWidth(), 'Width staid null');
 }
 public function testEvent()
 {
     $provider = $this->getProvider();
     $provider->addFormat('big', array('width' => 200, 'height' => 100, 'constraint' => true));
     $file = __DIR__ . '/../fixtures/file.txt';
     $media = new Media();
     $provider->preUpdate($media);
     $this->assertNull($media->getProviderReference());
     $media->setBinaryContent($file);
     $provider->transform($media);
     $this->assertInstanceOf('\\DateTime', $media->getUpdatedAt());
     $this->assertNotNull($media->getProviderReference());
     $provider->postUpdate($media);
     $file = new \Symfony\Component\HttpFoundation\File\File(realpath(__DIR__ . '/../fixtures/file.txt'));
     $media = new Media();
     $media->setBinaryContent($file);
     $media->setId(1023456);
     // pre persist the media
     $provider->transform($media);
     $this->assertEquals('file.txt', $media->getName(), '::getName() return the file name');
     $this->assertNotNull($media->getProviderReference(), '::getProviderReference() is set');
     $this->assertFalse($provider->generatePrivateUrl($media, 'big'), '::generatePrivateUrl() return false');
 }
 public function testDownload()
 {
     $provider = $this->getProvider();
     $file = new File(realpath(__DIR__ . '/../fixtures/FileProviderTest/0011/24/file.txt'));
     $media = new Media();
     $media->setBinaryContent($file);
     $media->setProviderReference('file.txt');
     $media->setContext('FileProviderTest');
     $media->setId(1023456);
     $response = $provider->getDownloadResponse($media, 'reference', 'X-Accel-Redirect');
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\BinaryFileResponse', $response);
 }
 public function testSetFileContents()
 {
     $adapter = new \Gaufrette\Adapter\InMemory(array('testDir'));
     $filesystem = new \Gaufrette\Filesystem($adapter);
     $cdn = new \Sonata\MediaBundle\CDN\Server('/uploads/media');
     $generator = new \Sonata\MediaBundle\Generator\DefaultGenerator();
     $provider = new \Sonata\MediaBundle\Provider\FileProvider('file', $filesystem, $cdn, $generator);
     $media = new Media();
     $media->setId(853);
     $media->setProviderReference(853);
     $provider->setFileContents($media, realpath(__DIR__ . '/../fixtures/file.txt'));
     $this->assertEquals('Hello file text!', $provider->getReferenceFile($media)->getContent());
 }
 public function mediaProvider()
 {
     $file = new \Symfony\Component\HttpFoundation\File\File(realpath(__DIR__ . '/../fixtures/file.txt'));
     $content = file_get_contents(realpath(__DIR__ . '/../fixtures/file.txt'));
     $request = new Request(array(), array(), array(), array(), array(), array(), $content);
     $media1 = new Media();
     $media1->setBinaryContent($file);
     $media1->setContentType('foo');
     $media1->setId(1023456);
     $media2 = new Media();
     $media2->setBinaryContent($request);
     $media2->setContentType('text/plain');
     $media2->setId(1023456);
     $media3 = new Media();
     $media3->setBinaryContent($request);
     $media3->setId(1023456);
     return array(array('\\Symfony\\Component\\HttpFoundation\\File\\File', $media1, false), array('\\Symfony\\Component\\HttpFoundation\\File\\File', $media1), array('\\Symfony\\Component\\HttpFoundation\\File\\File', $media2), array(null, $media3));
 }