eeb976a08e015f339db63c491c50d43a52568fe1
[platform/framework/web/crosswalk.git] / src / content / renderer / media / mock_media_stream_video_sink.h
1 // Copyright 2014 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 CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_VIDEO_SINK_H_
6 #define CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_VIDEO_SINK_H_
7
8 #include "content/public/renderer/media_stream_video_sink.h"
9
10 #include "base/memory/weak_ptr.h"
11 #include "content/common/media/video_capture.h"
12 #include "media/base/video_frame.h"
13 #include "testing/gmock/include/gmock/gmock.h"
14
15 namespace content {
16
17 class MockMediaStreamVideoSink : public MediaStreamVideoSink {
18  public:
19   MockMediaStreamVideoSink();
20   virtual ~MockMediaStreamVideoSink();
21
22   virtual void OnReadyStateChanged(
23       blink::WebMediaStreamSource::ReadyState state) override;
24   virtual void OnEnabledChanged(bool enabled) override;
25
26   // Triggered when OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame)
27   // is called.
28   MOCK_METHOD0(OnVideoFrame, void());
29
30   VideoCaptureDeliverFrameCB GetDeliverFrameCB();
31
32   int number_of_frames() const { return number_of_frames_; }
33   media::VideoFrame::Format format() const { return format_; }
34   gfx::Size frame_size() const { return frame_size_; }
35   scoped_refptr<media::VideoFrame> last_frame() const { return last_frame_; };
36
37   bool enabled() const { return enabled_; }
38   blink::WebMediaStreamSource::ReadyState state() const { return state_; }
39
40  private:
41   void DeliverVideoFrame(
42       const scoped_refptr<media::VideoFrame>& frame,
43       const media::VideoCaptureFormat& format,
44       const base::TimeTicks& estimated_capture_time);
45
46   int number_of_frames_;
47   bool enabled_;
48   media::VideoFrame::Format format_;
49   blink::WebMediaStreamSource::ReadyState state_;
50   gfx::Size frame_size_;
51   scoped_refptr<media::VideoFrame> last_frame_;
52   base::WeakPtrFactory<MockMediaStreamVideoSink> weak_factory_;
53 };
54
55 }  // namespace content
56
57 #endif