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

Unified Diff: chromeos/dbus/dbus_thread_manager.h

Issue 477663004: Merged FakedDBusThreadManager with DBusThreadManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chromeos/dbus/dbus_thread_manager.h
diff --git a/chromeos/dbus/dbus_thread_manager.h b/chromeos/dbus/dbus_thread_manager.h
index 053763c984d0854b2b56150db1755e7d0dac341d..4ecd1623b3805965aa21f31af02a8faf92630aa9 100644
--- a/chromeos/dbus/dbus_thread_manager.h
+++ b/chromeos/dbus/dbus_thread_manager.h
@@ -36,6 +36,8 @@ class CrasAudioClient;
class CrosDisksClient;
class CryptohomeClient;
class DBusClient;
+class DBusThreadManagerImpl;
+class DBusThreadManagerTestHelper;
class DebugDaemonClient;
class EasyUnlockClient;
class GsmSMSClient;
@@ -60,7 +62,6 @@ class ShillServiceClient;
class SMSClient;
class SystemClockClient;
class UpdateEngineClient;
hashimoto 2014/08/18 04:55:58 nit: Please keep a blank line here.
zel 2014/08/18 23:41:52 Done.
-
// DBusThreadManager manages the D-Bus thread, the thread dedicated to
// handling asynchronous D-Bus operations.
//
@@ -86,25 +87,15 @@ class CHROMEOS_EXPORT DBusThreadManager {
// making it a Singleton, to ensure clean startup and shutdown.
static void Initialize();
- // Sets an alternative DBusThreadManager such as MockDBusThreadManager
- // to be used in |Initialize()| for testing. Tests that call
- // DBusThreadManager::Initialize() (such as browser_tests and
- // interactive_ui_tests) should use this instead of calling
- // |InitiailzeForTesting|. The injected object will be owned by the
- // internal pointer and deleted by Shutdown().
- static void SetInstanceForTesting(DBusThreadManager* dbus_thread_manager);
-
- // Similar to Initialize(), but injects an alternative
- // DBusThreadManager using SetInstanceForTest first. The injected
- // object will be owned by the internal pointer and deleted by
- // Shutdown(). Does not create any Fake client implementations.
- static void InitializeForTesting(DBusThreadManager* dbus_thread_manager);
-
// Initialize with stub implementations for tests, creating a complete set
// of fake/stub client implementations. Also initializes a default set of
// fake Shill devices and services, customizable with switches::kShillStub.
static void InitializeWithStub();
+ // Similar to Initialize(), but configures DBusThreadManager to use stub/fake
+ // clients.
+ static scoped_ptr<DBusThreadManagerTestHelper> InitializeForTesting();
hashimoto 2014/08/18 04:55:58 Can't we delete one of InitializeWithStub() or Ini
zel 2014/08/18 23:41:52 InitilizeForTesting() still does one trick for us
hashimoto 2014/08/19 02:31:58 Adding setters should be harmless as long as DBusC
zel 2014/08/19 04:44:39 What harm are you talking about here? What you are
hashimoto 2014/08/19 05:11:59 The effect on the binary size (i.e. compiled&linke
zel 2014/08/22 22:24:18 Yeah, you are right about the runtime size I forgo
hashimoto 2014/08/25 06:56:19 You can make it clear by naming the bundle getter
zel 2014/08/25 17:21:41 I have picked better class/method names now, it's:
+
// Returns true if DBusThreadManager has been initialized. Call this to
// avoid initializing + shutting down DBusThreadManager more than once.
static bool IsInitialized();
@@ -174,14 +165,6 @@ class CHROMEOS_EXPORT DBusThreadManager {
// not included in comma-separated |unstub_clients| list.
static void InitializeWithPartialStub(const std::string& unstub_clients);
- // InitializeClients is called after g_dbus_thread_manager is set.
- // NOTE: Clients that access other clients in their Init() must be
- // initialized in the correct order.
- static void InitializeClients();
-
- // Initializes |client| with the |system_bus_|.
- static void InitClient(DBusClient* client);
-
// Bitmask that defines which dbus clients are not stubbed out. Bitmap flags
// are defined within DBusClientBundle::DBusClientType enum.
static DBusClientBundle::DBusClientTypeMask unstub_client_mask_;
@@ -189,6 +172,60 @@ class CHROMEOS_EXPORT DBusThreadManager {
DISALLOW_COPY_AND_ASSIGN(DBusThreadManager);
};
+class CHROMEOS_EXPORT DBusThreadManagerTestHelper {
+ public:
+ explicit DBusThreadManagerTestHelper(
+ DBusThreadManagerImpl* dbus_thread_manager);
+ ~DBusThreadManagerTestHelper();
+
+ void SetBluetoothAdapterClient(scoped_ptr<BluetoothAdapterClient> client);
+ void SetBluetoothAgentManagerClient(
+ scoped_ptr<BluetoothAgentManagerClient> client);
+ void SetBluetoothDeviceClient(scoped_ptr<BluetoothDeviceClient> client);
+ void SetBluetoothGattCharacteristicClient(
+ scoped_ptr<BluetoothGattCharacteristicClient> client);
+ void SetBluetoothGattDescriptorClient(
+ scoped_ptr<BluetoothGattDescriptorClient> client);
+ void SetBluetoothGattManagerClient(
+ scoped_ptr<BluetoothGattManagerClient> client);
+ void SetBluetoothGattServiceClient(
+ scoped_ptr<BluetoothGattServiceClient> client);
+ void SetBluetoothInputClient(scoped_ptr<BluetoothInputClient> client);
+ void SetBluetoothProfileManagerClient(
+ scoped_ptr<BluetoothProfileManagerClient> client);
+ void SetCrasAudioClient(scoped_ptr<CrasAudioClient> client);
+ void SetCrosDisksClient(scoped_ptr<CrosDisksClient> client);
+ void SetCryptohomeClient(scoped_ptr<CryptohomeClient> client);
+ void SetDebugDaemonClient(scoped_ptr<DebugDaemonClient> client);
+ void SetEasyUnlockClient(scoped_ptr<EasyUnlockClient> client);
+ void SetLorgnetteManagerClient(scoped_ptr<LorgnetteManagerClient> client);
+ void SetShillDeviceClient(scoped_ptr<ShillDeviceClient> client);
+ void SetShillIPConfigClient(scoped_ptr<ShillIPConfigClient> client);
+ void SetShillManagerClient(scoped_ptr<ShillManagerClient> client);
+ void SetShillServiceClient(scoped_ptr<ShillServiceClient> client);
+ void SetShillProfileClient(scoped_ptr<ShillProfileClient> client);
+ void SetGsmSMSClient(scoped_ptr<GsmSMSClient> client);
+ void SetImageBurnerClient(scoped_ptr<ImageBurnerClient> client);
+ void SetIntrospectableClient(scoped_ptr<IntrospectableClient> client);
+ void SetModemMessagingClient(scoped_ptr<ModemMessagingClient> client);
+ void SetNfcAdapterClient(scoped_ptr<NfcAdapterClient> client);
+ void SetNfcDeviceClient(scoped_ptr<NfcDeviceClient> client);
+ void SetNfcManagerClient(scoped_ptr<NfcManagerClient> client);
+ void SetNfcRecordClient(scoped_ptr<NfcRecordClient> client);
+ void SetNfcTagClient(scoped_ptr<NfcTagClient> client);
+ void SetPermissionBrokerClient(scoped_ptr<PermissionBrokerClient> client);
+ void SetPowerManagerClient(scoped_ptr<PowerManagerClient> client);
+ void SetPowerPolicyController(scoped_ptr<PowerPolicyController> client);
+ void SetSessionManagerClient(scoped_ptr<SessionManagerClient> client);
+ void SetSMSClient(scoped_ptr<SMSClient> client);
+ void SetSystemClockClient(scoped_ptr<SystemClockClient> client);
+ void SetUpdateEngineClient(scoped_ptr<UpdateEngineClient> client);
+
+ private:
+ DBusThreadManagerImpl* dbus_thread_manager_;
+ DISALLOW_COPY_AND_ASSIGN(DBusThreadManagerTestHelper);
+};
+
} // namespace chromeos
#endif // CHROMEOS_DBUS_DBUS_THREAD_MANAGER_H_

Powered by Google App Engine
This is Rietveld 408576698