Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(55)

Side by Side Diff: content/renderer/media/video_capture_impl_unittest.cc

Issue 6962006: Undo mistaken revert. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/message_loop.h"
6 #include "content/renderer/media/video_capture_impl.h"
7 #include "testing/gmock/include/gmock/gmock.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 using ::testing::_;
11 using ::testing::Return;
12
13 #define DEFAULT_CAPABILITY {176, 144, 30, 0, media::VideoFrame::I420, \
14 false, false }
15
16 ACTION_P(DeleteMessage, return_value) {
17 delete arg0;
18 return return_value;
19 }
20
21 class MockVideoCaptureMessageFilter : public VideoCaptureMessageFilter {
22 public:
23 MockVideoCaptureMessageFilter() : VideoCaptureMessageFilter(1) {}
24 virtual ~MockVideoCaptureMessageFilter() {}
25
26 // Filter implementation.
27 MOCK_METHOD1(Send, bool(IPC::Message* message));
28 MOCK_METHOD0(ReadyToSend, bool());
29
30 private:
31 DISALLOW_COPY_AND_ASSIGN(MockVideoCaptureMessageFilter);
32 };
33
34 class MockVideoCaptureClient : public media::VideoCapture::EventHandler {
35 public:
36 MockVideoCaptureClient() {}
37 virtual ~MockVideoCaptureClient() {}
38
39 // Filter implementation.
40 MOCK_METHOD1(OnStarted, void(media::VideoCapture* capture));
41 MOCK_METHOD1(OnStopped, void(media::VideoCapture* capture));
42 MOCK_METHOD1(OnPaused, void(media::VideoCapture* capture));
43 MOCK_METHOD2(OnError, void(media::VideoCapture* capture, int error_code));
44 MOCK_METHOD2(OnBufferReady,
45 void(media::VideoCapture* capture,
46 scoped_refptr<media::VideoCapture::VideoFrameBuffer> buf));
47 MOCK_METHOD2(OnDeviceInfoReceived,
48 void(media::VideoCapture* capture,
49 const media::VideoCaptureParams& device_info));
50
51 private:
52 DISALLOW_COPY_AND_ASSIGN(MockVideoCaptureClient);
53 };
54
55 class VideoCaptureImplTest : public ::testing::Test {
56 public:
57 VideoCaptureImplTest() {
58 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
59 message_loop_proxy_ =
60 base::MessageLoopProxy::CreateForCurrentThread().get();
61
62 message_filter_ = new MockVideoCaptureMessageFilter;
63 session_id_ = 1;
64
65 video_capture_impl_ = new VideoCaptureImpl(session_id_, message_loop_proxy_,
66 message_filter_);
67
68 video_capture_impl_->device_id_ = 2;
69 }
70
71 virtual ~VideoCaptureImplTest() {
72 delete video_capture_impl_;
73 }
74
75 protected:
76 scoped_ptr<MessageLoop> message_loop_;
77 scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
78 scoped_refptr<MockVideoCaptureMessageFilter> message_filter_;
79 media::VideoCaptureSessionId session_id_;
80 VideoCaptureImpl* video_capture_impl_;
81
82 private:
83 DISALLOW_COPY_AND_ASSIGN(VideoCaptureImplTest);
84 };
85
86 TEST_F(VideoCaptureImplTest, Simple) {
87 // Execute SetCapture() and StopCapture().
88
89 scoped_ptr<MockVideoCaptureClient> client(new MockVideoCaptureClient);
90 media::VideoCapture::VideoCaptureCapability capability = DEFAULT_CAPABILITY;
91
92 EXPECT_CALL(*message_filter_, Send(_))
93 .WillRepeatedly(DeleteMessage(true));
94
95 EXPECT_CALL(*message_filter_, ReadyToSend())
96 .WillRepeatedly(Return(true));
97
98 EXPECT_CALL(*client, OnStarted(_))
99 .WillOnce(Return());
100
101 video_capture_impl_->StartCapture(client.get(), capability);
102
103 EXPECT_CALL(*client, OnStopped(_))
104 .WillOnce(Return());
105
106 video_capture_impl_->StopCapture(client.get());
107 }
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_manager.cc ('k') | content/renderer/video_capture_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698