// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/dbus/fake_dbus_thread_manager.h"
#include "base/command_line.h"
#include "chromeos/chromeos_switches.h"
#include "chromeos/dbus/cras_audio_client_stub_impl.h"
#include "chromeos/dbus/cros_disks_client.h"
#include "chromeos/dbus/dbus_client.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/dbus_thread_manager_observer.h"
#include "chromeos/dbus/fake_bluetooth_adapter_client.h"
#include "chromeos/dbus/fake_bluetooth_agent_manager_client.h"
#include "chromeos/dbus/fake_bluetooth_device_client.h"
#include "chromeos/dbus/fake_bluetooth_input_client.h"
#include "chromeos/dbus/fake_bluetooth_profile_manager_client.h"
#include "chromeos/dbus/fake_cryptohome_client.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "chromeos/dbus/fake_gsm_sms_client.h"
#include "chromeos/dbus/fake_image_burner_client.h"
#include "chromeos/dbus/fake_introspectable_client.h"
#include "chromeos/dbus/fake_modem_messaging_client.h"
#include "chromeos/dbus/fake_nfc_adapter_client.h"
#include "chromeos/dbus/fake_nfc_device_client.h"
#include "chromeos/dbus/fake_nfc_manager_client.h"
#include "chromeos/dbus/fake_nfc_record_client.h"
#include "chromeos/dbus/fake_nfc_tag_client.h"
#include "chromeos/dbus/fake_permission_broker_client.h"
#include "chromeos/dbus/fake_shill_device_client.h"
#include "chromeos/dbus/fake_shill_ipconfig_client.h"
#include "chromeos/dbus/fake_shill_manager_client.h"
#include "chromeos/dbus/fake_shill_profile_client.h"
#include "chromeos/dbus/fake_shill_service_client.h"
#include "chromeos/dbus/fake_sms_client.h"
#include "chromeos/dbus/fake_system_clock_client.h"
#include "chromeos/dbus/power_manager_client.h"
#include "chromeos/dbus/power_policy_controller.h"
#include "chromeos/dbus/session_manager_client.h"
#include "chromeos/dbus/update_engine_client.h"
namespace chromeos {
FakeDBusThreadManager::FakeDBusThreadManager() {
}
FakeDBusThreadManager::~FakeDBusThreadManager() {
FOR_EACH_OBSERVER(DBusThreadManagerObserver, observers_,
OnDBusThreadManagerDestroying(this));
}
void FakeDBusThreadManager::SetFakeClients() {
const DBusClientImplementationType client_type =
STUB_DBUS_CLIENT_IMPLEMENTATION;
SetBluetoothAdapterClient(
scoped_ptr<BluetoothAdapterClient>(new FakeBluetoothAdapterClient));
SetBluetoothAgentManagerClient(scoped_ptr<BluetoothAgentManagerClient>(
new FakeBluetoothAgentManagerClient));
SetBluetoothDeviceClient(
scoped_ptr<BluetoothDeviceClient>(new FakeBluetoothDeviceClient));
SetBluetoothInputClient(
scoped_ptr<BluetoothInputClient>(new FakeBluetoothInputClient));
SetBluetoothProfileManagerClient(scoped_ptr<BluetoothProfileManagerClient>(
new FakeBluetoothProfileManagerClient));
SetCrosDisksClient(
scoped_ptr<CrosDisksClient>(CrosDisksClient::Create(client_type)));
SetCrasAudioClient(scoped_ptr<CrasAudioClient>(new CrasAudioClientStubImpl));
SetCryptohomeClient(scoped_ptr<CryptohomeClient>(new FakeCryptohomeClient));
SetDebugDaemonClient(
scoped_ptr<DebugDaemonClient>(new FakeDebugDaemonClient));
SetShillManagerClient(
scoped_ptr<ShillManagerClient>(new FakeShillManagerClient));
SetShillDeviceClient(
scoped_ptr<ShillDeviceClient>(new FakeShillDeviceClient));
SetShillIPConfigClient(
scoped_ptr<ShillIPConfigClient>(new FakeShillIPConfigClient));
SetShillServiceClient(
scoped_ptr<ShillServiceClient>(new FakeShillServiceClient));
SetShillProfileClient(
scoped_ptr<ShillProfileClient>(new FakeShillProfileClient));
FakeGsmSMSClient* gsm_sms_client = new FakeGsmSMSClient();
gsm_sms_client->set_sms_test_message_switch_present(
CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kSmsTestMessages));
SetGsmSMSClient(scoped_ptr<GsmSMSClient>(gsm_sms_client));
SetImageBurnerClient(
scoped_ptr<ImageBurnerClient>(new FakeImageBurnerClient));
SetIntrospectableClient(
scoped_ptr<IntrospectableClient>(new FakeIntrospectableClient));
SetModemMessagingClient(
scoped_ptr<ModemMessagingClient>(new FakeModemMessagingClient));
SetNfcAdapterClient(scoped_ptr<NfcAdapterClient>(new FakeNfcAdapterClient));
SetNfcDeviceClient(scoped_ptr<NfcDeviceClient>(new FakeNfcDeviceClient));
SetNfcManagerClient(scoped_ptr<NfcManagerClient>(new FakeNfcManagerClient));
SetNfcRecordClient(scoped_ptr<NfcRecordClient>(new FakeNfcRecordClient));
SetNfcTagClient(scoped_ptr<NfcTagClient>(new FakeNfcTagClient));
SetPermissionBrokerClient(
scoped_ptr<PermissionBrokerClient>(new FakePermissionBrokerClient));
SetPowerManagerClient(
scoped_ptr<PowerManagerClient>(PowerManagerClient::Create(client_type)));
SetSessionManagerClient(scoped_ptr<SessionManagerClient>(
SessionManagerClient::Create(client_type)));
SetSMSClient(scoped_ptr<SMSClient>(new FakeSMSClient));
SetSystemClockClient(
scoped_ptr<SystemClockClient>(new FakeSystemClockClient));
SetUpdateEngineClient(
scoped_ptr<UpdateEngineClient>(UpdateEngineClient::Create(client_type)));
SetPowerPolicyController(make_scoped_ptr(new PowerPolicyController));
}
void FakeDBusThreadManager::SetBluetoothAdapterClient(
scoped_ptr<BluetoothAdapterClient> client) {
bluetooth_adapter_client_ = client.Pass();
}
void FakeDBusThreadManager::SetBluetoothAgentManagerClient(
scoped_ptr<BluetoothAgentManagerClient> client) {
bluetooth_agent_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetBluetoothDeviceClient(
scoped_ptr<BluetoothDeviceClient> client) {
bluetooth_device_client_ = client.Pass();
}
void FakeDBusThreadManager::SetBluetoothInputClient(
scoped_ptr<BluetoothInputClient> client) {
bluetooth_input_client_ = client.Pass();
}
void FakeDBusThreadManager::SetBluetoothProfileManagerClient(
scoped_ptr<BluetoothProfileManagerClient> client) {
bluetooth_profile_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetCrasAudioClient(
scoped_ptr<CrasAudioClient> client) {
cras_audio_client_ = client.Pass();
}
void FakeDBusThreadManager::SetCrosDisksClient(
scoped_ptr<CrosDisksClient> client) {
cros_disks_client_ = client.Pass();
}
void FakeDBusThreadManager::SetCryptohomeClient(
scoped_ptr<CryptohomeClient> client) {
cryptohome_client_ = client.Pass();
}
void FakeDBusThreadManager::SetDebugDaemonClient(
scoped_ptr<DebugDaemonClient> client) {
debug_daemon_client_ = client.Pass();
}
void FakeDBusThreadManager::SetShillDeviceClient(
scoped_ptr<ShillDeviceClient> client) {
shill_device_client_ = client.Pass();
}
void FakeDBusThreadManager::SetShillIPConfigClient(
scoped_ptr<ShillIPConfigClient> client) {
shill_ipconfig_client_ = client.Pass();
}
void FakeDBusThreadManager::SetShillManagerClient(
scoped_ptr<ShillManagerClient> client) {
shill_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetShillServiceClient(
scoped_ptr<ShillServiceClient> client) {
shill_service_client_ = client.Pass();
}
void FakeDBusThreadManager::SetShillProfileClient(
scoped_ptr<ShillProfileClient> client) {
shill_profile_client_ = client.Pass();
}
void FakeDBusThreadManager::SetGsmSMSClient(
scoped_ptr<GsmSMSClient> client) {
gsm_sms_client_ = client.Pass();
}
void FakeDBusThreadManager::SetImageBurnerClient(
scoped_ptr<ImageBurnerClient> client) {
image_burner_client_ = client.Pass();
}
void FakeDBusThreadManager::SetIntrospectableClient(
scoped_ptr<IntrospectableClient> client) {
introspectable_client_ = client.Pass();
}
void FakeDBusThreadManager::SetModemMessagingClient(
scoped_ptr<ModemMessagingClient> client) {
modem_messaging_client_ = client.Pass();
}
void FakeDBusThreadManager::SetNfcAdapterClient(
scoped_ptr<NfcAdapterClient> client) {
nfc_adapter_client_ = client.Pass();
}
void FakeDBusThreadManager::SetNfcDeviceClient(
scoped_ptr<NfcDeviceClient> client) {
nfc_device_client_ = client.Pass();
}
void FakeDBusThreadManager::SetNfcManagerClient(
scoped_ptr<NfcManagerClient> client) {
nfc_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetNfcRecordClient(
scoped_ptr<NfcRecordClient> client) {
nfc_record_client_ = client.Pass();
}
void FakeDBusThreadManager::SetNfcTagClient(
scoped_ptr<NfcTagClient> client) {
nfc_tag_client_ = client.Pass();
}
void FakeDBusThreadManager::SetPermissionBrokerClient(
scoped_ptr<PermissionBrokerClient> client) {
permission_broker_client_ = client.Pass();
}
void FakeDBusThreadManager::SetPowerManagerClient(
scoped_ptr<PowerManagerClient> client) {
power_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetPowerPolicyController(
scoped_ptr<PowerPolicyController> client) {
power_policy_controller_ = client.Pass();
}
void FakeDBusThreadManager::SetSessionManagerClient(
scoped_ptr<SessionManagerClient> client) {
session_manager_client_ = client.Pass();
}
void FakeDBusThreadManager::SetSMSClient(scoped_ptr<SMSClient> client) {
sms_client_ = client.Pass();
}
void FakeDBusThreadManager::SetSystemClockClient(
scoped_ptr<SystemClockClient> client) {
system_clock_client_ = client.Pass();
}
void FakeDBusThreadManager::SetUpdateEngineClient(
scoped_ptr<UpdateEngineClient> client) {
update_engine_client_ = client.Pass();
}
void FakeDBusThreadManager::AddObserver(
DBusThreadManagerObserver* observer) {
DCHECK(observer);
observers_.AddObserver(observer);
}
void FakeDBusThreadManager::RemoveObserver(
DBusThreadManagerObserver* observer) {
DCHECK(observer);
observers_.RemoveObserver(observer);
}
dbus::Bus* FakeDBusThreadManager::GetSystemBus() {
return NULL;
}
BluetoothAdapterClient*
FakeDBusThreadManager::GetBluetoothAdapterClient() {
return bluetooth_adapter_client_.get();
}
BluetoothAgentManagerClient*
FakeDBusThreadManager::GetBluetoothAgentManagerClient() {
return bluetooth_agent_manager_client_.get();
}
BluetoothDeviceClient*
FakeDBusThreadManager::GetBluetoothDeviceClient() {
return bluetooth_device_client_.get();
}
BluetoothInputClient*
FakeDBusThreadManager::GetBluetoothInputClient() {
return bluetooth_input_client_.get();
}
BluetoothProfileManagerClient*
FakeDBusThreadManager::GetBluetoothProfileManagerClient() {
return bluetooth_profile_manager_client_.get();
}
CrasAudioClient* FakeDBusThreadManager::GetCrasAudioClient() {
return cras_audio_client_.get();
}
CrosDisksClient* FakeDBusThreadManager::GetCrosDisksClient() {
return cros_disks_client_.get();
}
CryptohomeClient* FakeDBusThreadManager::GetCryptohomeClient() {
return cryptohome_client_.get();
}
DebugDaemonClient* FakeDBusThreadManager::GetDebugDaemonClient() {
return debug_daemon_client_.get();
}
ShillDeviceClient*
FakeDBusThreadManager::GetShillDeviceClient() {
return shill_device_client_.get();
}
ShillIPConfigClient*
FakeDBusThreadManager::GetShillIPConfigClient() {
return shill_ipconfig_client_.get();
}
ShillManagerClient*
FakeDBusThreadManager::GetShillManagerClient() {
return shill_manager_client_.get();
}
ShillProfileClient*
FakeDBusThreadManager::GetShillProfileClient() {
return shill_profile_client_.get();
}
ShillServiceClient*
FakeDBusThreadManager::GetShillServiceClient() {
return shill_service_client_.get();
}
GsmSMSClient* FakeDBusThreadManager::GetGsmSMSClient() {
return gsm_sms_client_.get();
}
ImageBurnerClient* FakeDBusThreadManager::GetImageBurnerClient() {
return image_burner_client_.get();
}
IntrospectableClient*
FakeDBusThreadManager::GetIntrospectableClient() {
return introspectable_client_.get();
}
ModemMessagingClient*
FakeDBusThreadManager::GetModemMessagingClient() {
return modem_messaging_client_.get();
}
NfcAdapterClient* FakeDBusThreadManager::GetNfcAdapterClient() {
return nfc_adapter_client_.get();
}
NfcDeviceClient* FakeDBusThreadManager::GetNfcDeviceClient() {
return nfc_device_client_.get();
}
NfcManagerClient* FakeDBusThreadManager::GetNfcManagerClient() {
return nfc_manager_client_.get();
}
NfcTagClient* FakeDBusThreadManager::GetNfcTagClient() {
return nfc_tag_client_.get();
}
NfcRecordClient* FakeDBusThreadManager::GetNfcRecordClient() {
return nfc_record_client_.get();
}
PermissionBrokerClient*
FakeDBusThreadManager::GetPermissionBrokerClient() {
return permission_broker_client_.get();
}
PowerManagerClient* FakeDBusThreadManager::GetPowerManagerClient() {
return power_manager_client_.get();
}
PowerPolicyController*
FakeDBusThreadManager::GetPowerPolicyController() {
return power_policy_controller_.get();
}
SessionManagerClient*
FakeDBusThreadManager::GetSessionManagerClient() {
return session_manager_client_.get();
}
SMSClient* FakeDBusThreadManager::GetSMSClient() {
return sms_client_.get();
}
SystemClockClient* FakeDBusThreadManager::GetSystemClockClient() {
return system_clock_client_.get();
}
UpdateEngineClient* FakeDBusThreadManager::GetUpdateEngineClient() {
return update_engine_client_.get();
}
} // namespace chromeos