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

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

Powered by Google App Engine
This is Rietveld 408576698