Index: chrome/browser/media/router/discovery/media_sink_service_base_unittest.cc |
diff --git a/chrome/browser/media/router/discovery/media_sink_service_base_unittest.cc b/chrome/browser/media/router/discovery/media_sink_service_base_unittest.cc |
index eac9ea494a9d2a82060a0916d1771c883f69449a..5294dde2f8dfdb349b27073796e81a033615c0bb 100644 |
--- a/chrome/browser/media/router/discovery/media_sink_service_base_unittest.cc |
+++ b/chrome/browser/media/router/discovery/media_sink_service_base_unittest.cc |
@@ -46,6 +46,12 @@ std::vector<media_router::MediaSinkInternal> CreateDialMediaSinks() { |
namespace media_router { |
+class MockMediaSinkServiceObserver : public MediaSinkService::Observer { |
+ public: |
+ MOCK_METHOD1(OnMediaSinkAdded, void(const MediaSinkInternal& sink)); |
+ MOCK_METHOD0(OnMediaSinksRemoved, void()); |
+}; |
+ |
class TestMediaSinkServiceBase : public MediaSinkServiceBase { |
public: |
explicit TestMediaSinkServiceBase(const OnSinksDiscoveredCallback& callback) |
@@ -140,4 +146,24 @@ TEST_F(MediaSinkServiceBaseTest, TestFetchCompleted_Mixed) { |
TestFetchCompleted(old_sinks, new_sinks); |
} |
+TEST_F(MediaSinkServiceBaseTest, TestAddRemoveSinks) { |
+ MockMediaSinkServiceObserver mock_observer; |
+ |
+ auto sinks = CreateDialMediaSinks(); |
+ EXPECT_CALL(mock_observer, OnMediaSinkAdded(sinks[0])); |
+ EXPECT_CALL(mock_observer, OnMediaSinkAdded(sinks[1])); |
+ |
+ media_sink_service_->AddObserver(&mock_observer); |
+ media_sink_service_->AddSink(sinks[0]); |
+ EXPECT_EQ(size_t(1), media_sink_service_->GetCurrentSinksSize()); |
+ media_sink_service_->AddSink(sinks[0]); |
+ EXPECT_EQ(size_t(1), media_sink_service_->GetCurrentSinksSize()); |
+ media_sink_service_->AddSink(sinks[1]); |
+ EXPECT_EQ(size_t(2), media_sink_service_->GetCurrentSinksSize()); |
+ |
+ EXPECT_CALL(mock_observer, OnMediaSinksRemoved()); |
+ media_sink_service_->RemoveSinks(); |
+ EXPECT_EQ(size_t(0), media_sink_service_->GetCurrentSinksSize()); |
+} |
+ |
} // namespace media_router |