| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Tests\FFMpeg\Unit\Media; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use FFMpeg\Media\Waveform; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class WaveformTest extends AbstractMediaTestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function testFiltersReturnFilters() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $driver = $this->getFFMpegDriverMock(); | 
					
						
							|  |  |  |         $ffprobe = $this->getFFProbeMock(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-16 14:11:11 -03:00
										 |  |  |         $waveform = new Waveform($this->getAudioMock(__FILE__), $driver, $ffprobe, 640, 120); | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  |         $this->assertInstanceOf('FFMpeg\Filters\Waveform\WaveformFilters', $waveform->filters()); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function testAddFiltersAddsAFilter() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $driver = $this->getFFMpegDriverMock(); | 
					
						
							|  |  |  |         $ffprobe = $this->getFFProbeMock(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $filters = $this->getMockBuilder('FFMpeg\Filters\FiltersCollection') | 
					
						
							|  |  |  |             ->disableOriginalConstructor() | 
					
						
							|  |  |  |             ->getMock(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-13 00:23:11 +01:00
										 |  |  |         $filter = $this->getMockBuilder('FFMpeg\Filters\Waveform\WaveformFilterInterface')->getMock(); | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $filters->expects($this->once()) | 
					
						
							|  |  |  |             ->method('add') | 
					
						
							|  |  |  |             ->with($filter); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-16 14:11:11 -03:00
										 |  |  |         $waveform = new Waveform($this->getAudioMock(__FILE__), $driver, $ffprobe, 640, 120); | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  |         $waveform->setFiltersCollection($filters); | 
					
						
							|  |  |  |         $waveform->addFilter($filter); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider provideSaveOptions | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function testSave($commands) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $driver = $this->getFFMpegDriverMock(); | 
					
						
							|  |  |  |         $ffprobe = $this->getFFProbeMock(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-16 14:11:11 -03:00
										 |  |  |         $pathfile = '/tests/files/Audio.mp3'; | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  |         array_push($commands, $pathfile); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $driver->expects($this->once()) | 
					
						
							|  |  |  |             ->method('command') | 
					
						
							|  |  |  |             ->with($commands); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-02 17:33:41 +02:00
										 |  |  |         $waveform = new Waveform($this->getAudioMock(__FILE__), $driver, $ffprobe, 640, 120, ['#FFFFFF']); | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  |         $this->assertSame($waveform, $waveform->save($pathfile)); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function provideSaveOptions() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return array( | 
					
						
							|  |  |  |             array( | 
					
						
							|  |  |  |                 array( | 
					
						
							| 
									
										
										
										
											2017-11-05 16:28:24 +02:00
										 |  |  |                     '-y', '-i', NULL, '-filter_complex', | 
					
						
							| 
									
										
										
										
											2017-11-02 17:33:41 +02:00
										 |  |  |                     'showwavespic=colors=#FFFFFF:s=640x120', | 
					
						
							| 
									
										
										
										
											2016-11-15 16:54:46 -03:00
										 |  |  |                     '-frames:v', '1', | 
					
						
							|  |  |  |                 ), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |