Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / media / base / mock_filters.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_BASE_MOCK_FILTERS_H_
6 #define MEDIA_BASE_MOCK_FILTERS_H_
7
8 #include <string>
9
10 #include "base/callback.h"
11 #include "media/base/audio_decoder.h"
12 #include "media/base/audio_decoder_config.h"
13 #include "media/base/audio_renderer.h"
14 #include "media/base/decoder_buffer.h"
15 #include "media/base/decryptor.h"
16 #include "media/base/demuxer.h"
17 #include "media/base/filter_collection.h"
18 #include "media/base/pipeline_status.h"
19 #include "media/base/text_track.h"
20 #include "media/base/time_source.h"
21 #include "media/base/video_decoder.h"
22 #include "media/base/video_decoder_config.h"
23 #include "media/base/video_frame.h"
24 #include "media/base/video_renderer.h"
25 #include "testing/gmock/include/gmock/gmock.h"
26
27 namespace media {
28
29 class MockDemuxer : public Demuxer {
30  public:
31   MockDemuxer();
32   virtual ~MockDemuxer();
33
34   // Demuxer implementation.
35   MOCK_METHOD3(Initialize,
36                void(DemuxerHost* host, const PipelineStatusCB& cb, bool));
37   MOCK_METHOD1(SetPlaybackRate, void(float playback_rate));
38   MOCK_METHOD2(Seek, void(base::TimeDelta time, const PipelineStatusCB& cb));
39   MOCK_METHOD1(Stop, void(const base::Closure& callback));
40   MOCK_METHOD0(OnAudioRendererDisabled, void());
41   MOCK_METHOD1(GetStream, DemuxerStream*(DemuxerStream::Type));
42   MOCK_CONST_METHOD0(GetTimelineOffset, base::Time());
43   MOCK_CONST_METHOD0(GetLiveness, Liveness());
44
45  private:
46   DISALLOW_COPY_AND_ASSIGN(MockDemuxer);
47 };
48
49 class MockDemuxerStream : public DemuxerStream {
50  public:
51   explicit MockDemuxerStream(DemuxerStream::Type type);
52   virtual ~MockDemuxerStream();
53
54   // DemuxerStream implementation.
55   virtual Type type() OVERRIDE;
56   MOCK_METHOD1(Read, void(const ReadCB& read_cb));
57   virtual AudioDecoderConfig audio_decoder_config() OVERRIDE;
58   virtual VideoDecoderConfig video_decoder_config() OVERRIDE;
59   MOCK_METHOD0(EnableBitstreamConverter, void());
60   MOCK_METHOD0(SupportsConfigChanges, bool());
61
62   void set_audio_decoder_config(const AudioDecoderConfig& config);
63   void set_video_decoder_config(const VideoDecoderConfig& config);
64
65   virtual VideoRotation video_rotation() OVERRIDE;
66
67  private:
68   DemuxerStream::Type type_;
69   AudioDecoderConfig audio_decoder_config_;
70   VideoDecoderConfig video_decoder_config_;
71
72   DISALLOW_COPY_AND_ASSIGN(MockDemuxerStream);
73 };
74
75 class MockVideoDecoder : public VideoDecoder {
76  public:
77   MockVideoDecoder();
78   virtual ~MockVideoDecoder();
79
80   // VideoDecoder implementation.
81   MOCK_METHOD4(Initialize, void(const VideoDecoderConfig& config,
82                                 bool low_delay,
83                                 const PipelineStatusCB& status_cb,
84                                 const OutputCB& output_cb));
85   MOCK_METHOD2(Decode, void(const scoped_refptr<DecoderBuffer>& buffer,
86                             const DecodeCB&));
87   MOCK_METHOD1(Reset, void(const base::Closure&));
88   MOCK_CONST_METHOD0(HasAlpha, bool());
89
90  private:
91   DISALLOW_COPY_AND_ASSIGN(MockVideoDecoder);
92 };
93
94 class MockAudioDecoder : public AudioDecoder {
95  public:
96   MockAudioDecoder();
97   virtual ~MockAudioDecoder();
98
99   // AudioDecoder implementation.
100   MOCK_METHOD3(Initialize,
101                void(const AudioDecoderConfig& config,
102                     const PipelineStatusCB& status_cb,
103                     const OutputCB& output_cb));
104   MOCK_METHOD2(Decode,
105                void(const scoped_refptr<DecoderBuffer>& buffer,
106                     const DecodeCB&));
107   MOCK_METHOD1(Reset, void(const base::Closure&));
108
109  private:
110   DISALLOW_COPY_AND_ASSIGN(MockAudioDecoder);
111 };
112
113 class MockVideoRenderer : public VideoRenderer {
114  public:
115   MockVideoRenderer();
116   virtual ~MockVideoRenderer();
117
118   // VideoRenderer implementation.
119   MOCK_METHOD10(Initialize, void(DemuxerStream* stream,
120                                  bool low_delay,
121                                  const PipelineStatusCB& init_cb,
122                                  const StatisticsCB& statistics_cb,
123                                  const TimeCB& time_cb,
124                                  const BufferingStateCB& buffering_state_cb,
125                                  const base::Closure& ended_cb,
126                                  const PipelineStatusCB& error_cb,
127                                  const TimeDeltaCB& get_time_cb,
128                                  const TimeDeltaCB& get_duration_cb));
129   MOCK_METHOD1(Flush, void(const base::Closure& callback));
130   MOCK_METHOD0(StartPlaying, void());
131
132  private:
133   DISALLOW_COPY_AND_ASSIGN(MockVideoRenderer);
134 };
135
136 class MockAudioRenderer : public AudioRenderer {
137  public:
138   MockAudioRenderer();
139   virtual ~MockAudioRenderer();
140
141   // AudioRenderer implementation.
142   MOCK_METHOD7(Initialize, void(DemuxerStream* stream,
143                                 const PipelineStatusCB& init_cb,
144                                 const StatisticsCB& statistics_cb,
145                                 const TimeCB& time_cb,
146                                 const BufferingStateCB& buffering_state_cb,
147                                 const base::Closure& ended_cb,
148                                 const PipelineStatusCB& error_cb));
149   MOCK_METHOD0(GetTimeSource, TimeSource*());
150   MOCK_METHOD1(Flush, void(const base::Closure& callback));
151   MOCK_METHOD0(StartPlaying, void());
152   MOCK_METHOD1(SetVolume, void(float volume));
153
154  private:
155   DISALLOW_COPY_AND_ASSIGN(MockAudioRenderer);
156 };
157
158 class MockTimeSource : public TimeSource {
159  public:
160   MockTimeSource();
161   virtual ~MockTimeSource();
162
163   // TimeSource implementation.
164   MOCK_METHOD0(StartTicking, void());
165   MOCK_METHOD0(StopTicking, void());
166   MOCK_METHOD1(SetPlaybackRate, void(float));
167   MOCK_METHOD1(SetMediaTime, void(base::TimeDelta));
168   MOCK_METHOD0(CurrentMediaTime, base::TimeDelta());
169
170  private:
171   DISALLOW_COPY_AND_ASSIGN(MockTimeSource);
172 };
173
174 class MockTextTrack : public TextTrack {
175  public:
176   MockTextTrack();
177   virtual ~MockTextTrack();
178
179   MOCK_METHOD5(addWebVTTCue, void(const base::TimeDelta& start,
180                                   const base::TimeDelta& end,
181                                   const std::string& id,
182                                   const std::string& content,
183                                   const std::string& settings));
184
185  private:
186   DISALLOW_COPY_AND_ASSIGN(MockTextTrack);
187 };
188
189 class MockDecryptor : public Decryptor {
190  public:
191   MockDecryptor();
192   virtual ~MockDecryptor();
193
194   MOCK_METHOD2(RegisterNewKeyCB, void(StreamType stream_type,
195                                       const NewKeyCB& new_key_cb));
196   MOCK_METHOD3(Decrypt, void(StreamType stream_type,
197                              const scoped_refptr<DecoderBuffer>& encrypted,
198                              const DecryptCB& decrypt_cb));
199   MOCK_METHOD1(CancelDecrypt, void(StreamType stream_type));
200   MOCK_METHOD2(InitializeAudioDecoder,
201                void(const AudioDecoderConfig& config,
202                     const DecoderInitCB& init_cb));
203   MOCK_METHOD2(InitializeVideoDecoder,
204                void(const VideoDecoderConfig& config,
205                     const DecoderInitCB& init_cb));
206   MOCK_METHOD2(DecryptAndDecodeAudio,
207                void(const scoped_refptr<media::DecoderBuffer>& encrypted,
208                     const AudioDecodeCB& audio_decode_cb));
209   MOCK_METHOD2(DecryptAndDecodeVideo,
210                void(const scoped_refptr<media::DecoderBuffer>& encrypted,
211                     const VideoDecodeCB& video_decode_cb));
212   MOCK_METHOD1(ResetDecoder, void(StreamType stream_type));
213   MOCK_METHOD1(DeinitializeDecoder, void(StreamType stream_type));
214
215  private:
216   DISALLOW_COPY_AND_ASSIGN(MockDecryptor);
217 };
218
219 // Helper mock statistics callback.
220 class MockStatisticsCB {
221  public:
222   MockStatisticsCB();
223   ~MockStatisticsCB();
224
225   MOCK_METHOD1(OnStatistics, void(const media::PipelineStatistics& statistics));
226 };
227
228 }  // namespace media
229
230 #endif  // MEDIA_BASE_MOCK_FILTERS_H_