diff --git a/tests/files/WrongFile.mp4 b/tests/files/WrongFile.mp4 new file mode 100644 index 0000000..17e5e5f Binary files /dev/null and b/tests/files/WrongFile.mp4 differ diff --git a/tests/src/FFMpeg/FFMpegTest.php b/tests/src/FFMpeg/FFMpegTest.php index 1920add..42d53a7 100644 --- a/tests/src/FFMpeg/FFMpegTest.php +++ b/tests/src/FFMpeg/FFMpegTest.php @@ -10,28 +10,80 @@ class FFMpegTest extends \PHPUnit_Framework_TestCase */ protected $object; + /** + * @var FFProbe + */ + protected $probe; + + public function setUp() + { + $this->object = FFMpeg::load(); + $this->probe = FFProbe::load(); + } + + /** + * @covers FFMpeg\FFMpeg::open + * @expectedException \InvalidArgumentException + */ + public function testOpenInvalid() + { + $this->object->open(__DIR__ . '/invalid.files'); + } + /** * @covers FFMpeg\FFMpeg::open - * @todo Implement testOpen(). */ public function testOpen() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->open(__DIR__ . '/../../files/Test.ogv'); } /** * @covers FFMpeg\FFMpeg::extractImage - * @todo Implement testExtractImage(). */ public function testExtractImage() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $dest = __DIR__ . '/../../files/extract_Test.jpg'; + + $this->object->open(__DIR__ . '/../../files/Test.ogv'); + $this->object->extractImage(2, $dest, 200, 200); + + $this->probe->probeFormat($dest); + + unlink($dest); + } + + + /** + * @covers FFMpeg\FFMpeg::extractImage + * @expectedException \RuntimeException + */ + public function testExtractImageNoMovie() + { + $this->object->extractImage(2, 'Path', 200, 200); + } + + /** + * @covers FFMpeg\FFMpeg::encode + * @expectedException \RuntimeException + */ + public function testEncode() + { + $this->object->encode(new Format\WebM(32, 32), './invalid.file'); + } + + /** + * @covers FFMpeg\FFMpeg::encode + * @expectedException \RuntimeException + */ + public function testWrongBinary() + { + $logger = new \Monolog\Logger('test'); + $logger->pushHandler(new \Monolog\Handler\NullHandler()); + + $ffmpeg = new FFMpeg('wrongbinary', $logger); + $ffmpeg->open(__DIR__ . '/../../files/Test.ogv'); + $ffmpeg->encode(new Format\WebM(32, 32), './invalid.file'); } /** @@ -39,15 +91,12 @@ class FFMpegTest extends \PHPUnit_Framework_TestCase */ public function testEncodeWebm() { - $ffprobe = FFProbe::load(); - $dest = __DIR__ . '/../../files/encode_test.webm'; - $ffmpeg = FFMpeg::load(new \Monolog\Logger('test')); - $ffmpeg->open(__DIR__ . '/../../files/Test.ogv'); - $ffmpeg->encode(new Format\WebM(32, 32), $dest); + $this->object->open(__DIR__ . '/../../files/Test.ogv'); + $this->object->encode(new Format\WebM(32, 32), $dest); - $ffprobe->probeFormat($dest); + $this->probe->probeFormat($dest); unlink($dest); } @@ -57,15 +106,12 @@ class FFMpegTest extends \PHPUnit_Framework_TestCase */ public function testEncodeOgg() { - $ffprobe = FFProbe::load(); - $dest = __DIR__ . '/../../files/encode_test.ogv'; - $ffmpeg = FFMpeg::load(new \Monolog\Logger('test')); - $ffmpeg->open(__DIR__ . '/../../files/Test.ogv'); - $ffmpeg->encode(new Format\Ogg(32, 32), $dest); + $this->object->open(__DIR__ . '/../../files/Test.ogv'); + $this->object->encode(new Format\Ogg(32, 32), $dest); - $ffprobe->probeFormat($dest); + $this->probe->probeFormat($dest); unlink($dest); } @@ -75,16 +121,12 @@ class FFMpegTest extends \PHPUnit_Framework_TestCase */ public function testEncodeX264() { - - $ffprobe = FFProbe::load(); - $dest = __DIR__ . '/../../files/encode_test.mp4'; - $ffmpeg = FFMpeg::load(new \Monolog\Logger('test')); - $ffmpeg->open(__DIR__ . '/../../files/Test.ogv'); - $ffmpeg->encode(new Format\X264(32, 32), $dest); + $this->object->open(__DIR__ . '/../../files/Test.ogv'); + $this->object->encode(new Format\X264(32, 32), $dest); - $ffprobe->probeFormat($dest); + $this->probe->probeFormat($dest); unlink($dest); } diff --git a/tests/src/FFMpeg/FFProbeTest.php b/tests/src/FFMpeg/FFProbeTest.php index 617f182..76e4d42 100644 --- a/tests/src/FFMpeg/FFProbeTest.php +++ b/tests/src/FFMpeg/FFProbeTest.php @@ -6,63 +6,65 @@ class FFProbeTest extends \PHPUnit_Framework_TestCase { /** - * @covers FFMpeg\FFProbe::probeFormat - * @todo Implement testProbeFormat(). + * + * @var FFProbe */ - public function testProbeFormat() + protected $object; + + public function setUp() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object = FFProbe::load(); + } + + /** + * @covers FFMpeg\FFProbe::probeFormat + * @covers FFMpeg\FFProbe::probeStreams + * @covers FFMpeg\FFProbe::executeProbe + */ + public function testProbe() + { + $this->object->probeFormat(__DIR__ . '/../../files/Test.ogv'); + $this->object->probeStreams(__DIR__ . '/../../files/Test.ogv'); + } + + /** + * @covers FFMpeg\FFProbe::probeFormat + * @covers FFMpeg\FFProbe::executeProbe + * @expectedException \RuntimeException + */ + public function testProbeInvalidFile() + { + $this->object->probeFormat(__DIR__ . '/../../files/WrongFile.mp4'); } /** * @covers FFMpeg\FFProbe::probeStreams - * @todo Implement testProbeStreams(). + * @covers FFMpeg\FFProbe::executeProbe + * @expectedException \RuntimeException */ - public function testProbeStreams() + public function testProbeStreamsInvalidFile() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->probeStreams(__DIR__ . '/../../files/WrongFile.mp4'); } /** - * @covers FFMpeg\FFProbe::probeFrames - * @todo Implement testProbeFrames(). + * @covers FFMpeg\FFProbe::probeStreams + * @covers FFMpeg\FFProbe::executeProbe + * @expectedException \InvalidArgumentException */ - public function testProbeFrames() + public function testProbeStreamsInvalidPathFile() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->probeStreams(__DIR__ . '/../../files/unknown.file'); } /** - * @covers FFMpeg\FFProbe::probePackets - * @todo Implement testProbePackets(). + * @covers FFMpeg\FFProbe::probeFormat + * @covers FFMpeg\FFProbe::executeProbe + * @expectedException \InvalidArgumentException */ - public function testProbePackets() + public function testProbeFormatInvalidPathFile() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); - } - - /** - * @covers FFMpeg\FFProbe::probeErrors - * @todo Implement testProbeErrors(). - */ - public function testProbeErrors() - { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->object->probeFormat(__DIR__ . '/../../files/unknown.file'); } }