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 |