| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-06 23:38:04 +01:00
										 |  |  | namespace Tests\FFMpeg\Unit\Coordinate; | 
					
						
							| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | use FFMpeg\Coordinate\TimeCode; | 
					
						
							| 
									
										
										
										
											2022-02-09 14:32:43 +01:00
										 |  |  | use Tests\FFMpeg\Unit\TestCase; | 
					
						
							| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class TimeCodeTest extends TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider provideTimecodes | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function testFromString($timecode, $expected) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $tc = TimeCode::fromString($timecode); | 
					
						
							|  |  |  |         $this->assertEquals((string) $tc, $expected); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function provideTimeCodes() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-09 14:32:43 +01:00
										 |  |  |         return [ | 
					
						
							|  |  |  |             ['1:02:04:05:20', '26:04:05.20'], | 
					
						
							|  |  |  |             ['1:02:04:05.20', '26:04:05.20'], | 
					
						
							|  |  |  |             ['02:04:05:20', '02:04:05.20'], | 
					
						
							|  |  |  |             ['02:04:05.20', '02:04:05.20'], | 
					
						
							|  |  |  |             ['00:00:05.20', '00:00:05.20'], | 
					
						
							|  |  |  |             ['00:00:00.00', '00:00:00.00'], | 
					
						
							|  |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function testFromInvalidString() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2020-02-13 00:39:31 +01:00
										 |  |  |         $this->expectException('\FFMpeg\Exception\InvalidArgumentException'); | 
					
						
							| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  |         TimeCode::fromString('lalali lala'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-06-25 18:19:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @dataProvider provideSeconds | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function testFromSeconds($seconds, $expected) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $tc = TimeCode::fromSeconds($seconds); | 
					
						
							|  |  |  |         $this->assertEquals($expected, (string) $tc); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function provideSeconds() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-09 14:32:43 +01:00
										 |  |  |         return [ | 
					
						
							|  |  |  |             [0.467,  '00:00:00.47'], | 
					
						
							|  |  |  |             [12.467, '00:00:12.47'], | 
					
						
							|  |  |  |             [59.867, '00:00:59.87'], | 
					
						
							|  |  |  |             [72.467, '00:01:12.47'], | 
					
						
							|  |  |  |             [3599.467, '00:59:59.47'], | 
					
						
							|  |  |  |             [3600.467, '01:00:00.47'], | 
					
						
							|  |  |  |             [86422.467, '24:00:22.47'], | 
					
						
							|  |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2013-06-25 18:19:15 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-06-25 10:03:20 +02:00
										 |  |  | } |