| 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 |