OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/media/router/discovery/media_sink_service_base.h" | 5 #include "chrome/browser/media/router/discovery/media_sink_service_base.h" |
6 #include "base/test/mock_callback.h" | 6 #include "base/test/mock_callback.h" |
7 #include "base/timer/mock_timer.h" | 7 #include "base/timer/mock_timer.h" |
8 #include "chrome/browser/media/router/test_helper.h" | 8 #include "chrome/browser/media/router/test_helper.h" |
9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 std::vector<media_router::MediaSinkInternal> sinks; | 39 std::vector<media_router::MediaSinkInternal> sinks; |
40 sinks.push_back(media_router::MediaSinkInternal(sink1, extra_data1)); | 40 sinks.push_back(media_router::MediaSinkInternal(sink1, extra_data1)); |
41 sinks.push_back(media_router::MediaSinkInternal(sink2, extra_data2)); | 41 sinks.push_back(media_router::MediaSinkInternal(sink2, extra_data2)); |
42 return sinks; | 42 return sinks; |
43 } | 43 } |
44 | 44 |
45 } // namespace | 45 } // namespace |
46 | 46 |
47 namespace media_router { | 47 namespace media_router { |
48 | 48 |
| 49 class MockMediaSinkServiceObserver : public MediaSinkService::Observer { |
| 50 public: |
| 51 MOCK_METHOD1(OnMediaSinkAdded, void(const MediaSinkInternal& sink)); |
| 52 MOCK_METHOD0(OnMediaSinksRemoved, void()); |
| 53 }; |
| 54 |
49 class TestMediaSinkServiceBase : public MediaSinkServiceBase { | 55 class TestMediaSinkServiceBase : public MediaSinkServiceBase { |
50 public: | 56 public: |
51 explicit TestMediaSinkServiceBase(const OnSinksDiscoveredCallback& callback) | 57 explicit TestMediaSinkServiceBase(const OnSinksDiscoveredCallback& callback) |
52 : MediaSinkServiceBase(callback) {} | 58 : MediaSinkServiceBase(callback) {} |
53 | 59 |
54 void Start() override {} | 60 void Start() override {} |
55 void Stop() override {} | 61 void Stop() override {} |
56 }; | 62 }; |
57 | 63 |
58 class MediaSinkServiceBaseTest : public ::testing::Test { | 64 class MediaSinkServiceBaseTest : public ::testing::Test { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 DialSinkExtraData extra_data3 = CreateDialSinkExtraData( | 139 DialSinkExtraData extra_data3 = CreateDialSinkExtraData( |
134 "model_name3", "192.168.1.3", "https://example3.com"); | 140 "model_name3", "192.168.1.3", "https://example3.com"); |
135 | 141 |
136 std::vector<MediaSinkInternal> new_sinks; | 142 std::vector<MediaSinkInternal> new_sinks; |
137 new_sinks.push_back(MediaSinkInternal(sink1, extra_data2)); | 143 new_sinks.push_back(MediaSinkInternal(sink1, extra_data2)); |
138 new_sinks.push_back(MediaSinkInternal(sink3, extra_data3)); | 144 new_sinks.push_back(MediaSinkInternal(sink3, extra_data3)); |
139 | 145 |
140 TestFetchCompleted(old_sinks, new_sinks); | 146 TestFetchCompleted(old_sinks, new_sinks); |
141 } | 147 } |
142 | 148 |
| 149 TEST_F(MediaSinkServiceBaseTest, TestAddRemoveSinks) { |
| 150 MockMediaSinkServiceObserver mock_observer; |
| 151 |
| 152 auto sinks = CreateDialMediaSinks(); |
| 153 EXPECT_CALL(mock_observer, OnMediaSinkAdded(sinks[0])); |
| 154 EXPECT_CALL(mock_observer, OnMediaSinkAdded(sinks[1])); |
| 155 |
| 156 media_sink_service_->AddObserver(&mock_observer); |
| 157 media_sink_service_->AddSink(sinks[0]); |
| 158 EXPECT_EQ(size_t(1), media_sink_service_->GetCurrentSinksSize()); |
| 159 media_sink_service_->AddSink(sinks[0]); |
| 160 EXPECT_EQ(size_t(1), media_sink_service_->GetCurrentSinksSize()); |
| 161 media_sink_service_->AddSink(sinks[1]); |
| 162 EXPECT_EQ(size_t(2), media_sink_service_->GetCurrentSinksSize()); |
| 163 |
| 164 EXPECT_CALL(mock_observer, OnMediaSinksRemoved()); |
| 165 media_sink_service_->RemoveSinks(); |
| 166 EXPECT_EQ(size_t(0), media_sink_service_->GetCurrentSinksSize()); |
| 167 } |
| 168 |
143 } // namespace media_router | 169 } // namespace media_router |
OLD | NEW |