OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // A new breed of mock media filters, this time using gmock! Feel free to add | 5 // A new breed of mock media filters, this time using gmock! Feel free to add |
6 // actions if you need interesting side-effects (i.e., copying data to the | 6 // actions if you need interesting side-effects (i.e., copying data to the |
7 // buffer passed into MockDataSource::Read()). | 7 // buffer passed into MockDataSource::Read()). |
8 // | 8 // |
9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock | 9 // Don't forget you can use StrictMock<> and NiceMock<> if you want the mock |
10 // filters to fail the test or do nothing when an unexpected method is called. | 10 // filters to fail the test or do nothing when an unexpected method is called. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 class MockFilter : public Filter { | 47 class MockFilter : public Filter { |
48 public: | 48 public: |
49 MockFilter(); | 49 MockFilter(); |
50 | 50 |
51 // Filter implementation. | 51 // Filter implementation. |
52 MOCK_METHOD1(Play, void(FilterCallback* callback)); | 52 MOCK_METHOD1(Play, void(FilterCallback* callback)); |
53 MOCK_METHOD1(Pause, void(FilterCallback* callback)); | 53 MOCK_METHOD1(Pause, void(FilterCallback* callback)); |
54 MOCK_METHOD1(Flush, void(FilterCallback* callback)); | 54 MOCK_METHOD1(Flush, void(FilterCallback* callback)); |
55 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 55 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
56 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 56 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
57 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 57 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
58 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 58 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
59 | 59 |
60 protected: | 60 protected: |
61 virtual ~MockFilter(); | 61 virtual ~MockFilter(); |
62 | 62 |
63 private: | 63 private: |
64 DISALLOW_COPY_AND_ASSIGN(MockFilter); | 64 DISALLOW_COPY_AND_ASSIGN(MockFilter); |
65 }; | 65 }; |
66 | 66 |
67 class MockDataSource : public DataSource { | 67 class MockDataSource : public DataSource { |
68 public: | 68 public: |
69 MockDataSource(); | 69 MockDataSource(); |
70 | 70 |
71 // Filter implementation. | 71 // Filter implementation. |
72 virtual void set_host(FilterHost* host); | 72 virtual void set_host(FilterHost* host); |
73 | 73 |
74 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 74 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
75 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 75 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
76 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 76 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
77 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 77 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
78 | 78 |
79 // DataSource implementation. | 79 // DataSource implementation. |
80 MOCK_METHOD0(media_format, const MediaFormat&()); | 80 MOCK_METHOD0(media_format, const MediaFormat&()); |
81 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, | 81 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, |
82 DataSource::ReadCallback* callback)); | 82 DataSource::ReadCallback* callback)); |
83 MOCK_METHOD1(GetSize, bool(int64* size_out)); | 83 MOCK_METHOD1(GetSize, bool(int64* size_out)); |
84 MOCK_METHOD1(SetPreload, void(Preload preload)); | 84 MOCK_METHOD1(SetPreload, void(Preload preload)); |
85 MOCK_METHOD0(IsStreaming, bool()); | 85 MOCK_METHOD0(IsStreaming, bool()); |
86 | 86 |
(...skipping 12 matching lines...) Expand all Loading... |
99 }; | 99 }; |
100 | 100 |
101 class MockDemuxer : public Demuxer { | 101 class MockDemuxer : public Demuxer { |
102 public: | 102 public: |
103 MockDemuxer(); | 103 MockDemuxer(); |
104 // Filter implementation. | 104 // Filter implementation. |
105 virtual void set_host(FilterHost* host); | 105 virtual void set_host(FilterHost* host); |
106 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 106 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
107 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 107 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
108 MOCK_METHOD1(SetPreload, void(Preload preload)); | 108 MOCK_METHOD1(SetPreload, void(Preload preload)); |
109 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 109 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
110 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 110 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
111 | 111 |
112 // Demuxer implementation. | 112 // Demuxer implementation. |
113 MOCK_METHOD2(Initialize, void(DataSource* data_source, | 113 MOCK_METHOD2(Initialize, void(DataSource* data_source, |
114 FilterCallback* callback)); | 114 FilterCallback* callback)); |
115 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(DemuxerStream::Type)); | 115 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(DemuxerStream::Type)); |
116 | 116 |
117 // Sets the TotalBytes, BufferedBytes, & Duration values to be sent to host() | 117 // Sets the TotalBytes, BufferedBytes, & Duration values to be sent to host() |
118 // when set_host() is called. | 118 // when set_host() is called. |
119 void SetTotalAndBufferedBytesAndDuration( | 119 void SetTotalAndBufferedBytesAndDuration( |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); | 170 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); |
171 }; | 171 }; |
172 | 172 |
173 class MockVideoDecoder : public VideoDecoder { | 173 class MockVideoDecoder : public VideoDecoder { |
174 public: | 174 public: |
175 MockVideoDecoder(); | 175 MockVideoDecoder(); |
176 | 176 |
177 // Filter implementation. | 177 // Filter implementation. |
178 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 178 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
179 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 179 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
180 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 180 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
181 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 181 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
182 | 182 |
183 // VideoDecoder implementation. | 183 // VideoDecoder implementation. |
184 MOCK_METHOD3(Initialize, void(DemuxerStream* stream, | 184 MOCK_METHOD3(Initialize, void(DemuxerStream* stream, |
185 FilterCallback* callback, | 185 FilterCallback* callback, |
186 StatisticsCallback* stats_callback)); | 186 StatisticsCallback* stats_callback)); |
187 MOCK_METHOD0(media_format, const MediaFormat&()); | 187 MOCK_METHOD0(media_format, const MediaFormat&()); |
188 MOCK_METHOD1(ProduceVideoFrame, void(scoped_refptr<VideoFrame>)); | 188 MOCK_METHOD1(ProduceVideoFrame, void(scoped_refptr<VideoFrame>)); |
189 MOCK_METHOD0(ProvidesBuffer, bool()); | 189 MOCK_METHOD0(ProvidesBuffer, bool()); |
190 | 190 |
191 void VideoFrameReadyForTest(scoped_refptr<VideoFrame> frame) { | 191 void VideoFrameReadyForTest(scoped_refptr<VideoFrame> frame) { |
192 VideoDecoder::VideoFrameReady(frame); | 192 VideoDecoder::VideoFrameReady(frame); |
193 } | 193 } |
194 | 194 |
195 protected: | 195 protected: |
196 virtual ~MockVideoDecoder(); | 196 virtual ~MockVideoDecoder(); |
197 | 197 |
198 private: | 198 private: |
199 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); | 199 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); |
200 }; | 200 }; |
201 | 201 |
202 class MockAudioDecoder : public AudioDecoder { | 202 class MockAudioDecoder : public AudioDecoder { |
203 public: | 203 public: |
204 MockAudioDecoder(); | 204 MockAudioDecoder(); |
205 | 205 |
206 // Filter implementation. | 206 // Filter implementation. |
207 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 207 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
208 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 208 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
209 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 209 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
210 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 210 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
211 | 211 |
212 // AudioDecoder implementation. | 212 // AudioDecoder implementation. |
213 MOCK_METHOD3(Initialize, void(DemuxerStream* stream, | 213 MOCK_METHOD3(Initialize, void(DemuxerStream* stream, |
214 FilterCallback* callback, | 214 FilterCallback* callback, |
215 StatisticsCallback* stats_callback)); | 215 StatisticsCallback* stats_callback)); |
216 MOCK_METHOD0(config, AudioDecoderConfig()); | 216 MOCK_METHOD0(config, AudioDecoderConfig()); |
217 MOCK_METHOD1(ProduceAudioSamples, void(scoped_refptr<Buffer>)); | 217 MOCK_METHOD1(ProduceAudioSamples, void(scoped_refptr<Buffer>)); |
218 | 218 |
219 void ConsumeAudioSamplesForTest(scoped_refptr<Buffer> buffer) { | 219 void ConsumeAudioSamplesForTest(scoped_refptr<Buffer> buffer) { |
220 AudioDecoder::ConsumeAudioSamples(buffer); | 220 AudioDecoder::ConsumeAudioSamples(buffer); |
221 } | 221 } |
222 | 222 |
223 protected: | 223 protected: |
224 virtual ~MockAudioDecoder(); | 224 virtual ~MockAudioDecoder(); |
225 | 225 |
226 private: | 226 private: |
227 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); | 227 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); |
228 }; | 228 }; |
229 | 229 |
230 class MockVideoRenderer : public VideoRenderer { | 230 class MockVideoRenderer : public VideoRenderer { |
231 public: | 231 public: |
232 MockVideoRenderer(); | 232 MockVideoRenderer(); |
233 | 233 |
234 // Filter implementation. | 234 // Filter implementation. |
235 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 235 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
236 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 236 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
237 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 237 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
238 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 238 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
239 | 239 |
240 // VideoRenderer implementation. | 240 // VideoRenderer implementation. |
241 MOCK_METHOD3(Initialize, void(VideoDecoder* decoder, | 241 MOCK_METHOD3(Initialize, void(VideoDecoder* decoder, |
242 FilterCallback* callback, | 242 FilterCallback* callback, |
243 StatisticsCallback* stats_callback)); | 243 StatisticsCallback* stats_callback)); |
244 MOCK_METHOD0(HasEnded, bool()); | 244 MOCK_METHOD0(HasEnded, bool()); |
245 | 245 |
246 // TODO(scherkus): although VideoRendererBase defines this method, this really | 246 // TODO(scherkus): although VideoRendererBase defines this method, this really |
247 // shouldn't be here OR should be renamed. | 247 // shouldn't be here OR should be renamed. |
248 MOCK_METHOD1(ConsumeVideoFrame, void(scoped_refptr<VideoFrame> frame)); | 248 MOCK_METHOD1(ConsumeVideoFrame, void(scoped_refptr<VideoFrame> frame)); |
249 | 249 |
250 protected: | 250 protected: |
251 virtual ~MockVideoRenderer(); | 251 virtual ~MockVideoRenderer(); |
252 | 252 |
253 private: | 253 private: |
254 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); | 254 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); |
255 }; | 255 }; |
256 | 256 |
257 class MockAudioRenderer : public AudioRenderer { | 257 class MockAudioRenderer : public AudioRenderer { |
258 public: | 258 public: |
259 MockAudioRenderer(); | 259 MockAudioRenderer(); |
260 | 260 |
261 // Filter implementation. | 261 // Filter implementation. |
262 MOCK_METHOD1(Stop, void(FilterCallback* callback)); | 262 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
263 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 263 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
264 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 264 MOCK_METHOD2(Seek, void(base::TimeDelta time, const FilterStatusCB& cb)); |
265 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 265 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
266 | 266 |
267 // AudioRenderer implementation. | 267 // AudioRenderer implementation. |
268 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, | 268 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, |
269 FilterCallback* callback)); | 269 FilterCallback* callback)); |
270 MOCK_METHOD0(HasEnded, bool()); | 270 MOCK_METHOD0(HasEnded, bool()); |
271 MOCK_METHOD1(SetVolume, void(float volume)); | 271 MOCK_METHOD1(SetVolume, void(float volume)); |
272 | 272 |
273 protected: | 273 protected: |
274 virtual ~MockAudioRenderer(); | 274 virtual ~MockAudioRenderer(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 scoped_refptr<MockVideoRenderer> video_renderer_; | 307 scoped_refptr<MockVideoRenderer> video_renderer_; |
308 scoped_refptr<MockAudioRenderer> audio_renderer_; | 308 scoped_refptr<MockAudioRenderer> audio_renderer_; |
309 | 309 |
310 DISALLOW_COPY_AND_ASSIGN(MockFilterCollection); | 310 DISALLOW_COPY_AND_ASSIGN(MockFilterCollection); |
311 }; | 311 }; |
312 | 312 |
313 // Helper gmock functions that immediately executes and destroys the | 313 // Helper gmock functions that immediately executes and destroys the |
314 // FilterCallback on behalf of the provided filter. Can be used when mocking | 314 // FilterCallback on behalf of the provided filter. Can be used when mocking |
315 // the Initialize() and Seek() methods. | 315 // the Initialize() and Seek() methods. |
316 void RunFilterCallback(::testing::Unused, FilterCallback* callback); | 316 void RunFilterCallback(::testing::Unused, FilterCallback* callback); |
| 317 void RunFilterStatusCB(::testing::Unused, const FilterStatusCB& cb); |
317 void RunPipelineStatusCallback(PipelineStatus status, | 318 void RunPipelineStatusCallback(PipelineStatus status, |
318 PipelineStatusCallback* callback); | 319 PipelineStatusCallback* callback); |
319 void RunFilterCallback3(::testing::Unused, FilterCallback* callback, | 320 void RunFilterCallback3(::testing::Unused, FilterCallback* callback, |
320 ::testing::Unused); | 321 ::testing::Unused); |
321 | 322 |
322 // Helper gmock function that immediately destroys the FilterCallback on behalf | 323 // Helper gmock function that immediately destroys the FilterCallback on behalf |
323 // of the provided filter. Can be used when mocking the Initialize() and Seek() | 324 // of the provided filter. Can be used when mocking the Initialize() and Seek() |
324 // methods. | 325 // methods. |
325 void DestroyFilterCallback(::testing::Unused, FilterCallback* callback); | 326 void DestroyFilterCallback(::testing::Unused, FilterCallback* callback); |
326 | 327 |
(...skipping 24 matching lines...) Expand all Loading... |
351 public: | 352 public: |
352 MockStatisticsCallback(); | 353 MockStatisticsCallback(); |
353 ~MockStatisticsCallback(); | 354 ~MockStatisticsCallback(); |
354 | 355 |
355 MOCK_METHOD1(OnStatistics, void(const media::PipelineStatistics& statistics)); | 356 MOCK_METHOD1(OnStatistics, void(const media::PipelineStatistics& statistics)); |
356 }; | 357 }; |
357 | 358 |
358 } // namespace media | 359 } // namespace media |
359 | 360 |
360 #endif // MEDIA_BASE_MOCK_FILTERS_H_ | 361 #endif // MEDIA_BASE_MOCK_FILTERS_H_ |
OLD | NEW |