public function testDownloadUrl() { $router = $this->getMock('Symfony\\Component\\Routing\\RouterInterface'); $router->expects($this->once())->method('generate')->will($this->returnValue('http://www.example.com/media/download/test/media/file-download')); $mediaManager = $this->getMock('Symfony\\Cmf\\Bundle\\MediaBundle\\MediaManagerInterface'); $mediaManager->expects($this->once())->method('getUrlSafePath')->will($this->returnValue('test/media/file-download')); $file = new File(); $file->setName('file-download'); $file->setId('/test/media/file-download'); $file->setContentFromString('File download url test.'); $mediaHelper = new CmfMediaHelper($mediaManager, $router); $mediaHelper->downloadUrl($file); }
/** * Create new file and write into it from file pointer. * Return new file path or false on error. * * @param resource $fp file pointer * @param string $dir target dir path * @param string $name file name * @param array $stat file stat (required by some virtual fs) * @return bool|string * @author Dmitry (dio) Levashov **/ protected function _save($fp, $dir, $name, $stat) { $filename = $this->_joinPath($dir, $name); $mime = $stat['mime']; // @TODO implement a proper system to map a mime-type to a phpcr class if (isset($stat['height']) && $stat['height'] && isset($stat['width']) && $stat['width']) { $file = new Image(); } else { $file = new File(); } // do not pass file pointer directly to prevent it is closed multiple // times causing an error $stream = fopen('php://memory', 'rwb+'); stream_copy_to_stream($fp, $stream); $file->setContentFromStream($stream); $file->setContentType($mime); $file->setId($filename); $this->mediaManager->setDefaults($file, $dir); $this->dm->persist($file); $this->dm->flush(); return $file->getId(); }