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

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

Issue 2430313007: VideoCapture: remove last remnants of IPC (Closed)
Patch Set: rockot@ comment on using ChildThread Created 4 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/shared_memory.h" 8 #include "base/memory/shared_memory.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "content/child/child_process.h" 10 #include "content/child/child_process.h"
11 #include "content/common/video_capture.mojom.h" 11 #include "content/common/video_capture.mojom.h"
12 #include "content/renderer/media/video_capture_impl.h" 12 #include "content/renderer/media/video_capture_impl.h"
13 #include "mojo/public/cpp/system/platform_handle.h" 13 #include "mojo/public/cpp/system/platform_handle.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 using ::testing::_; 17 using ::testing::_;
18 using ::testing::Invoke; 18 using ::testing::Invoke;
19 using ::testing::InvokeWithoutArgs; 19 using ::testing::InvokeWithoutArgs;
20 using ::testing::SaveArg; 20 using ::testing::SaveArg;
21 using ::testing::WithArgs; 21 using ::testing::WithArgs;
22 22
23 namespace content { 23 namespace content {
24 24
25 const int kSessionId = 1; 25 const int kSessionId = 11;
26 26
27 void RunEmptyFormatsCallback(const VideoCaptureDeviceFormatsCB& callback) { 27 void RunEmptyFormatsCallback(const VideoCaptureDeviceFormatsCB& callback) {
28 media::VideoCaptureFormats formats; 28 media::VideoCaptureFormats formats;
29 callback.Run(formats); 29 callback.Run(formats);
30 } 30 }
31 31
32 // Mock implementation of the Mojo Host service. 32 // Mock implementation of the Mojo Host service.
33 class MockMojoVideoCaptureHost : public mojom::VideoCaptureHost { 33 class MockMojoVideoCaptureHost : public mojom::VideoCaptureHost {
34 public: 34 public:
35 MockMojoVideoCaptureHost() : released_buffer_count_(0) { 35 MockMojoVideoCaptureHost() : released_buffer_count_(0) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 void increase_released_buffer_count() { released_buffer_count_++; } 69 void increase_released_buffer_count() { released_buffer_count_++; }
70 70
71 private: 71 private:
72 int released_buffer_count_; 72 int released_buffer_count_;
73 73
74 DISALLOW_COPY_AND_ASSIGN(MockMojoVideoCaptureHost); 74 DISALLOW_COPY_AND_ASSIGN(MockMojoVideoCaptureHost);
75 }; 75 };
76 76
77 // This class encapsulates a VideoCaptureImpl under test and the necessary 77 // This class encapsulates a VideoCaptureImpl under test and the necessary
78 // accessory classes, namely: 78 // accessory classes, namely:
79 // - a VideoCaptureMessageFilter;
80 // - a MockMojoVideoCaptureHost, mimicking the RendererHost; 79 // - a MockMojoVideoCaptureHost, mimicking the RendererHost;
81 // - a few callbacks that are bound when calling operations of VideoCaptureImpl 80 // - a few callbacks that are bound when calling operations of VideoCaptureImpl
82 // and on which we set expectations. 81 // and on which we set expectations.
83 class VideoCaptureImplTest : public ::testing::Test { 82 class VideoCaptureImplTest : public ::testing::Test {
84 public: 83 public:
85 VideoCaptureImplTest() 84 VideoCaptureImplTest()
86 : message_filter_(new VideoCaptureMessageFilter), 85 : video_capture_impl_(new VideoCaptureImpl(kSessionId)) {
87 video_capture_impl_(
88 new VideoCaptureImpl(kSessionId,
89 message_filter_.get(),
90 base::ThreadTaskRunnerHandle::Get())) {
91 params_small_.requested_format = media::VideoCaptureFormat( 86 params_small_.requested_format = media::VideoCaptureFormat(
92 gfx::Size(176, 144), 30, media::PIXEL_FORMAT_I420); 87 gfx::Size(176, 144), 30, media::PIXEL_FORMAT_I420);
93 params_large_.requested_format = media::VideoCaptureFormat( 88 params_large_.requested_format = media::VideoCaptureFormat(
94 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420); 89 gfx::Size(320, 240), 30, media::PIXEL_FORMAT_I420);
95 90
96 video_capture_impl_->SetVideoCaptureHostForTesting( 91 video_capture_impl_->SetVideoCaptureHostForTesting(
97 &mock_video_capture_host_); 92 &mock_video_capture_host_);
98 video_capture_impl_->device_id_ = 2;
99 } 93 }
100 94
101 protected: 95 protected:
102 // These four mocks are used to create callbacks for the different oeprations. 96 // These four mocks are used to create callbacks for the different oeprations.
103 MOCK_METHOD2(OnFrameReady, 97 MOCK_METHOD2(OnFrameReady,
104 void(const scoped_refptr<media::VideoFrame>&, base::TimeTicks)); 98 void(const scoped_refptr<media::VideoFrame>&, base::TimeTicks));
105 MOCK_METHOD1(OnStateUpdate, void(VideoCaptureState)); 99 MOCK_METHOD1(OnStateUpdate, void(VideoCaptureState));
106 MOCK_METHOD1(OnDeviceFormatsInUse, void(const media::VideoCaptureFormats&)); 100 MOCK_METHOD1(OnDeviceFormatsInUse, void(const media::VideoCaptureFormats&));
107 MOCK_METHOD1(OnDeviceSupportedFormats, 101 MOCK_METHOD1(OnDeviceSupportedFormats,
108 void(const media::VideoCaptureFormats&)); 102 void(const media::VideoCaptureFormats&));
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 base::Unretained(this)); 158 base::Unretained(this));
165 video_capture_impl_->GetDeviceFormatsInUse(callback); 159 video_capture_impl_->GetDeviceFormatsInUse(callback);
166 } 160 }
167 161
168 void OnStateChanged(mojom::VideoCaptureState state) { 162 void OnStateChanged(mojom::VideoCaptureState state) {
169 video_capture_impl_->OnStateChanged(state); 163 video_capture_impl_->OnStateChanged(state);
170 } 164 }
171 165
172 const base::MessageLoop message_loop_; 166 const base::MessageLoop message_loop_;
173 const ChildProcess child_process_; 167 const ChildProcess child_process_;
174 const scoped_refptr<VideoCaptureMessageFilter> message_filter_;
175 const std::unique_ptr<VideoCaptureImpl> video_capture_impl_; 168 const std::unique_ptr<VideoCaptureImpl> video_capture_impl_;
176 MockMojoVideoCaptureHost mock_video_capture_host_; 169 MockMojoVideoCaptureHost mock_video_capture_host_;
177 media::VideoCaptureParams params_small_; 170 media::VideoCaptureParams params_small_;
178 media::VideoCaptureParams params_large_; 171 media::VideoCaptureParams params_large_;
179 172
180 private: 173 private:
181 DISALLOW_COPY_AND_ASSIGN(VideoCaptureImplTest); 174 DISALLOW_COPY_AND_ASSIGN(VideoCaptureImplTest);
182 }; 175 };
183 176
184 TEST_F(VideoCaptureImplTest, Simple) { 177 TEST_F(VideoCaptureImplTest, Simple) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_)); 335 EXPECT_CALL(mock_video_capture_host_, DoStart(_, kSessionId, params_small_));
343 336
344 StartCapture(0, params_small_); 337 StartCapture(0, params_small_);
345 338
346 OnStateChanged(mojom::VideoCaptureState::FAILED); 339 OnStateChanged(mojom::VideoCaptureState::FAILED);
347 340
348 StopCapture(0); 341 StopCapture(0);
349 } 342 }
350 343
351 } // namespace content 344 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_manager_unittest.cc ('k') | content/renderer/media/video_capture_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698