OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/test/simple_test_clock.h" |
8 #include "chrome/browser/media/router/discovery/dial/dial_device_data.h" | 9 #include "chrome/browser/media/router/discovery/dial/dial_device_data.h" |
9 #include "chrome/browser/media/router/discovery/dial/dial_registry.h" | 10 #include "chrome/browser/media/router/discovery/dial/dial_registry.h" |
10 #include "chrome/browser/media/router/discovery/dial/dial_service.h" | 11 #include "chrome/browser/media/router/discovery/dial/dial_service.h" |
11 #include "chrome/test/base/testing_profile.h" | 12 #include "chrome/test/base/testing_profile.h" |
12 #include "content/public/test/test_browser_thread_bundle.h" | 13 #include "content/public/test/test_browser_thread_bundle.h" |
13 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
15 #include "url/gurl.h" | 16 #include "url/gurl.h" |
16 | 17 |
17 using base::Time; | 18 using base::Time; |
(...skipping 19 matching lines...) Expand all Loading... |
37 ~MockDialService() override {} | 38 ~MockDialService() override {} |
38 | 39 |
39 MOCK_METHOD0(Discover, bool()); | 40 MOCK_METHOD0(Discover, bool()); |
40 MOCK_METHOD1(AddObserver, void(DialService::Observer*)); | 41 MOCK_METHOD1(AddObserver, void(DialService::Observer*)); |
41 MOCK_METHOD1(RemoveObserver, void(DialService::Observer*)); | 42 MOCK_METHOD1(RemoveObserver, void(DialService::Observer*)); |
42 MOCK_CONST_METHOD1(HasObserver, bool(const DialService::Observer*)); | 43 MOCK_CONST_METHOD1(HasObserver, bool(const DialService::Observer*)); |
43 }; | 44 }; |
44 | 45 |
45 class MockDialRegistry : public DialRegistry { | 46 class MockDialRegistry : public DialRegistry { |
46 public: | 47 public: |
47 MockDialRegistry() : DialRegistry(), time_(Time::Now()) {} | 48 MockDialRegistry() : DialRegistry(), clock_(new base::SimpleTestClock()) { |
| 49 // Takes ownership of |clock|. |
| 50 SetClockForTest(base::WrapUnique(clock_)); |
| 51 } |
48 | 52 |
49 ~MockDialRegistry() override { | 53 ~MockDialRegistry() override { |
50 // Don't let the DialRegistry delete this. | 54 // Don't let the DialRegistry delete this. |
51 DialService* tmp = dial_.release(); | 55 DialService* tmp = dial_.release(); |
52 if (tmp) | 56 if (tmp) |
53 CHECK_EQ(&mock_service_, tmp); | 57 CHECK_EQ(&mock_service_, tmp); |
54 } | 58 } |
55 | 59 |
56 // Returns the mock Dial service. | 60 // Returns the mock Dial service. |
57 MockDialService& mock_service() { return mock_service_; } | 61 MockDialService& mock_service() { return mock_service_; } |
58 | 62 base::SimpleTestClock* clock() const { return clock_; } |
59 void set_time(Time time) { time_ = time; } | |
60 | 63 |
61 protected: | 64 protected: |
62 base::Time Now() const override { return time_; } | |
63 | |
64 std::unique_ptr<DialService> CreateDialService() override { | 65 std::unique_ptr<DialService> CreateDialService() override { |
65 return base::WrapUnique(&mock_service_); | 66 return base::WrapUnique(&mock_service_); |
66 } | 67 } |
67 | 68 |
68 void ClearDialService() override { | 69 void ClearDialService() override { |
69 // Release the pointer but don't delete the object because the test owns it. | 70 // Release the pointer but don't delete the object because the test owns it. |
70 CHECK_EQ(&mock_service_, dial_.release()); | 71 CHECK_EQ(&mock_service_, dial_.release()); |
71 } | 72 } |
72 | 73 |
73 private: | 74 private: |
74 MockDialService mock_service_; | 75 MockDialService mock_service_; |
75 | 76 |
76 // Set to mock out the current time. | 77 // Owned by DialRegistry. |
77 Time time_; | 78 base::SimpleTestClock* const clock_; |
78 }; | 79 }; |
79 | 80 |
80 class DialRegistryTest : public testing::Test { | 81 class DialRegistryTest : public testing::Test { |
81 public: | 82 public: |
82 DialRegistryTest() | 83 DialRegistryTest() |
83 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), | 84 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), |
84 first_device_("first", GURL("http://127.0.0.1/dd.xml"), Time::Now()), | 85 registry_(new MockDialRegistry()), |
85 second_device_("second", GURL("http://127.0.0.2/dd.xml"), Time::Now()), | 86 first_device_("first", GURL("http://127.0.0.1/dd.xml"), Now()), |
86 third_device_("third", GURL("http://127.0.0.3/dd.xml"), Time::Now()) { | 87 second_device_("second", GURL("http://127.0.0.2/dd.xml"), Now()), |
87 registry_ = base::MakeUnique<MockDialRegistry>(); | 88 third_device_("third", GURL("http://127.0.0.3/dd.xml"), Now()), |
| 89 list_with_first_device_({first_device_}), |
| 90 list_with_second_device_({second_device_}), |
| 91 list_with_first_second_devices_({first_device_, second_device_}) { |
88 registry_->RegisterObserver(&mock_observer_); | 92 registry_->RegisterObserver(&mock_observer_); |
89 list_with_first_device_.push_back(first_device_); | |
90 list_with_second_device_.push_back(second_device_); | |
91 } | 93 } |
92 | 94 |
93 protected: | 95 protected: |
94 void SetListenerExpectations() { | 96 void SetListenerExpectations() { |
95 EXPECT_CALL(registry_->mock_service(), | 97 EXPECT_CALL(registry_->mock_service(), |
96 AddObserver(A<DialService::Observer*>())); | 98 AddObserver(A<DialService::Observer*>())); |
97 EXPECT_CALL(registry_->mock_service(), | 99 EXPECT_CALL(registry_->mock_service(), |
98 RemoveObserver(A<DialService::Observer*>())); | 100 RemoveObserver(A<DialService::Observer*>())); |
99 } | 101 } |
100 | 102 |
| 103 void VerifyAndResetMocks() { |
| 104 testing::Mock::VerifyAndClearExpectations(®istry_->mock_service()); |
| 105 testing::Mock::VerifyAndClearExpectations(&mock_observer_); |
| 106 } |
| 107 |
| 108 Time Now() const { return registry_->clock()->Now(); } |
| 109 |
| 110 void AdvanceTime(base::TimeDelta duration) { |
| 111 registry_->clock()->Advance(duration); |
| 112 } |
| 113 |
101 content::TestBrowserThreadBundle thread_bundle_; | 114 content::TestBrowserThreadBundle thread_bundle_; |
| 115 |
102 std::unique_ptr<MockDialRegistry> registry_; | 116 std::unique_ptr<MockDialRegistry> registry_; |
103 MockDialObserver mock_observer_; | 117 MockDialObserver mock_observer_; |
104 const DialDeviceData first_device_; | 118 const DialDeviceData first_device_; |
105 const DialDeviceData second_device_; | 119 const DialDeviceData second_device_; |
106 const DialDeviceData third_device_; | 120 const DialDeviceData third_device_; |
107 | 121 |
108 const DialRegistry::DeviceList empty_list_; | 122 const DialRegistry::DeviceList empty_list_; |
109 DialRegistry::DeviceList list_with_first_device_; | 123 const DialRegistry::DeviceList list_with_first_device_; |
110 DialRegistry::DeviceList list_with_second_device_; | 124 const DialRegistry::DeviceList list_with_second_device_; |
| 125 const DialRegistry::DeviceList list_with_first_second_devices_; |
111 }; | 126 }; |
112 | 127 |
113 TEST_F(DialRegistryTest, TestAddRemoveListeners) { | 128 TEST_F(DialRegistryTest, TestAddRemoveListeners) { |
114 SetListenerExpectations(); | 129 SetListenerExpectations(); |
115 EXPECT_CALL(registry_->mock_service(), Discover()); | 130 EXPECT_CALL(registry_->mock_service(), Discover()); |
116 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)).Times(2); | 131 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)).Times(2); |
117 | 132 |
118 EXPECT_FALSE(registry_->repeating_timer_); | 133 EXPECT_FALSE(registry_->repeating_timer_); |
119 registry_->OnListenerAdded(); | 134 registry_->OnListenerAdded(); |
120 EXPECT_TRUE(registry_->repeating_timer_->IsRunning()); | 135 EXPECT_TRUE(registry_->repeating_timer_->IsRunning()); |
(...skipping 10 matching lines...) Expand all Loading... |
131 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 146 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
132 EXPECT_CALL(registry_->mock_service(), Discover()); | 147 EXPECT_CALL(registry_->mock_service(), Discover()); |
133 | 148 |
134 registry_->OnListenerAdded(); | 149 registry_->OnListenerAdded(); |
135 registry_->OnDiscoveryRequest(nullptr); | 150 registry_->OnDiscoveryRequest(nullptr); |
136 registry_->OnDiscoveryFinished(nullptr); | 151 registry_->OnDiscoveryFinished(nullptr); |
137 registry_->OnListenerRemoved(); | 152 registry_->OnListenerRemoved(); |
138 } | 153 } |
139 | 154 |
140 TEST_F(DialRegistryTest, TestDevicesDiscovered) { | 155 TEST_F(DialRegistryTest, TestDevicesDiscovered) { |
141 DialRegistry::DeviceList expected_list2; | |
142 expected_list2.push_back(first_device_); | |
143 expected_list2.push_back(second_device_); | |
144 | |
145 SetListenerExpectations(); | 156 SetListenerExpectations(); |
146 InSequence s; | 157 InSequence s; |
147 EXPECT_CALL(registry_->mock_service(), Discover()); | 158 EXPECT_CALL(registry_->mock_service(), Discover()); |
148 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 159 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
149 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); | 160 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); |
150 EXPECT_CALL(registry_->mock_service(), Discover()); | 161 EXPECT_CALL(registry_->mock_service(), Discover()); |
151 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(expected_list2)); | 162 EXPECT_CALL(mock_observer_, |
| 163 OnDialDeviceEvent(list_with_first_second_devices_)); |
152 | 164 |
153 registry_->OnListenerAdded(); | 165 registry_->OnListenerAdded(); |
154 registry_->OnDiscoveryRequest(nullptr); | 166 registry_->OnDiscoveryRequest(nullptr); |
155 registry_->OnDeviceDiscovered(nullptr, first_device_); | 167 registry_->OnDeviceDiscovered(nullptr, first_device_); |
156 registry_->OnDiscoveryFinished(nullptr); | 168 registry_->OnDiscoveryFinished(nullptr); |
157 | 169 |
158 registry_->DoDiscovery(); | 170 registry_->DoDiscovery(); |
159 registry_->OnDiscoveryRequest(nullptr); | 171 registry_->OnDiscoveryRequest(nullptr); |
160 registry_->OnDeviceDiscovered(nullptr, second_device_); | 172 registry_->OnDeviceDiscovered(nullptr, second_device_); |
161 registry_->OnDiscoveryFinished(nullptr); | 173 registry_->OnDiscoveryFinished(nullptr); |
162 registry_->OnListenerRemoved(); | 174 registry_->OnListenerRemoved(); |
163 } | 175 } |
164 | 176 |
165 TEST_F(DialRegistryTest, TestDevicesDiscoveredWithTwoListeners) { | 177 TEST_F(DialRegistryTest, TestDevicesDiscoveredWithTwoListeners) { |
166 DialRegistry::DeviceList expected_list2; | |
167 expected_list2.push_back(first_device_); | |
168 expected_list2.push_back(second_device_); | |
169 | |
170 SetListenerExpectations(); | 178 SetListenerExpectations(); |
171 InSequence s; | 179 InSequence s; |
172 EXPECT_CALL(registry_->mock_service(), Discover()); | 180 EXPECT_CALL(registry_->mock_service(), Discover()); |
173 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 181 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
174 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)) | 182 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)) |
175 .Times(2); | 183 .Times(2); |
176 EXPECT_CALL(registry_->mock_service(), Discover()); | 184 EXPECT_CALL(registry_->mock_service(), Discover()); |
177 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(expected_list2)); | 185 EXPECT_CALL(mock_observer_, |
| 186 OnDialDeviceEvent(list_with_first_second_devices_)); |
178 | 187 |
179 registry_->OnListenerAdded(); | 188 registry_->OnListenerAdded(); |
180 registry_->OnDiscoveryRequest(nullptr); | 189 registry_->OnDiscoveryRequest(nullptr); |
181 registry_->OnDeviceDiscovered(nullptr, first_device_); | 190 registry_->OnDeviceDiscovered(nullptr, first_device_); |
182 registry_->OnDiscoveryFinished(nullptr); | 191 registry_->OnDiscoveryFinished(nullptr); |
183 | 192 |
184 registry_->OnListenerAdded(); | 193 registry_->OnListenerAdded(); |
185 | 194 |
186 registry_->DoDiscovery(); | 195 registry_->DoDiscovery(); |
187 registry_->OnDiscoveryRequest(nullptr); | 196 registry_->OnDiscoveryRequest(nullptr); |
188 registry_->OnDeviceDiscovered(nullptr, second_device_); | 197 registry_->OnDeviceDiscovered(nullptr, second_device_); |
189 registry_->OnDiscoveryFinished(nullptr); | 198 registry_->OnDiscoveryFinished(nullptr); |
190 registry_->OnListenerRemoved(); | 199 registry_->OnListenerRemoved(); |
191 registry_->OnListenerRemoved(); | 200 registry_->OnListenerRemoved(); |
192 } | 201 } |
193 | 202 |
194 TEST_F(DialRegistryTest, TestDeviceExpires) { | 203 TEST_F(DialRegistryTest, TestDeviceExpires) { |
195 SetListenerExpectations(); | |
196 InSequence s; | 204 InSequence s; |
| 205 |
| 206 EXPECT_CALL(registry_->mock_service(), |
| 207 AddObserver(A<DialService::Observer*>())); |
197 EXPECT_CALL(registry_->mock_service(), Discover()); | 208 EXPECT_CALL(registry_->mock_service(), Discover()); |
198 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 209 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
199 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); | 210 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); |
200 EXPECT_CALL(registry_->mock_service(), Discover()); | |
201 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | |
202 | 211 |
203 registry_->OnListenerAdded(); | 212 registry_->OnListenerAdded(); |
204 registry_->OnDiscoveryRequest(nullptr); | 213 registry_->OnDiscoveryRequest(nullptr); |
205 registry_->OnDeviceDiscovered(nullptr, first_device_); | 214 registry_->OnDeviceDiscovered(nullptr, first_device_); |
206 registry_->OnDiscoveryFinished(nullptr); | 215 registry_->OnDiscoveryFinished(nullptr); |
| 216 VerifyAndResetMocks(); |
207 | 217 |
208 registry_->set_time(Time::Now() + TimeDelta::FromSeconds(300)); | 218 // First device has not expired yet. |
| 219 EXPECT_CALL(registry_->mock_service(), Discover()); |
| 220 EXPECT_CALL(mock_observer_, |
| 221 OnDialDeviceEvent(list_with_first_second_devices_)); |
| 222 |
| 223 AdvanceTime(TimeDelta::FromSeconds(100)); |
| 224 DialDeviceData second_device_discovered_later = second_device_; |
| 225 second_device_discovered_later.set_response_time(Now()); |
209 | 226 |
210 registry_->DoDiscovery(); | 227 registry_->DoDiscovery(); |
211 registry_->OnDiscoveryRequest(nullptr); | 228 registry_->OnDiscoveryRequest(nullptr); |
| 229 registry_->OnDeviceDiscovered(nullptr, second_device_discovered_later); |
212 registry_->OnDiscoveryFinished(nullptr); | 230 registry_->OnDiscoveryFinished(nullptr); |
| 231 VerifyAndResetMocks(); |
| 232 |
| 233 // First device has expired, second device has not expired yet. |
| 234 EXPECT_CALL(registry_->mock_service(), Discover()); |
| 235 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_second_device_)); |
| 236 |
| 237 AdvanceTime(TimeDelta::FromSeconds(200)); |
| 238 registry_->DoDiscovery(); |
| 239 registry_->OnDiscoveryRequest(nullptr); |
| 240 registry_->OnDiscoveryFinished(nullptr); |
| 241 VerifyAndResetMocks(); |
| 242 |
| 243 // Second device has expired. |
| 244 EXPECT_CALL(registry_->mock_service(), Discover()); |
| 245 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
| 246 |
| 247 AdvanceTime(TimeDelta::FromSeconds(200)); |
| 248 registry_->DoDiscovery(); |
| 249 registry_->OnDiscoveryRequest(nullptr); |
| 250 registry_->OnDiscoveryFinished(nullptr); |
| 251 VerifyAndResetMocks(); |
| 252 |
| 253 EXPECT_CALL(registry_->mock_service(), |
| 254 RemoveObserver(A<DialService::Observer*>())); |
213 registry_->OnListenerRemoved(); | 255 registry_->OnListenerRemoved(); |
214 } | 256 } |
215 | 257 |
216 TEST_F(DialRegistryTest, TestExpiredDeviceIsRediscovered) { | 258 TEST_F(DialRegistryTest, TestExpiredDeviceIsRediscovered) { |
217 std::vector<Time> discovery_times; | |
218 discovery_times.push_back(Time::Now()); | |
219 discovery_times.push_back(discovery_times[0] + TimeDelta::FromSeconds(300)); | |
220 discovery_times.push_back(discovery_times[1] + TimeDelta::FromSeconds(300)); | |
221 | |
222 DialDeviceData rediscovered_device("first", GURL("http://127.0.0.1/dd.xml"), | |
223 discovery_times[2]); | |
224 | |
225 SetListenerExpectations(); | 259 SetListenerExpectations(); |
226 | 260 |
227 InSequence s; | 261 InSequence s; |
228 EXPECT_CALL(registry_->mock_service(), Discover()); | 262 EXPECT_CALL(registry_->mock_service(), Discover()); |
229 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 263 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
230 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); | 264 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); |
231 EXPECT_CALL(registry_->mock_service(), Discover()); | 265 EXPECT_CALL(registry_->mock_service(), Discover()); |
232 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 266 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
233 EXPECT_CALL(registry_->mock_service(), Discover()); | 267 EXPECT_CALL(registry_->mock_service(), Discover()); |
234 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); | 268 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(list_with_first_device_)); |
235 | 269 |
236 registry_->set_time(discovery_times[0]); | |
237 registry_->OnListenerAdded(); | 270 registry_->OnListenerAdded(); |
238 registry_->OnDiscoveryRequest(nullptr); | 271 registry_->OnDiscoveryRequest(nullptr); |
239 registry_->OnDeviceDiscovered(nullptr, first_device_); | 272 registry_->OnDeviceDiscovered(nullptr, first_device_); |
240 registry_->OnDiscoveryFinished(nullptr); | 273 registry_->OnDiscoveryFinished(nullptr); |
241 | 274 |
242 // Will expire "first" device as it is not discovered this time. | 275 // Will expire "first" device as it is not discovered this time. |
243 registry_->set_time(discovery_times[1]); | 276 AdvanceTime(TimeDelta::FromSeconds(300)); |
244 registry_->DoDiscovery(); | 277 registry_->DoDiscovery(); |
245 registry_->OnDiscoveryRequest(nullptr); | 278 registry_->OnDiscoveryRequest(nullptr); |
246 registry_->OnDiscoveryFinished(nullptr); | 279 registry_->OnDiscoveryFinished(nullptr); |
247 | 280 |
248 // "first" device is rediscovered 30 seconds later. We pass a device object | 281 // "first" device is rediscovered 300 seconds later. We pass a device object |
249 // with a newer discovery time so it is not pruned immediately. | 282 // with a newer discovery time so it is not pruned immediately. |
250 registry_->set_time(discovery_times[2]); | 283 AdvanceTime(TimeDelta::FromSeconds(300)); |
| 284 DialDeviceData rediscovered_device = first_device_; |
| 285 rediscovered_device.set_response_time(Now()); |
| 286 |
251 registry_->DoDiscovery(); | 287 registry_->DoDiscovery(); |
252 registry_->OnDiscoveryRequest(nullptr); | 288 registry_->OnDiscoveryRequest(nullptr); |
253 registry_->OnDeviceDiscovered(nullptr, rediscovered_device); | 289 registry_->OnDeviceDiscovered(nullptr, rediscovered_device); |
254 registry_->OnDiscoveryFinished(nullptr); | 290 registry_->OnDiscoveryFinished(nullptr); |
255 | 291 |
256 registry_->OnListenerRemoved(); | 292 registry_->OnListenerRemoved(); |
257 } | 293 } |
258 | 294 |
259 TEST_F(DialRegistryTest, TestRemovingListenerDoesNotClearList) { | 295 TEST_F(DialRegistryTest, TestRemovingListenerDoesNotClearList) { |
260 DialRegistry::DeviceList expected_list2; | |
261 expected_list2.push_back(first_device_); | |
262 expected_list2.push_back(second_device_); | |
263 | |
264 InSequence s; | 296 InSequence s; |
265 EXPECT_CALL(registry_->mock_service(), | 297 EXPECT_CALL(registry_->mock_service(), |
266 AddObserver(A<DialService::Observer*>())); | 298 AddObserver(A<DialService::Observer*>())); |
267 EXPECT_CALL(registry_->mock_service(), Discover()); | 299 EXPECT_CALL(registry_->mock_service(), Discover()); |
268 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); | 300 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(empty_list_)); |
269 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(expected_list2)); | 301 EXPECT_CALL(mock_observer_, |
| 302 OnDialDeviceEvent(list_with_first_second_devices_)); |
270 EXPECT_CALL(registry_->mock_service(), | 303 EXPECT_CALL(registry_->mock_service(), |
271 RemoveObserver(A<DialService::Observer*>())); | 304 RemoveObserver(A<DialService::Observer*>())); |
272 | 305 |
273 registry_->OnListenerAdded(); | 306 registry_->OnListenerAdded(); |
274 registry_->OnDiscoveryRequest(nullptr); | 307 registry_->OnDiscoveryRequest(nullptr); |
275 registry_->OnDeviceDiscovered(nullptr, first_device_); | 308 registry_->OnDeviceDiscovered(nullptr, first_device_); |
276 registry_->OnDeviceDiscovered(nullptr, second_device_); | 309 registry_->OnDeviceDiscovered(nullptr, second_device_); |
277 registry_->OnDiscoveryFinished(nullptr); | 310 registry_->OnDiscoveryFinished(nullptr); |
278 registry_->OnListenerRemoved(); | 311 registry_->OnListenerRemoved(); |
279 | 312 |
280 // Removing and adding a listener again fires an event with the current device | 313 // Removing and adding a listener again fires an event with the current device |
281 // list (even though no new devices were discovered). | 314 // list (even though no new devices were discovered). |
282 EXPECT_CALL(registry_->mock_service(), | 315 EXPECT_CALL(registry_->mock_service(), |
283 AddObserver(A<DialService::Observer*>())); | 316 AddObserver(A<DialService::Observer*>())); |
284 EXPECT_CALL(registry_->mock_service(), Discover()); | 317 EXPECT_CALL(registry_->mock_service(), Discover()); |
285 EXPECT_CALL(mock_observer_, OnDialDeviceEvent(expected_list2)); | 318 EXPECT_CALL(mock_observer_, |
| 319 OnDialDeviceEvent(list_with_first_second_devices_)); |
286 EXPECT_CALL(registry_->mock_service(), | 320 EXPECT_CALL(registry_->mock_service(), |
287 RemoveObserver(A<DialService::Observer*>())); | 321 RemoveObserver(A<DialService::Observer*>())); |
288 | 322 |
289 registry_->OnListenerAdded(); | 323 registry_->OnListenerAdded(); |
290 registry_->OnDiscoveryRequest(nullptr); | 324 registry_->OnDiscoveryRequest(nullptr); |
291 registry_->OnDiscoveryFinished(nullptr); | 325 registry_->OnDiscoveryFinished(nullptr); |
292 registry_->OnListenerRemoved(); | 326 registry_->OnListenerRemoved(); |
293 } | 327 } |
294 | 328 |
295 TEST_F(DialRegistryTest, TestNetworkEventConnectionLost) { | 329 TEST_F(DialRegistryTest, TestNetworkEventConnectionLost) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 registry_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); | 395 registry_->OnNetworkChanged(net::NetworkChangeNotifier::CONNECTION_ETHERNET); |
362 | 396 |
363 registry_->OnDiscoveryRequest(nullptr); | 397 registry_->OnDiscoveryRequest(nullptr); |
364 registry_->OnDeviceDiscovered(nullptr, third_device_); | 398 registry_->OnDeviceDiscovered(nullptr, third_device_); |
365 registry_->OnDiscoveryFinished(nullptr); | 399 registry_->OnDiscoveryFinished(nullptr); |
366 | 400 |
367 registry_->OnListenerRemoved(); | 401 registry_->OnListenerRemoved(); |
368 } | 402 } |
369 | 403 |
370 } // namespace media_router | 404 } // namespace media_router |
OLD | NEW |