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
3 // found in the LICENSE file.
5 #include "chromeos/dbus/fake_dbus_thread_manager.h"
7 #include "base/command_line.h"
8 #include "chromeos/chromeos_switches.h"
9 #include "chromeos/dbus/cras_audio_client_stub_impl.h"
10 #include "chromeos/dbus/cros_disks_client.h"
11 #include "chromeos/dbus/dbus_client.h"
12 #include "chromeos/dbus/dbus_thread_manager.h"
13 #include "chromeos/dbus/dbus_thread_manager_observer.h"
14 #include "chromeos/dbus/fake_bluetooth_adapter_client.h"
15 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h"
16 #include "chromeos/dbus/fake_bluetooth_device_client.h"
17 #include "chromeos/dbus/fake_bluetooth_input_client.h"
18 #include "chromeos/dbus/fake_bluetooth_profile_manager_client.h"
19 #include "chromeos/dbus/fake_cryptohome_client.h"
20 #include "chromeos/dbus/fake_debug_daemon_client.h"
21 #include "chromeos/dbus/fake_gsm_sms_client.h"
22 #include "chromeos/dbus/fake_image_burner_client.h"
23 #include "chromeos/dbus/fake_introspectable_client.h"
24 #include "chromeos/dbus/fake_modem_messaging_client.h"
25 #include "chromeos/dbus/fake_nfc_adapter_client.h"
26 #include "chromeos/dbus/fake_nfc_device_client.h"
27 #include "chromeos/dbus/fake_nfc_manager_client.h"
28 #include "chromeos/dbus/fake_nfc_record_client.h"
29 #include "chromeos/dbus/fake_nfc_tag_client.h"
30 #include "chromeos/dbus/fake_permission_broker_client.h"
31 #include "chromeos/dbus/fake_shill_device_client.h"
32 #include "chromeos/dbus/fake_shill_ipconfig_client.h"
33 #include "chromeos/dbus/fake_shill_manager_client.h"
34 #include "chromeos/dbus/fake_shill_profile_client.h"
35 #include "chromeos/dbus/fake_shill_service_client.h"
36 #include "chromeos/dbus/fake_sms_client.h"
37 #include "chromeos/dbus/fake_system_clock_client.h"
38 #include "chromeos/dbus/power_manager_client.h"
39 #include "chromeos/dbus/power_policy_controller.h"
40 #include "chromeos/dbus/session_manager_client.h"
41 #include "chromeos/dbus/update_engine_client.h"
45 FakeDBusThreadManager::FakeDBusThreadManager() {
48 FakeDBusThreadManager::~FakeDBusThreadManager() {
49 FOR_EACH_OBSERVER(DBusThreadManagerObserver
, observers_
,
50 OnDBusThreadManagerDestroying(this));
53 void FakeDBusThreadManager::SetFakeClients() {
54 const DBusClientImplementationType client_type
=
55 STUB_DBUS_CLIENT_IMPLEMENTATION
;
56 SetBluetoothAdapterClient(
57 scoped_ptr
<BluetoothAdapterClient
>(new FakeBluetoothAdapterClient
));
58 SetBluetoothAgentManagerClient(scoped_ptr
<BluetoothAgentManagerClient
>(
59 new FakeBluetoothAgentManagerClient
));
60 SetBluetoothDeviceClient(
61 scoped_ptr
<BluetoothDeviceClient
>(new FakeBluetoothDeviceClient
));
62 SetBluetoothInputClient(
63 scoped_ptr
<BluetoothInputClient
>(new FakeBluetoothInputClient
));
64 SetBluetoothProfileManagerClient(scoped_ptr
<BluetoothProfileManagerClient
>(
65 new FakeBluetoothProfileManagerClient
));
67 scoped_ptr
<CrosDisksClient
>(CrosDisksClient::Create(client_type
)));
68 SetCrasAudioClient(scoped_ptr
<CrasAudioClient
>(new CrasAudioClientStubImpl
));
69 SetCryptohomeClient(scoped_ptr
<CryptohomeClient
>(new FakeCryptohomeClient
));
71 scoped_ptr
<DebugDaemonClient
>(new FakeDebugDaemonClient
));
73 SetFakeShillClients();
75 FakeGsmSMSClient
* gsm_sms_client
= new FakeGsmSMSClient();
76 gsm_sms_client
->set_sms_test_message_switch_present(
77 CommandLine::ForCurrentProcess()->HasSwitch(
78 chromeos::switches::kSmsTestMessages
));
79 SetGsmSMSClient(scoped_ptr
<GsmSMSClient
>(gsm_sms_client
));
82 scoped_ptr
<ImageBurnerClient
>(new FakeImageBurnerClient
));
83 SetIntrospectableClient(
84 scoped_ptr
<IntrospectableClient
>(new FakeIntrospectableClient
));
85 SetModemMessagingClient(
86 scoped_ptr
<ModemMessagingClient
>(new FakeModemMessagingClient
));
87 SetNfcAdapterClient(scoped_ptr
<NfcAdapterClient
>(new FakeNfcAdapterClient
));
88 SetNfcDeviceClient(scoped_ptr
<NfcDeviceClient
>(new FakeNfcDeviceClient
));
89 SetNfcManagerClient(scoped_ptr
<NfcManagerClient
>(new FakeNfcManagerClient
));
90 SetNfcRecordClient(scoped_ptr
<NfcRecordClient
>(new FakeNfcRecordClient
));
91 SetNfcTagClient(scoped_ptr
<NfcTagClient
>(new FakeNfcTagClient
));
92 SetPermissionBrokerClient(
93 scoped_ptr
<PermissionBrokerClient
>(new FakePermissionBrokerClient
));
94 SetPowerManagerClient(
95 scoped_ptr
<PowerManagerClient
>(PowerManagerClient::Create(client_type
)));
96 SetSessionManagerClient(scoped_ptr
<SessionManagerClient
>(
97 SessionManagerClient::Create(client_type
)));
98 SetSMSClient(scoped_ptr
<SMSClient
>(new FakeSMSClient
));
100 scoped_ptr
<SystemClockClient
>(new FakeSystemClockClient
));
101 SetUpdateEngineClient(
102 scoped_ptr
<UpdateEngineClient
>(UpdateEngineClient::Create(client_type
)));
104 SetPowerPolicyController(make_scoped_ptr(new PowerPolicyController
));
107 void FakeDBusThreadManager::SetFakeShillClients() {
108 SetShillManagerClient(
109 scoped_ptr
<ShillManagerClient
>(new FakeShillManagerClient
));
110 SetShillDeviceClient(
111 scoped_ptr
<ShillDeviceClient
>(new FakeShillDeviceClient
));
112 SetShillIPConfigClient(
113 scoped_ptr
<ShillIPConfigClient
>(new FakeShillIPConfigClient
));
114 SetShillServiceClient(
115 scoped_ptr
<ShillServiceClient
>(new FakeShillServiceClient
));
116 SetShillProfileClient(
117 scoped_ptr
<ShillProfileClient
>(new FakeShillProfileClient
));
120 void FakeDBusThreadManager::SetBluetoothAdapterClient(
121 scoped_ptr
<BluetoothAdapterClient
> client
) {
122 bluetooth_adapter_client_
= client
.Pass();
125 void FakeDBusThreadManager::SetBluetoothAgentManagerClient(
126 scoped_ptr
<BluetoothAgentManagerClient
> client
) {
127 bluetooth_agent_manager_client_
= client
.Pass();
130 void FakeDBusThreadManager::SetBluetoothDeviceClient(
131 scoped_ptr
<BluetoothDeviceClient
> client
) {
132 bluetooth_device_client_
= client
.Pass();
135 void FakeDBusThreadManager::SetBluetoothInputClient(
136 scoped_ptr
<BluetoothInputClient
> client
) {
137 bluetooth_input_client_
= client
.Pass();
140 void FakeDBusThreadManager::SetBluetoothProfileManagerClient(
141 scoped_ptr
<BluetoothProfileManagerClient
> client
) {
142 bluetooth_profile_manager_client_
= client
.Pass();
145 void FakeDBusThreadManager::SetCrasAudioClient(
146 scoped_ptr
<CrasAudioClient
> client
) {
147 cras_audio_client_
= client
.Pass();
150 void FakeDBusThreadManager::SetCrosDisksClient(
151 scoped_ptr
<CrosDisksClient
> client
) {
152 cros_disks_client_
= client
.Pass();
155 void FakeDBusThreadManager::SetCryptohomeClient(
156 scoped_ptr
<CryptohomeClient
> client
) {
157 cryptohome_client_
= client
.Pass();
160 void FakeDBusThreadManager::SetDebugDaemonClient(
161 scoped_ptr
<DebugDaemonClient
> client
) {
162 debug_daemon_client_
= client
.Pass();
165 void FakeDBusThreadManager::SetShillDeviceClient(
166 scoped_ptr
<ShillDeviceClient
> client
) {
167 shill_device_client_
= client
.Pass();
170 void FakeDBusThreadManager::SetShillIPConfigClient(
171 scoped_ptr
<ShillIPConfigClient
> client
) {
172 shill_ipconfig_client_
= client
.Pass();
175 void FakeDBusThreadManager::SetShillManagerClient(
176 scoped_ptr
<ShillManagerClient
> client
) {
177 shill_manager_client_
= client
.Pass();
180 void FakeDBusThreadManager::SetShillServiceClient(
181 scoped_ptr
<ShillServiceClient
> client
) {
182 shill_service_client_
= client
.Pass();
185 void FakeDBusThreadManager::SetShillProfileClient(
186 scoped_ptr
<ShillProfileClient
> client
) {
187 shill_profile_client_
= client
.Pass();
190 void FakeDBusThreadManager::SetGsmSMSClient(
191 scoped_ptr
<GsmSMSClient
> client
) {
192 gsm_sms_client_
= client
.Pass();
195 void FakeDBusThreadManager::SetImageBurnerClient(
196 scoped_ptr
<ImageBurnerClient
> client
) {
197 image_burner_client_
= client
.Pass();
200 void FakeDBusThreadManager::SetIntrospectableClient(
201 scoped_ptr
<IntrospectableClient
> client
) {
202 introspectable_client_
= client
.Pass();
205 void FakeDBusThreadManager::SetModemMessagingClient(
206 scoped_ptr
<ModemMessagingClient
> client
) {
207 modem_messaging_client_
= client
.Pass();
210 void FakeDBusThreadManager::SetNfcAdapterClient(
211 scoped_ptr
<NfcAdapterClient
> client
) {
212 nfc_adapter_client_
= client
.Pass();
215 void FakeDBusThreadManager::SetNfcDeviceClient(
216 scoped_ptr
<NfcDeviceClient
> client
) {
217 nfc_device_client_
= client
.Pass();
220 void FakeDBusThreadManager::SetNfcManagerClient(
221 scoped_ptr
<NfcManagerClient
> client
) {
222 nfc_manager_client_
= client
.Pass();
225 void FakeDBusThreadManager::SetNfcRecordClient(
226 scoped_ptr
<NfcRecordClient
> client
) {
227 nfc_record_client_
= client
.Pass();
230 void FakeDBusThreadManager::SetNfcTagClient(
231 scoped_ptr
<NfcTagClient
> client
) {
232 nfc_tag_client_
= client
.Pass();
235 void FakeDBusThreadManager::SetPermissionBrokerClient(
236 scoped_ptr
<PermissionBrokerClient
> client
) {
237 permission_broker_client_
= client
.Pass();
240 void FakeDBusThreadManager::SetPowerManagerClient(
241 scoped_ptr
<PowerManagerClient
> client
) {
242 power_manager_client_
= client
.Pass();
245 void FakeDBusThreadManager::SetPowerPolicyController(
246 scoped_ptr
<PowerPolicyController
> client
) {
247 power_policy_controller_
= client
.Pass();
250 void FakeDBusThreadManager::SetSessionManagerClient(
251 scoped_ptr
<SessionManagerClient
> client
) {
252 session_manager_client_
= client
.Pass();
255 void FakeDBusThreadManager::SetSMSClient(scoped_ptr
<SMSClient
> client
) {
256 sms_client_
= client
.Pass();
259 void FakeDBusThreadManager::SetSystemClockClient(
260 scoped_ptr
<SystemClockClient
> client
) {
261 system_clock_client_
= client
.Pass();
264 void FakeDBusThreadManager::SetUpdateEngineClient(
265 scoped_ptr
<UpdateEngineClient
> client
) {
266 update_engine_client_
= client
.Pass();
269 void FakeDBusThreadManager::AddObserver(
270 DBusThreadManagerObserver
* observer
) {
272 observers_
.AddObserver(observer
);
275 void FakeDBusThreadManager::RemoveObserver(
276 DBusThreadManagerObserver
* observer
) {
278 observers_
.RemoveObserver(observer
);
281 dbus::Bus
* FakeDBusThreadManager::GetSystemBus() {
285 BluetoothAdapterClient
*
286 FakeDBusThreadManager::GetBluetoothAdapterClient() {
287 return bluetooth_adapter_client_
.get();
290 BluetoothAgentManagerClient
*
291 FakeDBusThreadManager::GetBluetoothAgentManagerClient() {
292 return bluetooth_agent_manager_client_
.get();
295 BluetoothDeviceClient
*
296 FakeDBusThreadManager::GetBluetoothDeviceClient() {
297 return bluetooth_device_client_
.get();
300 BluetoothInputClient
*
301 FakeDBusThreadManager::GetBluetoothInputClient() {
302 return bluetooth_input_client_
.get();
305 BluetoothProfileManagerClient
*
306 FakeDBusThreadManager::GetBluetoothProfileManagerClient() {
307 return bluetooth_profile_manager_client_
.get();
310 CrasAudioClient
* FakeDBusThreadManager::GetCrasAudioClient() {
311 return cras_audio_client_
.get();
314 CrosDisksClient
* FakeDBusThreadManager::GetCrosDisksClient() {
315 return cros_disks_client_
.get();
318 CryptohomeClient
* FakeDBusThreadManager::GetCryptohomeClient() {
319 return cryptohome_client_
.get();
322 DebugDaemonClient
* FakeDBusThreadManager::GetDebugDaemonClient() {
323 return debug_daemon_client_
.get();
327 FakeDBusThreadManager::GetShillDeviceClient() {
328 return shill_device_client_
.get();
332 FakeDBusThreadManager::GetShillIPConfigClient() {
333 return shill_ipconfig_client_
.get();
337 FakeDBusThreadManager::GetShillManagerClient() {
338 return shill_manager_client_
.get();
342 FakeDBusThreadManager::GetShillProfileClient() {
343 return shill_profile_client_
.get();
347 FakeDBusThreadManager::GetShillServiceClient() {
348 return shill_service_client_
.get();
351 GsmSMSClient
* FakeDBusThreadManager::GetGsmSMSClient() {
352 return gsm_sms_client_
.get();
355 ImageBurnerClient
* FakeDBusThreadManager::GetImageBurnerClient() {
356 return image_burner_client_
.get();
359 IntrospectableClient
*
360 FakeDBusThreadManager::GetIntrospectableClient() {
361 return introspectable_client_
.get();
364 ModemMessagingClient
*
365 FakeDBusThreadManager::GetModemMessagingClient() {
366 return modem_messaging_client_
.get();
369 NfcAdapterClient
* FakeDBusThreadManager::GetNfcAdapterClient() {
370 return nfc_adapter_client_
.get();
373 NfcDeviceClient
* FakeDBusThreadManager::GetNfcDeviceClient() {
374 return nfc_device_client_
.get();
377 NfcManagerClient
* FakeDBusThreadManager::GetNfcManagerClient() {
378 return nfc_manager_client_
.get();
381 NfcTagClient
* FakeDBusThreadManager::GetNfcTagClient() {
382 return nfc_tag_client_
.get();
385 NfcRecordClient
* FakeDBusThreadManager::GetNfcRecordClient() {
386 return nfc_record_client_
.get();
389 PermissionBrokerClient
*
390 FakeDBusThreadManager::GetPermissionBrokerClient() {
391 return permission_broker_client_
.get();
394 PowerManagerClient
* FakeDBusThreadManager::GetPowerManagerClient() {
395 return power_manager_client_
.get();
398 PowerPolicyController
*
399 FakeDBusThreadManager::GetPowerPolicyController() {
400 return power_policy_controller_
.get();
403 SessionManagerClient
*
404 FakeDBusThreadManager::GetSessionManagerClient() {
405 return session_manager_client_
.get();
408 SMSClient
* FakeDBusThreadManager::GetSMSClient() {
409 return sms_client_
.get();
412 SystemClockClient
* FakeDBusThreadManager::GetSystemClockClient() {
413 return system_clock_client_
.get();
416 UpdateEngineClient
* FakeDBusThreadManager::GetUpdateEngineClient() {
417 return update_engine_client_
.get();
420 } // namespace chromeos