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

Side by Side Diff: services/service_manager/tests/lifecycle/lifecycle_unittest.cc

Issue 2617883002: Add a new BindInterface() method to Connector. (Closed)
Patch Set: . Created 3 years, 11 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 <memory> 5 #include <memory>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 void InitPackage() { 152 void InitPackage() {
153 test::mojom::LifecycleControlPtr lifecycle = ConnectTo(kTestPackageName); 153 test::mojom::LifecycleControlPtr lifecycle = ConnectTo(kTestPackageName);
154 base::RunLoop loop; 154 base::RunLoop loop;
155 lifecycle.set_connection_error_handler(base::Bind(&QuitLoop, &loop)); 155 lifecycle.set_connection_error_handler(base::Bind(&QuitLoop, &loop));
156 lifecycle->GracefulQuit(); 156 lifecycle->GracefulQuit();
157 loop.Run(); 157 loop.Run();
158 } 158 }
159 159
160 test::mojom::LifecycleControlPtr ConnectTo(const std::string& name) { 160 test::mojom::LifecycleControlPtr ConnectTo(const std::string& name) {
161 test::mojom::LifecycleControlPtr lifecycle; 161 test::mojom::LifecycleControlPtr lifecycle;
162 connector()->ConnectToInterface(name, &lifecycle); 162 connector()->BindInterface(name, &lifecycle);
163 PingPong(lifecycle.get()); 163 PingPong(lifecycle.get());
164 return lifecycle; 164 return lifecycle;
165 } 165 }
166 166
167 base::Process LaunchProcess() { 167 base::Process LaunchProcess() {
168 base::Process process; 168 base::Process process;
169 test::LaunchAndConnectToProcess( 169 test::LaunchAndConnectToProcess(
170 #if defined(OS_WIN) 170 #if defined(OS_WIN)
171 "lifecycle_unittest_exe.exe", 171 "lifecycle_unittest_exe.exe",
172 #else 172 #else
(...skipping 15 matching lines...) Expand all
188 188
189 void WaitForInstanceDestruction() { 189 void WaitForInstanceDestruction() {
190 base::RunLoop loop; 190 base::RunLoop loop;
191 instances()->WaitForInstanceDestruction(&loop); 191 instances()->WaitForInstanceDestruction(&loop);
192 loop.Run(); 192 loop.Run();
193 } 193 }
194 194
195 private: 195 private:
196 std::unique_ptr<InstanceState> TrackInstances() { 196 std::unique_ptr<InstanceState> TrackInstances() {
197 mojom::ServiceManagerPtr service_manager; 197 mojom::ServiceManagerPtr service_manager;
198 connector()->ConnectToInterface(service_manager::mojom::kServiceName, 198 connector()->BindInterface(service_manager::mojom::kServiceName,
199 &service_manager); 199 &service_manager);
200 mojom::ServiceManagerListenerPtr listener; 200 mojom::ServiceManagerListenerPtr listener;
201 base::RunLoop loop; 201 base::RunLoop loop;
202 InstanceState* state = new InstanceState(MakeRequest(&listener), &loop); 202 InstanceState* state = new InstanceState(MakeRequest(&listener), &loop);
203 service_manager->AddListener(std::move(listener)); 203 service_manager->AddListener(std::move(listener));
204 loop.Run(); 204 loop.Run();
205 return base::WrapUnique(state); 205 return base::WrapUnique(state);
206 } 206 }
207 207
208 std::unique_ptr<InstanceState> instances_; 208 std::unique_ptr<InstanceState> instances_;
209 209
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 lifecycle.set_connection_error_handler(base::Bind(&QuitLoop, &loop)); 419 lifecycle.set_connection_error_handler(base::Bind(&QuitLoop, &loop));
420 process.Terminate(9, true); 420 process.Terminate(9, true);
421 loop.Run(); 421 loop.Run();
422 422
423 WaitForInstanceDestruction(); 423 WaitForInstanceDestruction();
424 EXPECT_FALSE(instances()->HasInstanceForName(kTestExeName)); 424 EXPECT_FALSE(instances()->HasInstanceForName(kTestExeName));
425 EXPECT_EQ(0u, instances()->GetNewInstanceCount()); 425 EXPECT_EQ(0u, instances()->GetNewInstanceCount());
426 } 426 }
427 427
428 } // namespace service_manager 428 } // namespace service_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698