68 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace Tests\FFMpeg\Unit\Media;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use FFMpeg\Media\Clip;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ClipTest extends AbstractMediaTestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @dataProvider provideBuildOptions
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function testBuildCommand($startValue, $durationValue, $commands)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $configuration = $this->getConfigurationMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $driver = $this->getFFMpegDriverMock();
							 | 
						||
| 
								 | 
							
								        $driver->expects($this->any())
							 | 
						||
| 
								 | 
							
								            ->method('getConfiguration')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue($configuration));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $ffprobe = $this->getFFProbeMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $start = $this->getTimeCodeMock();
							 | 
						||
| 
								 | 
							
								        $start->expects($this->once())
							 | 
						||
| 
								 | 
							
								            ->method('__toString')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue($startValue));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $duration = null;
							 | 
						||
| 
								 | 
							
								        if (null !== $durationValue) {
							 | 
						||
| 
								 | 
							
								            $duration = $this->getTimeCodeMock();
							 | 
						||
| 
								 | 
							
								            $duration->expects($this->once())
							 | 
						||
| 
								 | 
							
								                ->method('__toString')
							 | 
						||
| 
								 | 
							
								                ->will($this->returnValue($durationValue));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $outputPathfile = '/target/file';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $format = $this->getMock('FFMpeg\Format\VideoInterface');
							 | 
						||
| 
								 | 
							
								        $format->expects($this->any())
							 | 
						||
| 
								 | 
							
								            ->method('getPasses')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(1));
							 | 
						||
| 
								 | 
							
								        $format->expects($this->any())
							 | 
						||
| 
								 | 
							
								            ->method('getExtraParams')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(array()));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $clip = new Clip($this->getVideoMock(__FILE__), $driver, $ffprobe, $start, $duration);
							 | 
						||
| 
								 | 
							
								        $fc = $clip->getFinalCommand($format, $outputPathfile);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertCount(1, $fc);
							 | 
						||
| 
								 | 
							
								        $this->assertStringStartsWith(implode(' ', $commands), $fc[0]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function provideBuildOptions()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return array(
							 | 
						||
| 
								 | 
							
								            array('SS01', null, array(
							 | 
						||
| 
								 | 
							
								                    '-y', '-ss', 'SS01',
							 | 
						||
| 
								 | 
							
								                    '-i', __FILE__)
							 | 
						||
| 
								 | 
							
								            ),
							 | 
						||
| 
								 | 
							
								            array('SS02', 'D02', array(
							 | 
						||
| 
								 | 
							
								                    '-y', '-ss', 'SS02',
							 | 
						||
| 
								 | 
							
								                    '-i', __FILE__,
							 | 
						||
| 
								 | 
							
								                    '-t', 'D02')
							 | 
						||
| 
								 | 
							
								            )
							 | 
						||
| 
								 | 
							
								        );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |