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

Side by Side Diff: components/cryptauth/cryptauth_device_manager_unittest.cc

Issue 2502343003: Moved //components/proximity_auth/cryptauth to //components/cryptauth. (Closed)
Patch Set: Prefixed two test names with "CryptAuth" so that they do not collide with other test names. Created 4 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/proximity_auth/cryptauth/cryptauth_device_manager.h" 5 #include "components/cryptauth/cryptauth_device_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/base64url.h" 11 #include "base/base64url.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
16 #include "base/test/simple_test_clock.h" 16 #include "base/test/simple_test_clock.h"
17 #include "components/cryptauth/fake_cryptauth_gcm_manager.h"
18 #include "components/cryptauth/mock_cryptauth_client.h"
19 #include "components/cryptauth/mock_sync_scheduler.h"
20 #include "components/cryptauth/pref_names.h"
17 #include "components/prefs/scoped_user_pref_update.h" 21 #include "components/prefs/scoped_user_pref_update.h"
18 #include "components/prefs/testing_pref_service.h" 22 #include "components/prefs/testing_pref_service.h"
19 #include "components/proximity_auth/cryptauth/fake_cryptauth_gcm_manager.h"
20 #include "components/proximity_auth/cryptauth/mock_cryptauth_client.h"
21 #include "components/proximity_auth/cryptauth/mock_sync_scheduler.h"
22 #include "components/proximity_auth/cryptauth/pref_names.h"
23 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
25 25
26 using ::testing::_; 26 using ::testing::_;
27 using ::testing::DoAll; 27 using ::testing::DoAll;
28 using ::testing::NiceMock; 28 using ::testing::NiceMock;
29 using ::testing::Return; 29 using ::testing::Return;
30 using ::testing::SaveArg; 30 using ::testing::SaveArg;
31 31
32 namespace proximity_auth { 32 namespace cryptauth {
33 namespace { 33 namespace {
34 34
35 // The initial "Now" time for testing. 35 // The initial "Now" time for testing.
36 const double kInitialTimeNowSeconds = 20000000; 36 const double kInitialTimeNowSeconds = 20000000;
37 37
38 // A later "Now" time for testing. 38 // A later "Now" time for testing.
39 const double kLaterTimeNowSeconds = kInitialTimeNowSeconds + 30; 39 const double kLaterTimeNowSeconds = kInitialTimeNowSeconds + 30;
40 40
41 // The timestamp of a last successful sync in seconds. 41 // The timestamp of a last successful sync in seconds.
42 const double kLastSyncTimeSeconds = kInitialTimeNowSeconds - (60 * 60 * 5); 42 const double kLastSyncTimeSeconds = kInitialTimeNowSeconds - (60 * 60 * 5);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 // the super class. 147 // the super class.
148 // This should be safe because the life-time this SyncScheduler will always be 148 // This should be safe because the life-time this SyncScheduler will always be
149 // within the life of the TestCryptAuthDeviceManager object. 149 // within the life of the TestCryptAuthDeviceManager object.
150 base::WeakPtrFactory<MockSyncScheduler> weak_sync_scheduler_factory_; 150 base::WeakPtrFactory<MockSyncScheduler> weak_sync_scheduler_factory_;
151 151
152 DISALLOW_COPY_AND_ASSIGN(TestCryptAuthDeviceManager); 152 DISALLOW_COPY_AND_ASSIGN(TestCryptAuthDeviceManager);
153 }; 153 };
154 154
155 } // namespace 155 } // namespace
156 156
157 class ProximityAuthCryptAuthDeviceManagerTest 157 class CryptAuthDeviceManagerTest
158 : public testing::Test, 158 : public testing::Test,
159 public CryptAuthDeviceManager::Observer, 159 public CryptAuthDeviceManager::Observer,
160 public MockCryptAuthClientFactory::Observer { 160 public MockCryptAuthClientFactory::Observer {
161 protected: 161 protected:
162 ProximityAuthCryptAuthDeviceManagerTest() 162 CryptAuthDeviceManagerTest()
163 : clock_(new base::SimpleTestClock()), 163 : clock_(new base::SimpleTestClock()),
164 client_factory_(new MockCryptAuthClientFactory( 164 client_factory_(new MockCryptAuthClientFactory(
165 MockCryptAuthClientFactory::MockType::MAKE_STRICT_MOCKS)), 165 MockCryptAuthClientFactory::MockType::MAKE_STRICT_MOCKS)),
166 gcm_manager_("existing gcm registration id") { 166 gcm_manager_("existing gcm registration id") {
167 client_factory_->AddObserver(this); 167 client_factory_->AddObserver(this);
168 } 168 }
169 169
170 ~ProximityAuthCryptAuthDeviceManagerTest() { 170 ~CryptAuthDeviceManagerTest() {
171 client_factory_->RemoveObserver(this); 171 client_factory_->RemoveObserver(this);
172 } 172 }
173 173
174 // testing::Test: 174 // testing::Test:
175 void SetUp() override { 175 void SetUp() override {
176 clock_->SetNow(base::Time::FromDoubleT(kInitialTimeNowSeconds)); 176 clock_->SetNow(base::Time::FromDoubleT(kInitialTimeNowSeconds));
177 177
178 CryptAuthDeviceManager::RegisterPrefs(pref_service_.registry()); 178 CryptAuthDeviceManager::RegisterPrefs(pref_service_.registry());
179 pref_service_.SetUserPref( 179 pref_service_.SetUserPref(
180 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure, 180 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 std::unique_ptr<TestCryptAuthDeviceManager> device_manager_; 297 std::unique_ptr<TestCryptAuthDeviceManager> device_manager_;
298 298
299 cryptauth::GetMyDevicesResponse get_my_devices_response_; 299 cryptauth::GetMyDevicesResponse get_my_devices_response_;
300 300
301 cryptauth::GetMyDevicesRequest get_my_devices_request_; 301 cryptauth::GetMyDevicesRequest get_my_devices_request_;
302 302
303 CryptAuthClient::GetMyDevicesCallback success_callback_; 303 CryptAuthClient::GetMyDevicesCallback success_callback_;
304 304
305 CryptAuthClient::ErrorCallback error_callback_; 305 CryptAuthClient::ErrorCallback error_callback_;
306 306
307 DISALLOW_COPY_AND_ASSIGN(ProximityAuthCryptAuthDeviceManagerTest); 307 DISALLOW_COPY_AND_ASSIGN(CryptAuthDeviceManagerTest);
308 }; 308 };
309 309
310 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, RegisterPrefs) { 310 TEST_F(CryptAuthDeviceManagerTest, RegisterPrefs) {
311 TestingPrefServiceSimple pref_service; 311 TestingPrefServiceSimple pref_service;
312 CryptAuthDeviceManager::RegisterPrefs(pref_service.registry()); 312 CryptAuthDeviceManager::RegisterPrefs(pref_service.registry());
313 EXPECT_TRUE(pref_service.FindPreference( 313 EXPECT_TRUE(pref_service.FindPreference(
314 prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds)); 314 prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds));
315 EXPECT_TRUE(pref_service.FindPreference( 315 EXPECT_TRUE(pref_service.FindPreference(
316 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure)); 316 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure));
317 EXPECT_TRUE(pref_service.FindPreference(prefs::kCryptAuthDeviceSyncReason)); 317 EXPECT_TRUE(pref_service.FindPreference(prefs::kCryptAuthDeviceSyncReason));
318 EXPECT_TRUE( 318 EXPECT_TRUE(
319 pref_service.FindPreference(prefs::kCryptAuthDeviceSyncUnlockKeys)); 319 pref_service.FindPreference(prefs::kCryptAuthDeviceSyncUnlockKeys));
320 } 320 }
321 321
322 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, GetSyncState) { 322 TEST_F(CryptAuthDeviceManagerTest, GetSyncState) {
323 device_manager_->Start(); 323 device_manager_->Start();
324 324
325 ON_CALL(*sync_scheduler(), GetStrategy()) 325 ON_CALL(*sync_scheduler(), GetStrategy())
326 .WillByDefault(Return(SyncScheduler::Strategy::PERIODIC_REFRESH)); 326 .WillByDefault(Return(SyncScheduler::Strategy::PERIODIC_REFRESH));
327 EXPECT_FALSE(device_manager_->IsRecoveringFromFailure()); 327 EXPECT_FALSE(device_manager_->IsRecoveringFromFailure());
328 328
329 ON_CALL(*sync_scheduler(), GetStrategy()) 329 ON_CALL(*sync_scheduler(), GetStrategy())
330 .WillByDefault(Return(SyncScheduler::Strategy::AGGRESSIVE_RECOVERY)); 330 .WillByDefault(Return(SyncScheduler::Strategy::AGGRESSIVE_RECOVERY));
331 EXPECT_TRUE(device_manager_->IsRecoveringFromFailure()); 331 EXPECT_TRUE(device_manager_->IsRecoveringFromFailure());
332 332
333 base::TimeDelta time_to_next_sync = base::TimeDelta::FromMinutes(60); 333 base::TimeDelta time_to_next_sync = base::TimeDelta::FromMinutes(60);
334 ON_CALL(*sync_scheduler(), GetTimeToNextSync()) 334 ON_CALL(*sync_scheduler(), GetTimeToNextSync())
335 .WillByDefault(Return(time_to_next_sync)); 335 .WillByDefault(Return(time_to_next_sync));
336 EXPECT_EQ(time_to_next_sync, device_manager_->GetTimeToNextAttempt()); 336 EXPECT_EQ(time_to_next_sync, device_manager_->GetTimeToNextAttempt());
337 337
338 ON_CALL(*sync_scheduler(), GetSyncState()) 338 ON_CALL(*sync_scheduler(), GetSyncState())
339 .WillByDefault(Return(SyncScheduler::SyncState::SYNC_IN_PROGRESS)); 339 .WillByDefault(Return(SyncScheduler::SyncState::SYNC_IN_PROGRESS));
340 EXPECT_TRUE(device_manager_->IsSyncInProgress()); 340 EXPECT_TRUE(device_manager_->IsSyncInProgress());
341 341
342 ON_CALL(*sync_scheduler(), GetSyncState()) 342 ON_CALL(*sync_scheduler(), GetSyncState())
343 .WillByDefault(Return(SyncScheduler::SyncState::WAITING_FOR_REFRESH)); 343 .WillByDefault(Return(SyncScheduler::SyncState::WAITING_FOR_REFRESH));
344 EXPECT_FALSE(device_manager_->IsSyncInProgress()); 344 EXPECT_FALSE(device_manager_->IsSyncInProgress());
345 } 345 }
346 346
347 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, InitWithDefaultPrefs) { 347 TEST_F(CryptAuthDeviceManagerTest, InitWithDefaultPrefs) {
348 std::unique_ptr<base::SimpleTestClock> clock(new base::SimpleTestClock); 348 std::unique_ptr<base::SimpleTestClock> clock(new base::SimpleTestClock);
349 clock->SetNow(base::Time::FromDoubleT(kInitialTimeNowSeconds)); 349 clock->SetNow(base::Time::FromDoubleT(kInitialTimeNowSeconds));
350 base::TimeDelta elapsed_time = clock->Now() - base::Time::FromDoubleT(0); 350 base::TimeDelta elapsed_time = clock->Now() - base::Time::FromDoubleT(0);
351 351
352 TestingPrefServiceSimple pref_service; 352 TestingPrefServiceSimple pref_service;
353 CryptAuthDeviceManager::RegisterPrefs(pref_service.registry()); 353 CryptAuthDeviceManager::RegisterPrefs(pref_service.registry());
354 354
355 TestCryptAuthDeviceManager device_manager( 355 TestCryptAuthDeviceManager device_manager(
356 std::move(clock), 356 std::move(clock),
357 base::MakeUnique<MockCryptAuthClientFactory>( 357 base::MakeUnique<MockCryptAuthClientFactory>(
358 MockCryptAuthClientFactory::MockType::MAKE_STRICT_MOCKS), 358 MockCryptAuthClientFactory::MockType::MAKE_STRICT_MOCKS),
359 &gcm_manager_, &pref_service); 359 &gcm_manager_, &pref_service);
360 360
361 EXPECT_CALL( 361 EXPECT_CALL(
362 *(device_manager.GetSyncScheduler()), 362 *(device_manager.GetSyncScheduler()),
363 Start(elapsed_time, SyncScheduler::Strategy::AGGRESSIVE_RECOVERY)); 363 Start(elapsed_time, SyncScheduler::Strategy::AGGRESSIVE_RECOVERY));
364 device_manager.Start(); 364 device_manager.Start();
365 EXPECT_TRUE(device_manager.GetLastSyncTime().is_null()); 365 EXPECT_TRUE(device_manager.GetLastSyncTime().is_null());
366 EXPECT_EQ(0u, device_manager.unlock_keys().size()); 366 EXPECT_EQ(0u, device_manager.unlock_keys().size());
367 } 367 }
368 368
369 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, InitWithExistingPrefs) { 369 TEST_F(CryptAuthDeviceManagerTest, InitWithExistingPrefs) {
370 EXPECT_CALL( 370 EXPECT_CALL(
371 *sync_scheduler(), 371 *sync_scheduler(),
372 Start(clock_->Now() - base::Time::FromDoubleT(kLastSyncTimeSeconds), 372 Start(clock_->Now() - base::Time::FromDoubleT(kLastSyncTimeSeconds),
373 SyncScheduler::Strategy::PERIODIC_REFRESH)); 373 SyncScheduler::Strategy::PERIODIC_REFRESH));
374 374
375 device_manager_->Start(); 375 device_manager_->Start();
376 EXPECT_EQ(base::Time::FromDoubleT(kLastSyncTimeSeconds), 376 EXPECT_EQ(base::Time::FromDoubleT(kLastSyncTimeSeconds),
377 device_manager_->GetLastSyncTime()); 377 device_manager_->GetLastSyncTime());
378 378
379 auto unlock_keys = device_manager_->unlock_keys(); 379 auto unlock_keys = device_manager_->unlock_keys();
380 ASSERT_EQ(1u, unlock_keys.size()); 380 ASSERT_EQ(1u, unlock_keys.size());
381 EXPECT_EQ(kStoredPublicKey, unlock_keys[0].public_key()); 381 EXPECT_EQ(kStoredPublicKey, unlock_keys[0].public_key());
382 EXPECT_EQ(kStoredDeviceName, unlock_keys[0].friendly_device_name()); 382 EXPECT_EQ(kStoredDeviceName, unlock_keys[0].friendly_device_name());
383 EXPECT_EQ(kStoredBluetoothAddress, unlock_keys[0].bluetooth_address()); 383 EXPECT_EQ(kStoredBluetoothAddress, unlock_keys[0].bluetooth_address());
384 EXPECT_TRUE(unlock_keys[0].unlock_key()); 384 EXPECT_TRUE(unlock_keys[0].unlock_key());
385 } 385 }
386 386
387 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, SyncSucceedsForFirstTime) { 387 TEST_F(CryptAuthDeviceManagerTest, SyncSucceedsForFirstTime) {
388 pref_service_.ClearPref(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds); 388 pref_service_.ClearPref(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds);
389 device_manager_->Start(); 389 device_manager_->Start();
390 390
391 FireSchedulerForSync(cryptauth::INVOCATION_REASON_INITIALIZATION); 391 FireSchedulerForSync(cryptauth::INVOCATION_REASON_INITIALIZATION);
392 ASSERT_FALSE(success_callback_.is_null()); 392 ASSERT_FALSE(success_callback_.is_null());
393 393
394 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds)); 394 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds));
395 EXPECT_CALL(*this, OnSyncFinishedProxy( 395 EXPECT_CALL(*this, OnSyncFinishedProxy(
396 CryptAuthDeviceManager::SyncResult::SUCCESS, 396 CryptAuthDeviceManager::SyncResult::SUCCESS,
397 CryptAuthDeviceManager::DeviceChangeResult::CHANGED)); 397 CryptAuthDeviceManager::DeviceChangeResult::CHANGED));
398 398
399 success_callback_.Run(get_my_devices_response_); 399 success_callback_.Run(get_my_devices_response_);
400 EXPECT_EQ(clock_->Now(), device_manager_->GetLastSyncTime()); 400 EXPECT_EQ(clock_->Now(), device_manager_->GetLastSyncTime());
401 401
402 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>( 402 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>(
403 1, get_my_devices_response_.devices(0)), 403 1, get_my_devices_response_.devices(0)),
404 device_manager_->unlock_keys(), 404 device_manager_->unlock_keys(),
405 pref_service_); 405 pref_service_);
406 } 406 }
407 407
408 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, ForceSync) { 408 TEST_F(CryptAuthDeviceManagerTest, ForceSync) {
409 device_manager_->Start(); 409 device_manager_->Start();
410 410
411 EXPECT_CALL(*sync_scheduler(), ForceSync()); 411 EXPECT_CALL(*sync_scheduler(), ForceSync());
412 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL); 412 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL);
413 413
414 FireSchedulerForSync(cryptauth::INVOCATION_REASON_MANUAL); 414 FireSchedulerForSync(cryptauth::INVOCATION_REASON_MANUAL);
415 415
416 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds)); 416 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds));
417 EXPECT_CALL(*this, OnSyncFinishedProxy( 417 EXPECT_CALL(*this, OnSyncFinishedProxy(
418 CryptAuthDeviceManager::SyncResult::SUCCESS, 418 CryptAuthDeviceManager::SyncResult::SUCCESS,
419 CryptAuthDeviceManager::DeviceChangeResult::CHANGED)); 419 CryptAuthDeviceManager::DeviceChangeResult::CHANGED));
420 success_callback_.Run(get_my_devices_response_); 420 success_callback_.Run(get_my_devices_response_);
421 EXPECT_EQ(clock_->Now(), device_manager_->GetLastSyncTime()); 421 EXPECT_EQ(clock_->Now(), device_manager_->GetLastSyncTime());
422 422
423 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>( 423 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>(
424 1, get_my_devices_response_.devices(0)), 424 1, get_my_devices_response_.devices(0)),
425 device_manager_->unlock_keys(), 425 device_manager_->unlock_keys(),
426 pref_service_); 426 pref_service_);
427 } 427 }
428 428
429 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, ForceSyncFailsThenSucceeds) { 429 TEST_F(CryptAuthDeviceManagerTest, ForceSyncFailsThenSucceeds) {
430 device_manager_->Start(); 430 device_manager_->Start();
431 EXPECT_FALSE(pref_service_.GetBoolean( 431 EXPECT_FALSE(pref_service_.GetBoolean(
432 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure)); 432 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure));
433 base::Time old_sync_time = device_manager_->GetLastSyncTime(); 433 base::Time old_sync_time = device_manager_->GetLastSyncTime();
434 434
435 // The first force sync fails. 435 // The first force sync fails.
436 EXPECT_CALL(*sync_scheduler(), ForceSync()); 436 EXPECT_CALL(*sync_scheduler(), ForceSync());
437 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL); 437 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL);
438 FireSchedulerForSync(cryptauth::INVOCATION_REASON_MANUAL); 438 FireSchedulerForSync(cryptauth::INVOCATION_REASON_MANUAL);
439 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds)); 439 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds));
(...skipping 26 matching lines...) Expand all
466 466
467 EXPECT_FLOAT_EQ( 467 EXPECT_FLOAT_EQ(
468 clock_->Now().ToDoubleT(), 468 clock_->Now().ToDoubleT(),
469 pref_service_.GetDouble(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds)); 469 pref_service_.GetDouble(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds));
470 EXPECT_EQ(static_cast<int>(cryptauth::INVOCATION_REASON_UNKNOWN), 470 EXPECT_EQ(static_cast<int>(cryptauth::INVOCATION_REASON_UNKNOWN),
471 pref_service_.GetInteger(prefs::kCryptAuthDeviceSyncReason)); 471 pref_service_.GetInteger(prefs::kCryptAuthDeviceSyncReason));
472 EXPECT_FALSE(pref_service_.GetBoolean( 472 EXPECT_FALSE(pref_service_.GetBoolean(
473 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure)); 473 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure));
474 } 474 }
475 475
476 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, PeriodicSyncFailsThenSucceeds) { 476 TEST_F(CryptAuthDeviceManagerTest, PeriodicSyncFailsThenSucceeds) {
477 device_manager_->Start(); 477 device_manager_->Start();
478 base::Time old_sync_time = device_manager_->GetLastSyncTime(); 478 base::Time old_sync_time = device_manager_->GetLastSyncTime();
479 479
480 // The first periodic sync fails. 480 // The first periodic sync fails.
481 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC); 481 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC);
482 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds)); 482 clock_->SetNow(base::Time::FromDoubleT(kLaterTimeNowSeconds));
483 EXPECT_CALL(*this, 483 EXPECT_CALL(*this,
484 OnSyncFinishedProxy( 484 OnSyncFinishedProxy(
485 CryptAuthDeviceManager::SyncResult::FAILURE, 485 CryptAuthDeviceManager::SyncResult::FAILURE,
486 CryptAuthDeviceManager::DeviceChangeResult::UNCHANGED)); 486 CryptAuthDeviceManager::DeviceChangeResult::UNCHANGED));
(...skipping 18 matching lines...) Expand all
505 device_manager_->unlock_keys(), 505 device_manager_->unlock_keys(),
506 pref_service_); 506 pref_service_);
507 507
508 EXPECT_FLOAT_EQ( 508 EXPECT_FLOAT_EQ(
509 clock_->Now().ToDoubleT(), 509 clock_->Now().ToDoubleT(),
510 pref_service_.GetDouble(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds)); 510 pref_service_.GetDouble(prefs::kCryptAuthDeviceSyncLastSyncTimeSeconds));
511 EXPECT_FALSE(pref_service_.GetBoolean( 511 EXPECT_FALSE(pref_service_.GetBoolean(
512 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure)); 512 prefs::kCryptAuthDeviceSyncIsRecoveringFromFailure));
513 } 513 }
514 514
515 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, SyncSameDevice) { 515 TEST_F(CryptAuthDeviceManagerTest, SyncSameDevice) {
516 device_manager_->Start(); 516 device_manager_->Start();
517 auto original_unlock_keys = device_manager_->unlock_keys(); 517 auto original_unlock_keys = device_manager_->unlock_keys();
518 518
519 // Sync new devices. 519 // Sync new devices.
520 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC); 520 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC);
521 ASSERT_FALSE(success_callback_.is_null()); 521 ASSERT_FALSE(success_callback_.is_null());
522 EXPECT_CALL(*this, 522 EXPECT_CALL(*this,
523 OnSyncFinishedProxy( 523 OnSyncFinishedProxy(
524 CryptAuthDeviceManager::SyncResult::SUCCESS, 524 CryptAuthDeviceManager::SyncResult::SUCCESS,
525 CryptAuthDeviceManager::DeviceChangeResult::UNCHANGED)); 525 CryptAuthDeviceManager::DeviceChangeResult::UNCHANGED));
526 526
527 // Sync the same device. 527 // Sync the same device.
528 cryptauth::ExternalDeviceInfo synced_unlock_key; 528 cryptauth::ExternalDeviceInfo synced_unlock_key;
529 synced_unlock_key.set_public_key(kStoredPublicKey); 529 synced_unlock_key.set_public_key(kStoredPublicKey);
530 synced_unlock_key.set_friendly_device_name(kStoredDeviceName); 530 synced_unlock_key.set_friendly_device_name(kStoredDeviceName);
531 synced_unlock_key.set_bluetooth_address(kStoredBluetoothAddress); 531 synced_unlock_key.set_bluetooth_address(kStoredBluetoothAddress);
532 synced_unlock_key.set_unlock_key(true); 532 synced_unlock_key.set_unlock_key(true);
533 synced_unlock_key.set_unlockable(false); 533 synced_unlock_key.set_unlockable(false);
534 cryptauth::GetMyDevicesResponse get_my_devices_response; 534 cryptauth::GetMyDevicesResponse get_my_devices_response;
535 get_my_devices_response.add_devices()->CopyFrom(synced_unlock_key); 535 get_my_devices_response.add_devices()->CopyFrom(synced_unlock_key);
536 success_callback_.Run(get_my_devices_response); 536 success_callback_.Run(get_my_devices_response);
537 537
538 // Check that unlock keys are still the same after sync. 538 // Check that unlock keys are still the same after sync.
539 ExpectUnlockKeysAndPrefAreEqual( 539 ExpectUnlockKeysAndPrefAreEqual(
540 original_unlock_keys, device_manager_->unlock_keys(), pref_service_); 540 original_unlock_keys, device_manager_->unlock_keys(), pref_service_);
541 } 541 }
542 542
543 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, SyncEmptyDeviceList) { 543 TEST_F(CryptAuthDeviceManagerTest, SyncEmptyDeviceList) {
544 cryptauth::GetMyDevicesResponse empty_response; 544 cryptauth::GetMyDevicesResponse empty_response;
545 545
546 device_manager_->Start(); 546 device_manager_->Start();
547 EXPECT_EQ(1u, device_manager_->unlock_keys().size()); 547 EXPECT_EQ(1u, device_manager_->unlock_keys().size());
548 548
549 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC); 549 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC);
550 ASSERT_FALSE(success_callback_.is_null()); 550 ASSERT_FALSE(success_callback_.is_null());
551 EXPECT_CALL(*this, OnSyncFinishedProxy( 551 EXPECT_CALL(*this, OnSyncFinishedProxy(
552 CryptAuthDeviceManager::SyncResult::SUCCESS, 552 CryptAuthDeviceManager::SyncResult::SUCCESS,
553 CryptAuthDeviceManager::DeviceChangeResult::CHANGED)); 553 CryptAuthDeviceManager::DeviceChangeResult::CHANGED));
554 success_callback_.Run(empty_response); 554 success_callback_.Run(empty_response);
555 555
556 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>(), 556 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>(),
557 device_manager_->unlock_keys(), 557 device_manager_->unlock_keys(),
558 pref_service_); 558 pref_service_);
559 } 559 }
560 560
561 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, SyncTwoUnlockKeys) { 561 TEST_F(CryptAuthDeviceManagerTest, SyncTwoUnlockKeys) {
562 cryptauth::GetMyDevicesResponse response(get_my_devices_response_); 562 cryptauth::GetMyDevicesResponse response(get_my_devices_response_);
563 cryptauth::ExternalDeviceInfo unlock_key2; 563 cryptauth::ExternalDeviceInfo unlock_key2;
564 unlock_key2.set_public_key("new public key"); 564 unlock_key2.set_public_key("new public key");
565 unlock_key2.set_friendly_device_name("new device name"); 565 unlock_key2.set_friendly_device_name("new device name");
566 unlock_key2.set_bluetooth_address("aa:bb:cc:dd:ee:ff"); 566 unlock_key2.set_bluetooth_address("aa:bb:cc:dd:ee:ff");
567 unlock_key2.set_unlock_key(true); 567 unlock_key2.set_unlock_key(true);
568 response.add_devices()->CopyFrom(unlock_key2); 568 response.add_devices()->CopyFrom(unlock_key2);
569 569
570 std::vector<cryptauth::ExternalDeviceInfo> expected_unlock_keys; 570 std::vector<cryptauth::ExternalDeviceInfo> expected_unlock_keys;
571 expected_unlock_keys.push_back(get_my_devices_response_.devices(0)); 571 expected_unlock_keys.push_back(get_my_devices_response_.devices(0));
572 expected_unlock_keys.push_back(unlock_key2); 572 expected_unlock_keys.push_back(unlock_key2);
573 573
574 device_manager_->Start(); 574 device_manager_->Start();
575 EXPECT_EQ(1u, device_manager_->unlock_keys().size()); 575 EXPECT_EQ(1u, device_manager_->unlock_keys().size());
576 EXPECT_EQ(1u, pref_service_.GetList(prefs::kCryptAuthDeviceSyncUnlockKeys) 576 EXPECT_EQ(1u, pref_service_.GetList(prefs::kCryptAuthDeviceSyncUnlockKeys)
577 ->GetSize()); 577 ->GetSize());
578 578
579 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC); 579 FireSchedulerForSync(cryptauth::INVOCATION_REASON_PERIODIC);
580 ASSERT_FALSE(success_callback_.is_null()); 580 ASSERT_FALSE(success_callback_.is_null());
581 EXPECT_CALL(*this, OnSyncFinishedProxy( 581 EXPECT_CALL(*this, OnSyncFinishedProxy(
582 CryptAuthDeviceManager::SyncResult::SUCCESS, 582 CryptAuthDeviceManager::SyncResult::SUCCESS,
583 CryptAuthDeviceManager::DeviceChangeResult::CHANGED)); 583 CryptAuthDeviceManager::DeviceChangeResult::CHANGED));
584 success_callback_.Run(response); 584 success_callback_.Run(response);
585 585
586 ExpectUnlockKeysAndPrefAreEqual( 586 ExpectUnlockKeysAndPrefAreEqual(
587 expected_unlock_keys, device_manager_->unlock_keys(), pref_service_); 587 expected_unlock_keys, device_manager_->unlock_keys(), pref_service_);
588 } 588 }
589 589
590 TEST_F(ProximityAuthCryptAuthDeviceManagerTest, SyncOnGCMPushMessage) { 590 TEST_F(CryptAuthDeviceManagerTest, SyncOnGCMPushMessage) {
591 device_manager_->Start(); 591 device_manager_->Start();
592 592
593 EXPECT_CALL(*sync_scheduler(), ForceSync()); 593 EXPECT_CALL(*sync_scheduler(), ForceSync());
594 gcm_manager_.PushResyncMessage(); 594 gcm_manager_.PushResyncMessage();
595 595
596 FireSchedulerForSync(cryptauth::INVOCATION_REASON_SERVER_INITIATED); 596 FireSchedulerForSync(cryptauth::INVOCATION_REASON_SERVER_INITIATED);
597 597
598 EXPECT_CALL(*this, OnSyncFinishedProxy( 598 EXPECT_CALL(*this, OnSyncFinishedProxy(
599 CryptAuthDeviceManager::SyncResult::SUCCESS, 599 CryptAuthDeviceManager::SyncResult::SUCCESS,
600 CryptAuthDeviceManager::DeviceChangeResult::CHANGED)); 600 CryptAuthDeviceManager::DeviceChangeResult::CHANGED));
601 success_callback_.Run(get_my_devices_response_); 601 success_callback_.Run(get_my_devices_response_);
602 602
603 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>( 603 ExpectUnlockKeysAndPrefAreEqual(std::vector<cryptauth::ExternalDeviceInfo>(
604 1, get_my_devices_response_.devices(0)), 604 1, get_my_devices_response_.devices(0)),
605 device_manager_->unlock_keys(), 605 device_manager_->unlock_keys(),
606 pref_service_); 606 pref_service_);
607 } 607 }
608 608
609 } // namespace proximity_auth 609 } // namespace cryptauth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698