| 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 <utility> | 5 #include <utility> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 return new FakeDataTypeManager(configure_called); | 85 return new FakeDataTypeManager(configure_called); |
| 86 } | 86 } |
| 87 | 87 |
| 88 using testing::Return; | 88 using testing::Return; |
| 89 using testing::StrictMock; | 89 using testing::StrictMock; |
| 90 using testing::_; | 90 using testing::_; |
| 91 | 91 |
| 92 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver { | 92 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver { |
| 93 public: | 93 public: |
| 94 explicit TestSyncServiceObserver(ProfileSyncService* service) | 94 explicit TestSyncServiceObserver(ProfileSyncService* service) |
| 95 : service_(service), first_setup_in_progress_(false) {} | 95 : service_(service), setup_in_progress_(false) {} |
| 96 void OnStateChanged() override { | 96 void OnStateChanged() override { |
| 97 first_setup_in_progress_ = service_->IsFirstSetupInProgress(); | 97 setup_in_progress_ = service_->IsSetupInProgress(); |
| 98 } | 98 } |
| 99 bool first_setup_in_progress() const { return first_setup_in_progress_; } | 99 bool setup_in_progress() const { return setup_in_progress_; } |
| 100 |
| 100 private: | 101 private: |
| 101 ProfileSyncService* service_; | 102 ProfileSyncService* service_; |
| 102 bool first_setup_in_progress_; | 103 bool setup_in_progress_; |
| 103 }; | 104 }; |
| 104 | 105 |
| 105 // A variant of the SyncBackendHostMock that won't automatically | 106 // A variant of the SyncBackendHostMock that won't automatically |
| 106 // call back when asked to initialized. Allows us to test things | 107 // call back when asked to initialized. Allows us to test things |
| 107 // that could happen while backend init is in progress. | 108 // that could happen while backend init is in progress. |
| 108 class SyncBackendHostNoReturn : public SyncBackendHostMock { | 109 class SyncBackendHostNoReturn : public SyncBackendHostMock { |
| 109 void Initialize( | 110 void Initialize( |
| 110 sync_driver::SyncFrontend* frontend, | 111 sync_driver::SyncFrontend* frontend, |
| 111 scoped_ptr<base::Thread> sync_thread, | 112 scoped_ptr<base::Thread> sync_thread, |
| 112 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, | 113 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 #endif | 259 #endif |
| 259 | 260 |
| 260 void ShutdownAndDeleteService() { | 261 void ShutdownAndDeleteService() { |
| 261 if (service_) | 262 if (service_) |
| 262 service_->Shutdown(); | 263 service_->Shutdown(); |
| 263 service_.reset(); | 264 service_.reset(); |
| 264 } | 265 } |
| 265 | 266 |
| 266 void InitializeForNthSync() { | 267 void InitializeForNthSync() { |
| 267 // Set first sync time before initialize to simulate a complete sync setup. | 268 // Set first sync time before initialize to simulate a complete sync setup. |
| 268 sync_driver::SyncPrefs sync_prefs( | 269 sync_driver::SyncPrefs sync_prefs(prefs()); |
| 269 service_->GetSyncClient()->GetPrefService()); | |
| 270 sync_prefs.SetFirstSyncTime(base::Time::Now()); | 270 sync_prefs.SetFirstSyncTime(base::Time::Now()); |
| 271 sync_prefs.SetFirstSetupComplete(); | 271 sync_prefs.SetFirstSetupComplete(); |
| 272 sync_prefs.SetKeepEverythingSynced(true); | 272 sync_prefs.SetKeepEverythingSynced(true); |
| 273 service_->Initialize(); | 273 service_->Initialize(); |
| 274 } | 274 } |
| 275 | 275 |
| 276 void InitializeForFirstSync() { | 276 void InitializeForFirstSync() { |
| 277 service_->Initialize(); | 277 service_->Initialize(); |
| 278 } | 278 } |
| 279 | 279 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 // Verify that the SetSetupInProgress function call updates state | 416 // Verify that the SetSetupInProgress function call updates state |
| 417 // and notifies observers. | 417 // and notifies observers. |
| 418 TEST_F(ProfileSyncServiceTest, SetupInProgress) { | 418 TEST_F(ProfileSyncServiceTest, SetupInProgress) { |
| 419 CreateService(browser_sync::AUTO_START); | 419 CreateService(browser_sync::AUTO_START); |
| 420 InitializeForFirstSync(); | 420 InitializeForFirstSync(); |
| 421 | 421 |
| 422 TestSyncServiceObserver observer(service()); | 422 TestSyncServiceObserver observer(service()); |
| 423 service()->AddObserver(&observer); | 423 service()->AddObserver(&observer); |
| 424 | 424 |
| 425 service()->SetSetupInProgress(true); | 425 service()->SetSetupInProgress(true); |
| 426 EXPECT_TRUE(observer.first_setup_in_progress()); | 426 EXPECT_TRUE(observer.setup_in_progress()); |
| 427 service()->SetSetupInProgress(false); | 427 service()->SetSetupInProgress(false); |
| 428 EXPECT_FALSE(observer.first_setup_in_progress()); | 428 EXPECT_FALSE(observer.setup_in_progress()); |
| 429 | 429 |
| 430 service()->RemoveObserver(&observer); | 430 service()->RemoveObserver(&observer); |
| 431 } | 431 } |
| 432 | 432 |
| 433 // Verify that disable by enterprise policy works. | 433 // Verify that disable by enterprise policy works. |
| 434 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { | 434 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { |
| 435 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, | 435 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, |
| 436 new base::FundamentalValue(true)); | 436 new base::FundamentalValue(true)); |
| 437 IssueTestTokens(); | 437 IssueTestTokens(); |
| 438 CreateService(browser_sync::AUTO_START); | 438 CreateService(browser_sync::AUTO_START); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 InitializeForNthSync(); | 470 InitializeForNthSync(); |
| 471 EXPECT_FALSE(service()->IsSyncActive()); | 471 EXPECT_FALSE(service()->IsSyncActive()); |
| 472 | 472 |
| 473 ShutdownAndDeleteService(); | 473 ShutdownAndDeleteService(); |
| 474 } | 474 } |
| 475 | 475 |
| 476 // Test RequestStop() before we've initialized the backend. | 476 // Test RequestStop() before we've initialized the backend. |
| 477 TEST_F(ProfileSyncServiceTest, EarlyRequestStop) { | 477 TEST_F(ProfileSyncServiceTest, EarlyRequestStop) { |
| 478 CreateService(browser_sync::AUTO_START); | 478 CreateService(browser_sync::AUTO_START); |
| 479 IssueTestTokens(); | 479 IssueTestTokens(); |
| 480 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 481 ExpectSyncBackendHostCreation(1); |
| 480 | 482 |
| 481 service()->RequestStop(ProfileSyncService::KEEP_DATA); | 483 service()->RequestStop(ProfileSyncService::KEEP_DATA); |
| 482 EXPECT_TRUE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 484 EXPECT_FALSE(service()->IsSyncRequested()); |
| 483 | 485 |
| 484 // Because of suppression, this should fail. | 486 // Because sync is not requested, this should fail. |
| 485 sync_driver::SyncPrefs sync_prefs( | 487 InitializeForNthSync(); |
| 486 service()->GetSyncClient()->GetPrefService()); | 488 EXPECT_FALSE(service()->IsSyncRequested()); |
| 487 sync_prefs.SetFirstSyncTime(base::Time::Now()); | |
| 488 service()->Initialize(); | |
| 489 EXPECT_FALSE(service()->IsSyncActive()); | 489 EXPECT_FALSE(service()->IsSyncActive()); |
| 490 | 490 |
| 491 // Request start. This should be enough to allow init to happen. | 491 // Request start. This should be enough to allow init to happen. |
| 492 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | |
| 493 ExpectSyncBackendHostCreation(1); | |
| 494 service()->RequestStart(); | 492 service()->RequestStart(); |
| 493 EXPECT_TRUE(service()->IsSyncRequested()); |
| 495 EXPECT_TRUE(service()->IsSyncActive()); | 494 EXPECT_TRUE(service()->IsSyncActive()); |
| 496 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | |
| 497 } | 495 } |
| 498 | 496 |
| 499 // Test RequestStop() after we've initialized the backend. | 497 // Test RequestStop() after we've initialized the backend. |
| 500 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { | 498 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { |
| 501 CreateService(browser_sync::AUTO_START); | 499 CreateService(browser_sync::AUTO_START); |
| 502 IssueTestTokens(); | 500 IssueTestTokens(); |
| 503 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 501 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 504 ExpectSyncBackendHostCreation(1); | 502 ExpectSyncBackendHostCreation(1); |
| 505 InitializeForNthSync(); | 503 InitializeForNthSync(); |
| 506 | 504 |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 908 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if | 906 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if |
| 909 // entry for sessions exists in map. | 907 // entry for sessions exists in map. |
| 910 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { | 908 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { |
| 911 CreateService(browser_sync::AUTO_START); | 909 CreateService(browser_sync::AUTO_START); |
| 912 service()->OnSessionRestoreComplete(); | 910 service()->OnSessionRestoreComplete(); |
| 913 service()->OnSyncCycleCompleted(); | 911 service()->OnSyncCycleCompleted(); |
| 914 } | 912 } |
| 915 | 913 |
| 916 } // namespace | 914 } // namespace |
| 917 } // namespace browser_sync | 915 } // namespace browser_sync |
| OLD | NEW |