/** * @param mixed $data * * @return Media */ public function createNew($data) { $result = null; if (is_string($data)) { if (strpos($data, 'http') !== 0) { $data = 'http://' . $data; } $parsedUrl = parse_url($data); switch ($parsedUrl['host']) { case 'www.youtube.com': case 'youtube.com': parse_str($parsedUrl['query'], $queryFields); $code = $queryFields['v']; $result = new Media(); $video = new RemoteVideoHelper($result); $video->setType('youtube'); $video->setCode($code); $result = $video->getMedia(); $result->setName('Youtube ' . $code); break; case 'www.vimeo.com': case 'vimeo.com': $code = substr($parsedUrl['path'], 1); $result = new Media(); $video = new RemoteVideoHelper($result); $video->setType('vimeo'); $video->setCode($code); $result = $video->getMedia(); $result->setName('Vimeo ' . $code); break; case 'www.dailymotion.com': case 'dailymotion.com': $code = substr($parsedUrl['path'], 7); $result = new Media(); $video = new RemoteVideoHelper($result); $video->setType('dailymotion'); $video->setCode($code); $result = $video->getMedia(); $result->setName('Dailymotion ' . $code); break; } } return $result; }
/** * @covers Kunstmaan\MediaBundle\Helper\RemoteVideo\RemoteVideoHelper::getMedia */ public function testGetMedia() { $this->assertEquals(RemoteVideoHandler::CONTENT_TYPE, $this->object->getMedia()->getContentType()); }