scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 114  →  ?path2? @ 115
/vendor/php-ffmpeg/php-ffmpeg/tests/Unit/FFProbe/DataMapping/AbstractDataTest.php
@@ -0,0 +1,52 @@
<?php
 
namespace Tests\FFMpeg\Unit\FFProbe\DataMapping;
 
use Tests\FFMpeg\Unit\TestCase;
use FFMpeg\FFProbe\DataMapping\AbstractData;
 
class AbstractDataTest extends TestCase
{
public function testHas()
{
$imp = new Implementation(array('key1' => 'value1', 'key2' => 'value2'));
 
$this->assertTrue($imp->has('key1'));
$this->assertTrue($imp->has('key2'));
$this->assertFalse($imp->has('value1'));
$this->assertFalse($imp->has('key3'));
}
 
public function testGet()
{
$imp = new Implementation(array('key1' => 'value1', 'key2' => 'value2'));
 
$this->assertEquals('value1', $imp->get('key1'));
$this->assertEquals('value2', $imp->get('key2'));
}
 
public function testGetDefault()
{
$imp = new Implementation(array('key1' => 'value1', 'key2' => 'value2'));
$this->assertSame('yololo', $imp->get('key3', 'yololo'));
}
 
public function testKeys()
{
$imp = new Implementation(array('key1' => 'value1', 'key2' => 'value2'));
 
$this->assertEquals(array('key1', 'key2'), $imp->keys());
}
 
public function testAll()
{
$values = array('key1' => 'value1', 'key2' => 'value2');
$imp = new Implementation($values);
 
$this->assertEquals($values, $imp->all());
}
}
 
class Implementation extends AbstractData
{
}
/vendor/php-ffmpeg/php-ffmpeg/tests/Unit/FFProbe/DataMapping/StreamCollectionTest.php
@@ -0,0 +1,89 @@
<?php
 
namespace Tests\FFMpeg\Unit\FFProbe\DataMapping;
 
use Tests\FFMpeg\Unit\TestCase;
use FFMpeg\FFProbe\DataMapping\StreamCollection;
 
class StreamCollectionTest extends TestCase
{
public function testAdd()
{
$stream = $this->getStreamMock();
 
$collection = new StreamCollection();
$this->assertEquals(array(), $collection->all());
$collection->add($stream);
$this->assertEquals(array($stream), $collection->all());
$collection->add($stream);
$this->assertEquals(array($stream, $stream), $collection->all());
}
 
public function testVideos()
{
$audio = $this->getStreamMock();
$audio->expects($this->once())
->method('isVideo')
->will($this->returnValue(false));
 
$video = $this->getStreamMock();
$video->expects($this->once())
->method('isVideo')
->will($this->returnValue(true));
 
$collection = new StreamCollection(array($audio, $video));
$videos = $collection->videos();
 
$this->assertInstanceOf('FFMpeg\FFProbe\DataMapping\StreamCollection', $videos);
$this->assertCount(1, $videos);
$this->assertEquals(array($video), $videos->all());
}
 
public function testAudios()
{
$audio = $this->getStreamMock();
$audio->expects($this->once())
->method('isAudio')
->will($this->returnValue(true));
 
$video = $this->getStreamMock();
$video->expects($this->once())
->method('isAudio')
->will($this->returnValue(false));
 
$collection = new StreamCollection(array($audio, $video));
$audios = $collection->audios();
 
$this->assertInstanceOf('FFMpeg\FFProbe\DataMapping\StreamCollection', $audios);
$this->assertCount(1, $audios);
$this->assertEquals(array($audio), $audios->all());
}
 
public function testCount()
{
$stream = $this->getStreamMock();
 
$collection = new StreamCollection(array($stream));
$this->assertCount(1, $collection);
}
 
public function testGetIterator()
{
$audio = $this->getStreamMock();
$video = $this->getStreamMock();
 
$collection = new StreamCollection(array($audio, $video));
$this->assertInstanceOf('\Iterator', $collection->getIterator());
$this->assertCount(2, $collection->getIterator());
}
 
public function testFirst()
{
$stream1 = $this->getStreamMock();
$stream2 = $this->getStreamMock();
 
$coll = new StreamCollection(array($stream1, $stream2));
 
$this->assertSame($stream1, $coll->first());
}
}
/vendor/php-ffmpeg/php-ffmpeg/tests/Unit/FFProbe/DataMapping/StreamTest.php
@@ -0,0 +1,134 @@
<?php
 
