| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 }; | 88 }; |
| 89 | 89 |
| 90 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback); | 90 DISALLOW_COPY_AND_ASSIGN(MockFilterCallback); |
| 91 }; | 91 }; |
| 92 | 92 |
| 93 class MockDataSource : public DataSource { | 93 class MockDataSource : public DataSource { |
| 94 public: | 94 public: |
| 95 MockDataSource() {} | 95 MockDataSource() {} |
| 96 | 96 |
| 97 // MediaFilter implementation. | 97 // MediaFilter implementation. |
| 98 MOCK_METHOD0(Stop, void()); | 98 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 99 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 99 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 100 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 100 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 101 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 101 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 102 | 102 |
| 103 // DataSource implementation. | 103 // DataSource implementation. |
| 104 MOCK_METHOD2(Initialize, void(const std::string& url, | 104 MOCK_METHOD2(Initialize, void(const std::string& url, |
| 105 FilterCallback* callback)); | 105 FilterCallback* callback)); |
| 106 MOCK_METHOD0(media_format, const MediaFormat&()); | 106 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 107 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, | 107 MOCK_METHOD4(Read, void(int64 position, size_t size, uint8* data, |
| 108 DataSource::ReadCallback* callback)); | 108 DataSource::ReadCallback* callback)); |
| 109 MOCK_METHOD1(GetSize, bool(int64* size_out)); | 109 MOCK_METHOD1(GetSize, bool(int64* size_out)); |
| 110 MOCK_METHOD0(IsStreaming, bool()); | 110 MOCK_METHOD0(IsStreaming, bool()); |
| 111 | 111 |
| 112 protected: | 112 protected: |
| 113 virtual ~MockDataSource() {} | 113 virtual ~MockDataSource() {} |
| 114 | 114 |
| 115 private: | 115 private: |
| 116 DISALLOW_COPY_AND_ASSIGN(MockDataSource); | 116 DISALLOW_COPY_AND_ASSIGN(MockDataSource); |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 class MockDemuxer : public Demuxer { | 119 class MockDemuxer : public Demuxer { |
| 120 public: | 120 public: |
| 121 MockDemuxer() {} | 121 MockDemuxer() {} |
| 122 | 122 |
| 123 // MediaFilter implementation. | 123 // MediaFilter implementation. |
| 124 MOCK_METHOD0(Stop, void()); | 124 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 125 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 125 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 126 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 126 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 127 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 127 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 128 | 128 |
| 129 // Demuxer implementation. | 129 // Demuxer implementation. |
| 130 MOCK_METHOD2(Initialize, void(DataSource* data_source, | 130 MOCK_METHOD2(Initialize, void(DataSource* data_source, |
| 131 FilterCallback* callback)); | 131 FilterCallback* callback)); |
| 132 MOCK_METHOD0(GetNumberOfStreams, size_t()); | 132 MOCK_METHOD0(GetNumberOfStreams, size_t()); |
| 133 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(int stream_id)); | 133 MOCK_METHOD1(GetStream, scoped_refptr<DemuxerStream>(int stream_id)); |
| 134 | 134 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 155 MediaFormat media_format_; | 155 MediaFormat media_format_; |
| 156 | 156 |
| 157 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); | 157 DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream); |
| 158 }; | 158 }; |
| 159 | 159 |
| 160 class MockVideoDecoder : public VideoDecoder { | 160 class MockVideoDecoder : public VideoDecoder { |
| 161 public: | 161 public: |
| 162 MockVideoDecoder() {} | 162 MockVideoDecoder() {} |
| 163 | 163 |
| 164 // MediaFilter implementation. | 164 // MediaFilter implementation. |
| 165 MOCK_METHOD0(Stop, void()); | 165 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 166 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 166 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 167 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 167 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 168 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 168 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 169 | 169 |
| 170 // VideoDecoder implementation. | 170 // VideoDecoder implementation. |
| 171 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, | 171 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, |
| 172 FilterCallback* callback)); | 172 FilterCallback* callback)); |
| 173 MOCK_METHOD0(media_format, const MediaFormat&()); | 173 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 174 MOCK_METHOD1(FillThisBuffer, void(scoped_refptr<VideoFrame>)); | 174 MOCK_METHOD1(FillThisBuffer, void(scoped_refptr<VideoFrame>)); |
| 175 | 175 |
| 176 protected: | 176 protected: |
| 177 virtual ~MockVideoDecoder() {} | 177 virtual ~MockVideoDecoder() {} |
| 178 | 178 |
| 179 private: | 179 private: |
| 180 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); | 180 DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder); |
| 181 }; | 181 }; |
| 182 | 182 |
| 183 class MockAudioDecoder : public AudioDecoder { | 183 class MockAudioDecoder : public AudioDecoder { |
| 184 public: | 184 public: |
| 185 MockAudioDecoder() {} | 185 MockAudioDecoder() {} |
| 186 | 186 |
| 187 // MediaFilter implementation. | 187 // MediaFilter implementation. |
| 188 MOCK_METHOD0(Stop, void()); | 188 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 189 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 189 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 190 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 190 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 191 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 191 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 192 | 192 |
| 193 // AudioDecoder implementation. | 193 // AudioDecoder implementation. |
| 194 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, | 194 MOCK_METHOD2(Initialize, void(DemuxerStream* stream, |
| 195 FilterCallback* callback)); | 195 FilterCallback* callback)); |
| 196 MOCK_METHOD0(media_format, const MediaFormat&()); | 196 MOCK_METHOD0(media_format, const MediaFormat&()); |
| 197 MOCK_METHOD1(FillThisBuffer, void(scoped_refptr<Buffer>)); | 197 MOCK_METHOD1(FillThisBuffer, void(scoped_refptr<Buffer>)); |
| 198 | 198 |
| 199 // change to public to allow unittest for access; | 199 // change to public to allow unittest for access; |
| 200 FillBufferDoneCallback* fill_buffer_done_callback() { | 200 FillBufferDoneCallback* fill_buffer_done_callback() { |
| 201 return AudioDecoder::fill_buffer_done_callback(); | 201 return AudioDecoder::fill_buffer_done_callback(); |
| 202 } | 202 } |
| 203 | 203 |
| 204 protected: | 204 protected: |
| 205 virtual ~MockAudioDecoder() {} | 205 virtual ~MockAudioDecoder() {} |
| 206 | 206 |
| 207 private: | 207 private: |
| 208 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); | 208 DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder); |
| 209 }; | 209 }; |
| 210 | 210 |
| 211 class MockVideoRenderer : public VideoRenderer { | 211 class MockVideoRenderer : public VideoRenderer { |
| 212 public: | 212 public: |
| 213 MockVideoRenderer() {} | 213 MockVideoRenderer() {} |
| 214 | 214 |
| 215 // MediaFilter implementation. | 215 // MediaFilter implementation. |
| 216 MOCK_METHOD0(Stop, void()); | 216 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 217 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 217 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 218 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 218 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 219 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 219 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 220 | 220 |
| 221 // VideoRenderer implementation. | 221 // VideoRenderer implementation. |
| 222 MOCK_METHOD2(Initialize, void(VideoDecoder* decoder, | 222 MOCK_METHOD2(Initialize, void(VideoDecoder* decoder, |
| 223 FilterCallback* callback)); | 223 FilterCallback* callback)); |
| 224 MOCK_METHOD0(HasEnded, bool()); | 224 MOCK_METHOD0(HasEnded, bool()); |
| 225 | 225 |
| 226 protected: | 226 protected: |
| 227 virtual ~MockVideoRenderer() {} | 227 virtual ~MockVideoRenderer() {} |
| 228 | 228 |
| 229 private: | 229 private: |
| 230 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); | 230 DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer); |
| 231 }; | 231 }; |
| 232 | 232 |
| 233 class MockAudioRenderer : public AudioRenderer { | 233 class MockAudioRenderer : public AudioRenderer { |
| 234 public: | 234 public: |
| 235 MockAudioRenderer() {} | 235 MockAudioRenderer() {} |
| 236 | 236 |
| 237 // MediaFilter implementation. | 237 // MediaFilter implementation. |
| 238 MOCK_METHOD0(Stop, void()); | 238 MOCK_METHOD1(Stop, void(FilterCallback* callback)); |
| 239 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); | 239 MOCK_METHOD1(SetPlaybackRate, void(float playback_rate)); |
| 240 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); | 240 MOCK_METHOD2(Seek, void(base::TimeDelta time, FilterCallback* callback)); |
| 241 MOCK_METHOD0(OnAudioRendererDisabled, void()); | 241 MOCK_METHOD0(OnAudioRendererDisabled, void()); |
| 242 | 242 |
| 243 // AudioRenderer implementation. | 243 // AudioRenderer implementation. |
| 244 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, | 244 MOCK_METHOD2(Initialize, void(AudioDecoder* decoder, |
| 245 FilterCallback* callback)); | 245 FilterCallback* callback)); |
| 246 MOCK_METHOD0(HasEnded, bool()); | 246 MOCK_METHOD0(HasEnded, bool()); |
| 247 MOCK_METHOD1(SetVolume, void(float volume)); | 247 MOCK_METHOD1(SetVolume, void(float volume)); |
| 248 | 248 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 // Helper gmock function that immediately executes and destroys the | 322 // Helper gmock function that immediately executes and destroys the |
| 323 // FilterCallback on behalf of the provided filter. Can be used when mocking | 323 // FilterCallback on behalf of the provided filter. Can be used when mocking |
| 324 // the Initialize() and Seek() methods. | 324 // the Initialize() and Seek() methods. |
| 325 void RunFilterCallback(::testing::Unused, FilterCallback* callback); | 325 void RunFilterCallback(::testing::Unused, FilterCallback* callback); |
| 326 | 326 |
| 327 // Helper gmock function that immediately destroys the FilterCallback on behalf | 327 // Helper gmock function that immediately destroys the FilterCallback on behalf |
| 328 // of the provided filter. Can be used when mocking the Initialize() and Seek() | 328 // of the provided filter. Can be used when mocking the Initialize() and Seek() |
| 329 // methods. | 329 // methods. |
| 330 void DestroyFilterCallback(::testing::Unused, FilterCallback* callback); | 330 void DestroyFilterCallback(::testing::Unused, FilterCallback* callback); |
| 331 | 331 |
| 332 // Helper gmock function that immediately executes and destroys the |
| 333 // FilterCallback on behalf of the provided filter. Can be used when mocking |
| 334 // the Stop() method. |
| 335 void RunStopFilterCallback(FilterCallback* callback); |
| 336 |
| 332 // Helper gmock action that calls SetError() on behalf of the provided filter. | 337 // Helper gmock action that calls SetError() on behalf of the provided filter. |
| 333 ACTION_P2(SetError, filter, error) { | 338 ACTION_P2(SetError, filter, error) { |
| 334 filter->host()->SetError(error); | 339 filter->host()->SetError(error); |
| 335 } | 340 } |
| 336 | 341 |
| 337 // Helper gmock action that calls SetDuration() on behalf of the provided | 342 // Helper gmock action that calls SetDuration() on behalf of the provided |
| 338 // filter. | 343 // filter. |
| 339 ACTION_P2(SetDuration, filter, duration) { | 344 ACTION_P2(SetDuration, filter, duration) { |
| 340 filter->host()->SetDuration(duration); | 345 filter->host()->SetDuration(duration); |
| 341 } | 346 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 354 | 359 |
| 355 // Helper gmock action that calls DisableAudioRenderer() on behalf of the | 360 // Helper gmock action that calls DisableAudioRenderer() on behalf of the |
| 356 // provided filter. | 361 // provided filter. |
| 357 ACTION_P(DisableAudioRenderer, filter) { | 362 ACTION_P(DisableAudioRenderer, filter) { |
| 358 filter->host()->DisableAudioRenderer(); | 363 filter->host()->DisableAudioRenderer(); |
| 359 } | 364 } |
| 360 | 365 |
| 361 } // namespace media | 366 } // namespace media |
| 362 | 367 |
| 363 #endif // MEDIA_BASE_MOCK_FILTERS_H_ | 368 #endif // MEDIA_BASE_MOCK_FILTERS_H_ |
| OLD | NEW |