scratch – Blame information for rev 120

Subversion Repositories:
Rev:
Rev Author Line No. Line
120 office 1 <?php
2  
3 namespace Tests\FFMpeg\Unit\Media;
4  
5 use FFMpeg\Media\Frame;
6  
7 class FrameTest extends AbstractMediaTestCase
8 {
9 public function testGetTimeCode()
10 {
11 $driver = $this->getFFMpegDriverMock();
12 $ffprobe = $this->getFFProbeMock();
13 $timecode = $this->getTimeCodeMock();
14  
15 $frame = new Frame($this->getVideoMock(__FILE__), $driver, $ffprobe, $timecode);
16 $this->assertSame($timecode, $frame->getTimeCode());
17 }
18  
19 public function testFiltersReturnFilters()
20 {
21 $driver = $this->getFFMpegDriverMock();
22 $ffprobe = $this->getFFProbeMock();
23 $timecode = $this->getTimeCodeMock();
24  
25 $frame = new Frame($this->getVideoMock(__FILE__), $driver, $ffprobe, $timecode);
26 $this->assertInstanceOf('FFMpeg\Filters\Frame\FrameFilters', $frame->filters());
27 }
28  
29 public function testAddFiltersAddsAFilter()
30 {
31 $driver = $this->getFFMpegDriverMock();
32 $ffprobe = $this->getFFProbeMock();
33 $timecode = $this->getTimeCodeMock();
34  
35 $filters = $this->getMockBuilder('FFMpeg\Filters\FiltersCollection')
36 ->disableOriginalConstructor()
37 ->getMock();
38  
39 $filter = $this->getMock('FFMpeg\Filters\Frame\FrameFilterInterface');
40  
41 $filters->expects($this->once())
42 ->method('add')
43 ->with($filter);
44  
45 $frame = new Frame($this->getVideoMock(__FILE__), $driver, $ffprobe, $timecode);
46 $frame->setFiltersCollection($filters);
47 $frame->addFilter($filter);
48 }
49  
50 /**
51 * @dataProvider provideSaveOptions
52 */
53 public function testSave($accurate, $base64, $commands)
54 {
55 $driver = $this->getFFMpegDriverMock();
56 $ffprobe = $this->getFFProbeMock();
57 $timecode = $this->getTimeCodeMock();
58 $timecode->expects($this->once())
59 ->method('__toString')
60 ->will($this->returnValue('timecode'));
61  
62 $pathfile = '/target/destination';
63  
64 array_push($commands, $pathfile);
65  
66 $driver->expects($this->once())
67 ->method('command')
68 ->with($commands);
69  
70 if(!$base64) {
71 $frame = new Frame($this->getVideoMock(__FILE__), $driver, $ffprobe, $timecode);
72 $this->assertSame($frame, $frame->save($pathfile, $accurate, $base64));
73 }
74 else {
75 $frame = new Frame($this->getVideoMock(__FILE__), $driver, $ffprobe, $timecode);
76 $frame->save($pathfile, $accurate, $base64);
77 }
78 }
79  
80 public function provideSaveOptions()
81 {
82 return array(
83 array(false, false, array(
84 '-y', '-ss', 'timecode',
85 '-i', __FILE__,
86 '-vframes', '1',
87 '-f', 'image2')
88 ),
89 array(true, false, array(
90 '-y', '-i', __FILE__,
91 '-vframes', '1', '-ss', 'timecode',
92 '-f', 'image2')
93 ),
94 array(false, true, array(
95 '-y', '-ss', 'timecode',
96 '-i', __FILE__,
97 '-vframes', '1',
98 '-f', 'image2pipe', '-')
99 ),
100 array(true, true, array(
101 '-y', '-i', __FILE__,
102 '-vframes', '1', '-ss', 'timecode',
103 '-f', 'image2pipe', '-')
104 )
105 );
106 }
107 }