namespace Tests\FFMpeg\Unit\FFProbe\DataMapping;
 
use FFMpeg\Coordinate\Dimension;
use Tests\FFMpeg\Unit\TestCase;
use FFMpeg\FFProbe\DataMapping\Stream;
 
class StreamTest extends TestCase
{
/**
* @dataProvider provideAudioCases
*/
public function testIsAudio($isAudio, $properties)
{
$stream = new Stream($properties);
$this->assertTrue($isAudio === $stream->isAudio());
}
 
public function provideAudioCases()
{
return array(
array(true, array('codec_type' => 'audio')),
array(false, array('codec_type' => 'video')),
);
}
 
/**
* @dataProvider provideVideoCases
*/
public function testIsVideo($isVideo, $properties)
{
$stream = new Stream($properties);
$this->assertTrue($isVideo === $stream->isVideo());
}
 
public function provideVideoCases()
{
return array(
array(true, array('codec_type' => 'video')),
array(false, array('codec_type' => 'audio')),
);
}
 
/**
* @expectedException FFMpeg\Exception\LogicException
* @expectedExceptionMessage Dimensions can only be retrieved from video streams.
*/
public function testGetDimensionsFromAudio()
{
$stream = new Stream(array('codec_type' => 'audio'));
$stream->getDimensions();
}
 
public function testGetDimensionsFromVideo()
{
$stream = new Stream(array('codec_type' => 'video', 'width' => 960, 'height' => 720));
$this->assertEquals(new Dimension(960, 720), $stream->getDimensions());
}
 
/**
* @dataProvider provideInvalidPropertiesForDimensionsExtraction
* @expectedException FFMpeg\Exception\RuntimeException
* @expectedExceptionMessage Unable to extract dimensions.
*/
public function testUnableToGetDimensionsFromVideo($properties)
{
$stream = new Stream(array('codec_type' => 'video', 'width' => 960));
$stream->getDimensions();
}
 
public function provideInvalidPropertiesForDimensionsExtraction()
{
return array(
array('codec_type' => 'video', 'width' => 960),
array('codec_type' => 'video', 'height' => 960),
);
}
 
/**
* @dataProvider providePropertiesForDimensionsExtraction
*/
public function testGetDimensionsFromVideoWithDisplayRatio($data)
{
$stream = new Stream(array(
'codec_type' => 'video',
'width' => $data['width'],
'height' => $data['height'],
'sample_aspect_ratio' => $data['sar'],
'display_aspect_ratio' => $data['dar']
));
$this->assertEquals(new Dimension($data['result_width'], $data['result_height']), $stream->getDimensions());
}
 
/**
* @dataProvider provideInvalidRatios
*/
public function testGetDimensionsFromVideoWithInvalidDisplayRatio($invalidRatio)
{
$stream = new Stream(array('codec_type' => 'video', 'width' => 960, 'height' => 720, 'sample_aspect_ratio' => $invalidRatio, 'display_aspect_ratio' => '16:9'));
$this->assertEquals(new Dimension(960, 720), $stream->getDimensions());
}
 
public function provideInvalidRatios()
{
return array(array('0:1'), array('2:1:3'));
}
 
public function providePropertiesForDimensionsExtraction()
{
return array(
array(
array('width' => '960', 'height' => '720',
'sar' => '4:3', 'dar' => '16:9',
'result_width' => '1280', 'result_height' => '720'),
),
array(
array('width' => '1920', 'height' => '1080',
'sar' => '1:1', 'dar' => '16:9',
'result_width' => '1920', 'result_height' => '1080'),
),
array(
array('width' => '640', 'height' => '480',
'sar' => '75:74', 'dar' => '50:37',
'result_width' => '649', 'result_height' => '480'),
),
array(
array('width' => '720', 'height' => '576',
'sar' => '52:28', 'dar' => '16:9',
'result_width' => '1337', 'result_height' => '752'),
),
);
}
}