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

Unified Diff: chrome/browser/media/router/discovery/dial/dial_media_sink_service.h

Issue 2868263002: [Media Router] Add some SetForTest() functions to DialMediaSinkService and update unit tests (Closed)
Patch Set: call Stop() in DialMediaSinkService dtor Created 3 years, 7 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: chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
index 86f72c5beba6118eb17052fe0f245a9b357fa052..e30c916722f4301beafeb20e242e7b1cd73a196a 100644
--- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
+++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
@@ -28,22 +28,30 @@ class DialMediaSinkService : public MediaSinkService,
net::URLRequestContextGetter* request_context);
~DialMediaSinkService() override;
+ // Stop listening to DIAL device event.
+ virtual void Stop();
+
// MediaSinkService implementation
void Start() override;
- void Stop();
-
protected:
- virtual DialRegistry* dial_registry();
// Returns instance of device description service. Create a new one if none
// exists.
- virtual DeviceDescriptionService* GetDescriptionService();
+ DeviceDescriptionService* GetDescriptionService();
+
+ // Does not take ownership of |dial_registry|.
+ void SetDialRegistryForTest(DialRegistry* dial_registry);
+ void SetDescriptionServiceForTest(
+ std::unique_ptr<DeviceDescriptionService> description_service);
+ void SetTimerForTest(std::unique_ptr<base::Timer> timer);
private:
friend class DialMediaSinkServiceTest;
FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestStart);
- FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestFetchCompleted);
+ FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestTimer);
+ FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest,
+ TestFetchCompleted_SameSink);
FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestIsDifferent);
FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest,
TestOnDeviceDescriptionAvailable);
@@ -65,13 +73,19 @@ class DialMediaSinkService : public MediaSinkService,
// Called when |finish_timer_| expires.
void OnFetchCompleted();
+ // Helper function to start |finish_timer_|.
+ void StartTimer();
+
// Timer for finishing fetching. Starts in |OnDialDeviceEvent()|, and expires
// 3 seconds later. If |OnDeviceDescriptionAvailable()| is called after
// |finish_timer_| expires, |finish_timer_| is restarted.
- std::unique_ptr<base::OneShotTimer> finish_timer_;
+ std::unique_ptr<base::Timer> finish_timer_;
std::unique_ptr<DeviceDescriptionService> description_service_;
+ // Raw pointer to DialRegistry singleton.
+ DialRegistry* dial_registry_ = nullptr;
+
// Sorted sinks from current round of discovery.
std::set<MediaSinkInternal> current_sinks_;
@@ -82,6 +96,9 @@ class DialMediaSinkService : public MediaSinkService,
DialRegistry::DeviceList current_devices_;
scoped_refptr<net::URLRequestContextGetter> request_context_;
+
+ // True if discovery has started.
+ bool discovery_started_;
};
} // namespace media_router

Powered by Google App Engine
This is Rietveld 408576698