Example #1
0
 public function testGroupedHasMany()
 {
     $assoc = array('Photo' => array('className' => 'Media.Attachment', 'foreignKey' => 'foreign_key', 'conditions' => array('Photo.model' => 'Movie', 'Photo.group' => 'photo'), 'dependent' => true));
     $Model = $this->_model('hasMany', $assoc);
     $fileA = $this->Data->getFile(array('image-png.png' => 'ta.png'));
     $fileB = $this->Data->getFile(array('image-png.png' => 'tb.png'));
     $data = array('Movie' => array('title' => 'Weekend', 'director' => 'Jean-Luc Godard'), 'Photo' => array(array('file' => $fileA, 'model' => 'Movie', 'group' => 'photo'), array('file' => $fileB, 'model' => 'Movie', 'group' => 'photo')));
     $Model->create();
     $result = $Model->saveAll($data, array('validate' => 'first'));
     $this->assertTrue($result);
     $this->assertTrue(file_exists($this->Data->settings['transfer'] . 'img' . DS . 'ta.png'));
     $this->assertTrue(file_exists($this->Data->settings['transfer'] . 'img' . DS . 'tb.png'));
     $result = $Model->find('first', array('conditions' => array('title' => 'Weekend')));
     $expected = array('Movie' => array('id' => '4', 'title' => 'Weekend', 'director' => 'Jean-Luc Godard'), 'Actor' => array(), 'Photo' => array(0 => array('id' => '1', 'model' => 'Movie', 'foreign_key' => '4', 'dirname' => 'img', 'basename' => 'ta.png', 'checksum' => '0ec724ac451b85f09e4652d29eff943e', 'group' => 'photo', 'alternative' => null, 'path' => 'img/ta.png'), 1 => array('id' => '2', 'model' => 'Movie', 'foreign_key' => '4', 'dirname' => 'img', 'basename' => 'tb.png', 'checksum' => '0ec724ac451b85f09e4652d29eff943e', 'group' => 'photo', 'alternative' => null, 'path' => 'img/tb.png')));
     $this->assertEqual($result, $expected);
     $result = $Model->delete($Model->getLastInsertID());
     $this->assertTrue($result);
     $this->assertFalse(file_exists($this->Data->settings['transfer'] . 'photo' . DS . 'ta.png'));
     $this->assertFalse(file_exists($this->Data->settings['transfer'] . 'photo' . DS . 'tb.png'));
 }
 public function testFolder()
 {
     $file = dirname(__FILE__);
     $result = MediaValidation::folder($file);
     $this->assertTrue($result);
     $file = $this->Data->getFile('image-jpg.jpg');
     $result = MediaValidation::folder($file, false);
     $this->assertTrue($result);
     $file = $this->Data->settings['base'] . 'i-am-not-a-file.png';
     $result = MediaValidation::folder($file);
     $this->assertFalse($result);
     $file = TMP;
     $result = MediaValidation::folder($file);
     $this->assertTrue($result);
     $file = TMP;
     $result = MediaValidation::folder($file, false);
     $this->assertTrue($result);
     $file = TMP . DS . DS . DS;
     $result = MediaValidation::folder($file, false);
     $this->assertTrue($result);
 }
Example #3
0
    public function testEmbedAsObject()
    {
        $result = $this->Media->embedAsObject('http://example.com/img/image-png');
        $this->assertFalse($result);
        $result = $this->Media->embedAsObject('img/image-png', array('url' => 'http://example.com'));
        $expected = '<a href="http://example.com"><img src="/media/static/img/image-png.png"  height="54" width="70"/></a>';
        $this->assertEqual($result, $expected);
        $result = $this->Media->embedAsObject('img/image-png', array('checked' => true, 'disabled' => true, 'noresize' => true, 'required' => true));
        $expected = '<object type="image/png" data="/media/static/img/image-png.png" checked="checked" disabled="disabled" noresize="noresize" required="required"><param name="src" value="/media/static/img/image-png.png"/></object>';
        $this->assertEqual($result, $expected);
        $result = $this->Media->embedAsObject('img/special-image-&-png');
        $expected = '<object type="image/png" data="http://fo&amp;o:bar@example.com/media/special%5Bfolder%5D/img/special-image-%26-png.png"><param name="src" value="http://fo&amp;o:bar@example.com/media/special%5Bfolder%5D/img/special-image-%26-png.png"/></object>';
        $this->assertEqual($result, $expected);
        $result = $this->Media->embedAsObject('img/image-png', array('id' => 'my-image', 'class' => 'image', 'data-custom' => 42));
        $expected = '<object type="image/png" data="/media/static/img/image-png.png" id="my-image" class="image" data-custom="42"><param name="src" value="/media/static/img/image-png.png"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('video-wmv.wmv' => $this->Data->settings['static'] . 'vid/video-wmv.wmv'));
        $result = $this->Media->embedAsObject('vid/video-wmv');
        $expected = '<object type="video/x-ms-wmv" data="/media/static/vid/video-wmv.wmv" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"><param name="src" value="/media/static/vid/video-wmv.wmv"/>
<param name="controller" value="true"/>
<param name="pluginspage" value="http://www.microsoft.com/Windows/MediaPlayer/"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('video-rm.rm' => $this->Data->settings['static'] . 'vid/video-rm.rm'));
        $result = $this->Media->embedAsObject('vid/video-rm');
        $expected = '<object type="application/vnd.rn-realmedia" data="/media/static/vid/video-rm.rm" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"><param name="src" value="/media/static/vid/video-rm.rm"/>
