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

Side by Side Diff: services/video_capture/test/fake_device_unittest.cc

Issue 2824883005: [Mojo Video Capture] Stop service when last client disconnects. (Closed)
Patch Set: Incorporate suggestions from PatchSet #4 Created 3 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "media/base/video_frame.h" 7 #include "media/base/video_frame.h"
8 #include "media/mojo/common/media_type_converters.h" 8 #include "media/mojo/common/media_type_converters.h"
9 #include "services/video_capture/device_media_to_mojo_adapter.h" 9 #include "services/video_capture/device_media_to_mojo_adapter.h"
10 #include "services/video_capture/public/interfaces/constants.mojom.h"
10 #include "services/video_capture/public/interfaces/device_factory.mojom.h" 11 #include "services/video_capture/public/interfaces/device_factory.mojom.h"
11 #include "services/video_capture/test/fake_device_test.h" 12 #include "services/video_capture/test/fake_device_test.h"
12 #include "services/video_capture/test/mock_receiver.h" 13 #include "services/video_capture/test/mock_receiver.h"
13 14
14 using testing::_; 15 using testing::_;
15 using testing::AtLeast; 16 using testing::AtLeast;
16 using testing::Invoke; 17 using testing::Invoke;
17 using testing::InvokeWithoutArgs; 18 using testing::InvokeWithoutArgs;
18 19
19 namespace { 20 namespace {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 } 132 }
132 })); 133 }));
133 134
134 fake_device_proxy_->Start(requestable_settings_, std::move(receiver_proxy)); 135 fake_device_proxy_->Start(requestable_settings_, std::move(receiver_proxy));
135 wait_loop.Run(); 136 wait_loop.Run();
136 137
137 ASSERT_LT(num_buffers_created, num_frames_arrived); 138 ASSERT_LT(num_buffers_created, num_frames_arrived);
138 ASSERT_LE(num_buffers_created, kMaxBufferPoolBuffers); 139 ASSERT_LE(num_buffers_created, kMaxBufferPoolBuffers);
139 } 140 }
140 141
142 // Tests that the service requests to be closed when the last client disconnects
143 // while using a device.
144 TEST_F(FakeVideoCaptureDeviceTest,
145 ServiceQuitsWhenClientDisconnectsWhileUsingDevice) {
146 base::RunLoop wait_loop;
147 EXPECT_CALL(*service_state_observer_, OnServiceStopped(_))
148 .WillOnce(Invoke([&wait_loop](const service_manager::Identity& identity) {
149 if (identity.name() == mojom::kServiceName)
150 wait_loop.Quit();
151 }));
152
153 mojom::ReceiverPtr receiver_proxy;
154 MockReceiver receiver(mojo::MakeRequest(&receiver_proxy));
155 fake_device_proxy_->Start(requestable_settings_, std::move(receiver_proxy));
156
157 fake_device_proxy_.reset();
158 factory_.reset();
159 factory_provider_.reset();
160
161 wait_loop.Run();
162 }
163
141 } // namespace video_capture 164 } // namespace video_capture
OLDNEW
« no previous file with comments | « services/video_capture/test/fake_device_descriptor_test.cc ('k') | services/video_capture/test/mock_device_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698