Index: components/arc/arc_service_manager.cc |
diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc |
index 9563358882366ef55ed533b5c0829aa875478ff8..6907813a146b5efc06b2a2315c380d77e376583c 100644 |
--- a/components/arc/arc_service_manager.cc |
+++ b/components/arc/arc_service_manager.cc |
@@ -22,14 +22,23 @@ namespace { |
// Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos. |
ArcServiceManager* g_arc_service_manager = nullptr; |
+// This pointer is owned by ArcServiceManager. |
+ArcBridgeService* g_arc_bridge_service_for_testing = nullptr; |
hidehiko
2016/03/16 16:45:35
Could you avoid the global var here?
Would it be p
Polina Bondarenko
2016/03/17 13:40:28
Fixed:
1) Create ArcServiceManager(fake arc_bridge
|
+ |
} // namespace |
-ArcServiceManager::ArcServiceManager() |
- : arc_bridge_service_( |
- new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())) { |
+ArcServiceManager::ArcServiceManager() { |
DCHECK(!g_arc_service_manager); |
g_arc_service_manager = this; |
+ if (g_arc_bridge_service_for_testing) { |
+ arc_bridge_service_.reset(g_arc_bridge_service_for_testing); |
+ g_arc_bridge_service_for_testing = nullptr; |
+ } else { |
+ arc_bridge_service_.reset(new ArcBridgeServiceImpl( |
+ ArcBridgeBootstrap::Create())); |
+ } |
+ |
AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service()))); |
AddService(make_scoped_ptr(new ArcImeBridge(arc_bridge_service()))); |
AddService(make_scoped_ptr(new ArcInputBridge(arc_bridge_service()))); |
@@ -41,6 +50,9 @@ ArcServiceManager::~ArcServiceManager() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(g_arc_service_manager == this); |
g_arc_service_manager = nullptr; |
+ if (g_arc_bridge_service_for_testing) { |
+ delete g_arc_bridge_service_for_testing; |
+ } |
} |
// static |
@@ -69,4 +81,13 @@ void ArcServiceManager::OnPrimaryUserProfilePrepared( |
new ArcNotificationManager(arc_bridge_service(), account_id))); |
} |
+//static |
+void ArcServiceManager::SetArcBridgeServiceForTesting( |
+ scoped_ptr<ArcBridgeService> arc_bridge_service) { |
+ if (g_arc_bridge_service_for_testing) { |
+ delete g_arc_bridge_service_for_testing; |
+ } |
+ g_arc_bridge_service_for_testing = arc_bridge_service.release(); |
+} |
+ |
} // namespace arc |