<param name="controls" value="ControlPanel"/>
<param name="console" value="video5268463f37ca4"/>
<param name="nologo" value="true"/>
<param name="nojava" value="true"/>
<param name="center" value="true"/>
<param name="pluginspage" value="http://www.real.com/player/"/></object>';
        $pattern = str_replace('video5268463f37ca4', 'video.{13}', preg_quote($expected, '/'));
        $this->assertRegExp('/^' . $pattern . '$/', $result);
        $this->Data->getFile(array('video-mov.mov' => $this->Data->settings['static'] . 'vid/video-mov.mov'));
        $result = $this->Media->embedAsObject('vid/video-mov');
        $expected = '<object type="video/quicktime" data="/media/static/vid/video-mov.mov" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab"><param name="src" value="/media/static/vid/video-mov.mov"/>
<param name="controller" value="true"/>
<param name="pluginspage" value="http://www.apple.com/quicktime/download/"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('video-mpg.mpg' => $this->Data->settings['static'] . 'vid/video-mpg.mpg'));
        $result = $this->Media->embedAsObject('vid/video-mpg');
        $expected = '<object type="video/mpeg" data="/media/static/vid/video-mpg.mpg"><param name="src" value="/media/static/vid/video-mpg.mpg"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('video-swf.swf' => $this->Data->settings['static'] . 'vid/video-swf.swf'));
        $result = $this->Media->embedAsObject('vid/video-swf');
        $expected = '<object type="application/x-shockwave-flash" data="/media/static/vid/video-swf.swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"><param name="movie" value="/media/static/vid/video-swf.swf"/>
<param name="wmode" value="transparent"/>
<param name="FlashVars" value="playerMode=embedded"/>
<param name="quality" value="best"/>
<param name="scale" value="noScale"/>
<param name="salign" value="TL"/>
<param name="pluginspage" value="http://www.adobe.com/go/getflashplayer"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('application-pdf.pdf' => $this->Data->settings['static'] . 'doc/application-pdf.pdf'));
        $result = $this->Media->embedAsObject('doc/application-pdf');
        $expected = '<object type="application/pdf" data="/media/static/doc/application-pdf.pdf"><param name="src" value="/media/static/doc/application-pdf.pdf"/>
<param name="toolbar" value="true"/>
<param name="scrollbar" value="true"/>
<param name="navpanes" value="true"/></object>';
        $this->assertEqual($result, $expected);
        $this->Data->getFile(array('audio-mp3.mp3' => $this->Data->settings['static'] . 'aud/audio-mp3.mp3'));
        $result = $this->Media->embedAsObject('aud/audio-mp3');
        $expected = '<object type="audio/mpeg" data="/media/static/aud/audio-mp3.mp3"><param name="src" value="/media/static/aud/audio-mp3.mp3"/></object>';
        $this->assertEqual($result, $expected);
        $result = $this->Media->embedAsObject('img/image-png');
        $expected = '<object type="image/png" data="/media/static/img/image-png.png"><param name="src" value="/media/static/img/image-png.png"/></object>';
        $this->assertEqual($result, $expected);
        $result = $this->Media->embedAsObject('non-existent');
        $expected = '';
        $this->assertEqual($result, $expected);
    }