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

Side by Side Diff: chromeos/components/tether/host_scan_cache_unittest.cc

Issue 2913313002: Tether: Persist if first-time setup is required to HostScanCache. (Closed)
Patch Set: khorimoto@ comments. Created 3 years, 6 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 unified diff | Download patch
OLDNEW
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 "chromeos/components/tether/host_scan_cache.h" 5 #include "chromeos/components/tether/host_scan_cache.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <unordered_map> 8 #include <unordered_map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 const int kTetherBatteryPercentage0 = 20; 51 const int kTetherBatteryPercentage0 = 20;
52 const int kTetherBatteryPercentage1 = 40; 52 const int kTetherBatteryPercentage1 = 40;
53 const int kTetherBatteryPercentage2 = 60; 53 const int kTetherBatteryPercentage2 = 60;
54 const int kTetherBatteryPercentage3 = 80; 54 const int kTetherBatteryPercentage3 = 80;
55 55
56 const int kTetherSignalStrength0 = 25; 56 const int kTetherSignalStrength0 = 25;
57 const int kTetherSignalStrength1 = 50; 57 const int kTetherSignalStrength1 = 50;
58 const int kTetherSignalStrength2 = 75; 58 const int kTetherSignalStrength2 = 75;
59 const int kTetherSignalStrength3 = 100; 59 const int kTetherSignalStrength3 = 100;
60 60
61 const bool kTetherSetupRequired0 = true;
62 const bool kTetherSetupRequired1 = false;
63 const bool kTetherSetupRequired2 = true;
64 const bool kTetherSetupRequired3 = false;
65
61 // MockTimer which invokes a callback in its destructor. 66 // MockTimer which invokes a callback in its destructor.
62 class ExtendedMockTimer : public base::MockTimer { 67 class ExtendedMockTimer : public base::MockTimer {
63 public: 68 public:
64 explicit ExtendedMockTimer(const base::Closure& destructor_callback) 69 explicit ExtendedMockTimer(const base::Closure& destructor_callback)
65 : base::MockTimer(true /* retain_user_task */, false /* is_repeating */), 70 : base::MockTimer(true /* retain_user_task */, false /* is_repeating */),
66 destructor_callback_(destructor_callback) {} 71 destructor_callback_(destructor_callback) {}
67 72
68 ~ExtendedMockTimer() override { destructor_callback_.Run(); } 73 ~ExtendedMockTimer() override { destructor_callback_.Run(); }
69 74
70 private: 75 private:
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // at the top of this test file. 203 // at the top of this test file.
199 void SetCacheScanResultForDeviceIndex(int32_t index) { 204 void SetCacheScanResultForDeviceIndex(int32_t index) {
200 // There are 4 sets of test constants. 205 // There are 4 sets of test constants.
201 ASSERT_TRUE(index >= 0 && index <= 3); 206 ASSERT_TRUE(index >= 0 && index <= 3);
202 207
203 std::string tether_network_guid; 208 std::string tether_network_guid;
204 std::string device_name; 209 std::string device_name;
205 std::string carrier; 210 std::string carrier;
206 int battery_percentage; 211 int battery_percentage;
207 int signal_strength; 212 int signal_strength;
213 bool setup_required;
208 214
209 switch (index) { 215 switch (index) {
210 case 0: 216 case 0:
211 tether_network_guid = kTetherGuid0; 217 tether_network_guid = kTetherGuid0;
212 device_name = kTetherDeviceName0; 218 device_name = kTetherDeviceName0;
213 carrier = kTetherCarrier0; 219 carrier = kTetherCarrier0;
214 battery_percentage = kTetherBatteryPercentage0; 220 battery_percentage = kTetherBatteryPercentage0;
215 signal_strength = kTetherSignalStrength0; 221 signal_strength = kTetherSignalStrength0;
222 setup_required = kTetherSetupRequired0;
216 break; 223 break;
217 case 1: 224 case 1:
218 tether_network_guid = kTetherGuid1; 225 tether_network_guid = kTetherGuid1;
219 device_name = kTetherDeviceName1; 226 device_name = kTetherDeviceName1;
220 carrier = kTetherCarrier1; 227 carrier = kTetherCarrier1;
221 battery_percentage = kTetherBatteryPercentage1; 228 battery_percentage = kTetherBatteryPercentage1;
222 signal_strength = kTetherSignalStrength1; 229 signal_strength = kTetherSignalStrength1;
230 setup_required = kTetherSetupRequired1;
223 break; 231 break;
224 case 2: 232 case 2:
225 tether_network_guid = kTetherGuid2; 233 tether_network_guid = kTetherGuid2;
226 device_name = kTetherDeviceName2; 234 device_name = kTetherDeviceName2;
227 carrier = kTetherCarrier2; 235 carrier = kTetherCarrier2;
228 battery_percentage = kTetherBatteryPercentage2; 236 battery_percentage = kTetherBatteryPercentage2;
229 signal_strength = kTetherSignalStrength2; 237 signal_strength = kTetherSignalStrength2;
238 setup_required = kTetherSetupRequired2;
230 break; 239 break;
231 case 3: 240 case 3:
232 tether_network_guid = kTetherGuid3; 241 tether_network_guid = kTetherGuid3;
233 device_name = kTetherDeviceName3; 242 device_name = kTetherDeviceName3;
234 carrier = kTetherCarrier3; 243 carrier = kTetherCarrier3;
235 battery_percentage = kTetherBatteryPercentage3; 244 battery_percentage = kTetherBatteryPercentage3;
236 signal_strength = kTetherSignalStrength3; 245 signal_strength = kTetherSignalStrength3;
246 setup_required = kTetherSetupRequired3;
237 break; 247 break;
238 default: 248 default:
239 NOTREACHED(); 249 NOTREACHED();
240 // Set values for |battery_percentage| and |signal_strength| here to 250 // Set values for |battery_percentage|, |signal_strength| and
241 // prevent a compiler warning which says that they may be unset at this 251 // |setup_required| here to prevent a compiler warning which says that
242 // point. 252 // they may be unset at this point.
243 battery_percentage = 0; 253 battery_percentage = 0;
244 signal_strength = 0; 254 signal_strength = 0;
255 setup_required = false;
245 break; 256 break;
246 } 257 }
247 258
248 SetHostScanResult(tether_network_guid, device_name, carrier, 259 SetHostScanResult(tether_network_guid, device_name, carrier,
249 battery_percentage, signal_strength); 260 battery_percentage, signal_strength, setup_required);
250 } 261 }
251 262
252 void SetHostScanResult(const std::string& tether_network_guid, 263 void SetHostScanResult(const std::string& tether_network_guid,
253 const std::string& device_name, 264 const std::string& device_name,
254 const std::string& carrier, 265 const std::string& carrier,
255 int battery_percentage, 266 int battery_percentage,
256 int signal_strength) { 267 int signal_strength,
268 bool setup_required) {
257 test_timer_factory_->set_tether_network_guid_for_next_timer( 269 test_timer_factory_->set_tether_network_guid_for_next_timer(
258 tether_network_guid); 270 tether_network_guid);
259 host_scan_cache_->SetHostScanResult(tether_network_guid, device_name, 271 host_scan_cache_->SetHostScanResult(tether_network_guid, device_name,
260 carrier, battery_percentage, 272 carrier, battery_percentage,
261 signal_strength); 273 signal_strength, setup_required);
262 expected_cache_->SetHostScanResult(tether_network_guid, device_name, 274 expected_cache_->SetHostScanResult(tether_network_guid, device_name,
263 carrier, battery_percentage, 275 carrier, battery_percentage,
264 signal_strength); 276 signal_strength, setup_required);
265 } 277 }
266 278
267 void RemoveHostScanResult(const std::string& tether_network_guid) { 279 void RemoveHostScanResult(const std::string& tether_network_guid) {
268 host_scan_cache_->RemoveHostScanResult(tether_network_guid); 280 host_scan_cache_->RemoveHostScanResult(tether_network_guid);
269 expected_cache_->RemoveHostScanResult(tether_network_guid); 281 expected_cache_->RemoveHostScanResult(tether_network_guid);
270 } 282 }
271 283
272 void ClearCacheExceptForActiveHost() { 284 void ClearCacheExceptForActiveHost() {
273 host_scan_cache_->ClearCacheExceptForActiveHost(); 285 host_scan_cache_->ClearCacheExceptForActiveHost();
274 expected_cache_->ClearCacheExceptForActiveHost(); 286 expected_cache_->ClearCacheExceptForActiveHost();
(...skipping 18 matching lines...) Expand all
293 // corresponding entry in NetworkStateHandler. 305 // corresponding entry in NetworkStateHandler.
294 const NetworkState* tether_network_state = 306 const NetworkState* tether_network_state =
295 network_state_handler()->GetNetworkStateFromGuid(tether_network_guid); 307 network_state_handler()->GetNetworkStateFromGuid(tether_network_guid);
296 ASSERT_TRUE(tether_network_state); 308 ASSERT_TRUE(tether_network_state);
297 EXPECT_EQ(cache_entry.device_name, tether_network_state->name()); 309 EXPECT_EQ(cache_entry.device_name, tether_network_state->name());
298 EXPECT_EQ(cache_entry.carrier, tether_network_state->carrier()); 310 EXPECT_EQ(cache_entry.carrier, tether_network_state->carrier());
299 EXPECT_EQ(cache_entry.battery_percentage, 311 EXPECT_EQ(cache_entry.battery_percentage,
300 tether_network_state->battery_percentage()); 312 tether_network_state->battery_percentage());
301 EXPECT_EQ(cache_entry.signal_strength, 313 EXPECT_EQ(cache_entry.signal_strength,
302 tether_network_state->signal_strength()); 314 tether_network_state->signal_strength());
315 EXPECT_EQ(cache_entry.setup_required,
316 host_scan_cache_->DoesHostRequireSetup(tether_network_guid));
303 EXPECT_EQ(HasConnectedToHost(tether_network_guid), 317 EXPECT_EQ(HasConnectedToHost(tether_network_guid),
304 tether_network_state->tether_has_connected_to_host()); 318 tether_network_state->tether_has_connected_to_host());
305 319
306 // Ensure that each entry has an actively-running Timer. 320 // Ensure that each entry has an actively-running Timer.
307 auto timer_map_it = 321 auto timer_map_it =
308 test_timer_factory_->tether_network_guid_to_timer_map().begin(); 322 test_timer_factory_->tether_network_guid_to_timer_map().begin();
309 EXPECT_NE(timer_map_it, 323 EXPECT_NE(timer_map_it,
310 test_timer_factory_->tether_network_guid_to_timer_map().end()); 324 test_timer_factory_->tether_network_guid_to_timer_map().end());
311 EXPECT_TRUE(timer_map_it->second->IsRunning()); 325 EXPECT_TRUE(timer_map_it->second->IsRunning());
312 } 326 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 } 380 }
367 381
368 TEST_F(HostScanCacheTest, TestSetScanResultThenUpdateAndRemove) { 382 TEST_F(HostScanCacheTest, TestSetScanResultThenUpdateAndRemove) {
369 SetCacheScanResultForDeviceIndex(0); 383 SetCacheScanResultForDeviceIndex(0);
370 EXPECT_EQ(1u, expected_cache_->size()); 384 EXPECT_EQ(1u, expected_cache_->size());
371 VerifyCacheMatchesNetworkStack(); 385 VerifyCacheMatchesNetworkStack();
372 386
373 // Change the fields for tether network with GUID |kTetherGuid0| to the 387 // Change the fields for tether network with GUID |kTetherGuid0| to the
374 // fields corresponding to |kTetherGuid1|. 388 // fields corresponding to |kTetherGuid1|.
375 SetHostScanResult(kTetherGuid0, kTetherDeviceName0, kTetherCarrier1, 389 SetHostScanResult(kTetherGuid0, kTetherDeviceName0, kTetherCarrier1,
376 kTetherBatteryPercentage1, kTetherSignalStrength1); 390 kTetherBatteryPercentage1, kTetherSignalStrength1,
391 kTetherSetupRequired1);
377 EXPECT_EQ(1u, expected_cache_->size()); 392 EXPECT_EQ(1u, expected_cache_->size());
378 VerifyCacheMatchesNetworkStack(); 393 VerifyCacheMatchesNetworkStack();
379 394
380 // Now, remove that result. 395 // Now, remove that result.
381 RemoveHostScanResult(kTetherGuid0); 396 RemoveHostScanResult(kTetherGuid0);
382 EXPECT_TRUE(expected_cache_->empty()); 397 EXPECT_TRUE(expected_cache_->empty());
383 VerifyCacheMatchesNetworkStack(); 398 VerifyCacheMatchesNetworkStack();
384 } 399 }
385 400
386 TEST_F(HostScanCacheTest, TestSetScanResult_SetActiveHost_ThenClear) { 401 TEST_F(HostScanCacheTest, TestSetScanResult_SetActiveHost_ThenClear) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 454
440 // Simulate a connection to device 1. 455 // Simulate a connection to device 1.
441 SetActiveHost(kTetherGuid1); 456 SetActiveHost(kTetherGuid1);
442 SetHasConnectedToHost(kTetherGuid1); 457 SetHasConnectedToHost(kTetherGuid1);
443 VerifyCacheMatchesNetworkStack(); 458 VerifyCacheMatchesNetworkStack();
444 } 459 }
445 460
446 } // namespace tether 461 } // namespace tether
447 462
448 } // namespace chromeos 463 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/components/tether/host_scan_cache.cc ('k') | chromeos/components/tether/host_scanner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698