| 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 "components/browser_sync/profile_sync_service.h" | 5 #include "components/browser_sync/profile_sync_service.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 #include "components/sync/driver/sync_service_observer.h" | 40 #include "components/sync/driver/sync_service_observer.h" |
| 41 #include "components/sync/driver/sync_util.h" | 41 #include "components/sync/driver/sync_util.h" |
| 42 #include "components/syncable_prefs/testing_pref_service_syncable.h" | 42 #include "components/syncable_prefs/testing_pref_service_syncable.h" |
| 43 #include "components/version_info/version_info.h" | 43 #include "components/version_info/version_info.h" |
| 44 #include "components/version_info/version_info_values.h" | 44 #include "components/version_info/version_info_values.h" |
| 45 #include "google_apis/gaia/gaia_constants.h" | 45 #include "google_apis/gaia/gaia_constants.h" |
| 46 #include "testing/gmock/include/gmock/gmock.h" | 46 #include "testing/gmock/include/gmock/gmock.h" |
| 47 #include "testing/gtest/include/gtest/gtest.h" | 47 #include "testing/gtest/include/gtest/gtest.h" |
| 48 #include "ui/base/l10n/l10n_util.h" | 48 #include "ui/base/l10n/l10n_util.h" |
| 49 | 49 |
| 50 using syncer::SyncBackendHostMock; |
| 50 using testing::Return; | 51 using testing::Return; |
| 51 | 52 |
| 52 namespace browser_sync { | 53 namespace browser_sync { |
| 53 | 54 |
| 54 namespace { | 55 namespace { |
| 55 | 56 |
| 56 const char kGaiaId[] = "12345"; | 57 const char kGaiaId[] = "12345"; |
| 57 const char kEmail[] = "test_user@gmail.com"; | 58 const char kEmail[] = "test_user@gmail.com"; |
| 58 | 59 |
| 59 class FakeDataTypeManager : public sync_driver::DataTypeManager { | 60 class FakeDataTypeManager : public syncer::DataTypeManager { |
| 60 public: | 61 public: |
| 61 typedef base::Callback<void(syncer::ConfigureReason)> ConfigureCalled; | 62 typedef base::Callback<void(syncer::ConfigureReason)> ConfigureCalled; |
| 62 | 63 |
| 63 explicit FakeDataTypeManager(const ConfigureCalled& configure_called) | 64 explicit FakeDataTypeManager(const ConfigureCalled& configure_called) |
| 64 : configure_called_(configure_called) {} | 65 : configure_called_(configure_called) {} |
| 65 | 66 |
| 66 ~FakeDataTypeManager() override{}; | 67 ~FakeDataTypeManager() override{}; |
| 67 | 68 |
| 68 void Configure(syncer::ModelTypeSet desired_types, | 69 void Configure(syncer::ModelTypeSet desired_types, |
| 69 syncer::ConfigureReason reason) override { | 70 syncer::ConfigureReason reason) override { |
| 70 DCHECK(!configure_called_.is_null()); | 71 DCHECK(!configure_called_.is_null()); |
| 71 configure_called_.Run(reason); | 72 configure_called_.Run(reason); |
| 72 } | 73 } |
| 73 | 74 |
| 74 void ReenableType(syncer::ModelType type) override {} | 75 void ReenableType(syncer::ModelType type) override {} |
| 75 void ResetDataTypeErrors() override {} | 76 void ResetDataTypeErrors() override {} |
| 76 void PurgeForMigration(syncer::ModelTypeSet undesired_types, | 77 void PurgeForMigration(syncer::ModelTypeSet undesired_types, |
| 77 syncer::ConfigureReason reason) override {} | 78 syncer::ConfigureReason reason) override {} |
| 78 void Stop() override{}; | 79 void Stop() override{}; |
| 79 State state() const override { | 80 State state() const override { return syncer::DataTypeManager::CONFIGURED; }; |
| 80 return sync_driver::DataTypeManager::CONFIGURED; | |
| 81 }; | |
| 82 | 81 |
| 83 private: | 82 private: |
| 84 ConfigureCalled configure_called_; | 83 ConfigureCalled configure_called_; |
| 85 }; | 84 }; |
| 86 | 85 |
| 87 ACTION_P(ReturnNewDataTypeManager, configure_called) { | 86 ACTION_P(ReturnNewDataTypeManager, configure_called) { |
| 88 return new FakeDataTypeManager(configure_called); | 87 return new FakeDataTypeManager(configure_called); |
| 89 } | 88 } |
| 90 | 89 |
| 91 using testing::Return; | 90 using testing::Return; |
| 92 using testing::StrictMock; | 91 using testing::StrictMock; |
| 93 using testing::_; | 92 using testing::_; |
| 94 | 93 |
| 95 class TestSyncServiceObserver : public sync_driver::SyncServiceObserver { | 94 class TestSyncServiceObserver : public syncer::SyncServiceObserver { |
| 96 public: | 95 public: |
| 97 explicit TestSyncServiceObserver(ProfileSyncService* service) | 96 explicit TestSyncServiceObserver(ProfileSyncService* service) |
| 98 : service_(service), setup_in_progress_(false) {} | 97 : service_(service), setup_in_progress_(false) {} |
| 99 void OnStateChanged() override { | 98 void OnStateChanged() override { |
| 100 setup_in_progress_ = service_->IsSetupInProgress(); | 99 setup_in_progress_ = service_->IsSetupInProgress(); |
| 101 } | 100 } |
| 102 bool setup_in_progress() const { return setup_in_progress_; } | 101 bool setup_in_progress() const { return setup_in_progress_; } |
| 103 | 102 |
| 104 private: | 103 private: |
| 105 ProfileSyncService* service_; | 104 ProfileSyncService* service_; |
| 106 bool setup_in_progress_; | 105 bool setup_in_progress_; |
| 107 }; | 106 }; |
| 108 | 107 |
| 109 // A variant of the SyncBackendHostMock that won't automatically | 108 // A variant of the SyncBackendHostMock that won't automatically |
| 110 // call back when asked to initialized. Allows us to test things | 109 // call back when asked to initialized. Allows us to test things |
| 111 // that could happen while backend init is in progress. | 110 // that could happen while backend init is in progress. |
| 112 class SyncBackendHostNoReturn : public SyncBackendHostMock { | 111 class SyncBackendHostNoReturn : public SyncBackendHostMock { |
| 113 void Initialize( | 112 void Initialize( |
| 114 sync_driver::SyncFrontend* frontend, | 113 syncer::SyncFrontend* frontend, |
| 115 std::unique_ptr<base::Thread> sync_thread, | 114 std::unique_ptr<base::Thread> sync_thread, |
| 116 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, | 115 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, |
| 117 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, | 116 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, |
| 118 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, | 117 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, |
| 119 const GURL& service_url, | 118 const GURL& service_url, |
| 120 const std::string& sync_user_agent, | 119 const std::string& sync_user_agent, |
| 121 const syncer::SyncCredentials& credentials, | 120 const syncer::SyncCredentials& credentials, |
| 122 bool delete_sync_data_folder, | 121 bool delete_sync_data_folder, |
| 123 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, | 122 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, |
| 124 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& | 123 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& |
| 125 unrecoverable_error_handler, | 124 unrecoverable_error_handler, |
| 126 const base::Closure& report_unrecoverable_error_function, | 125 const base::Closure& report_unrecoverable_error_function, |
| 127 const HttpPostProviderFactoryGetter& http_post_provider_factory_getter, | 126 const HttpPostProviderFactoryGetter& http_post_provider_factory_getter, |
| 128 std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState> | 127 std::unique_ptr<syncer::SyncEncryptionHandler::NigoriState> |
| 129 saved_nigori_state) override {} | 128 saved_nigori_state) override {} |
| 130 }; | 129 }; |
| 131 | 130 |
| 132 class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { | 131 class SyncBackendHostMockCollectDeleteDirParam : public SyncBackendHostMock { |
| 133 public: | 132 public: |
| 134 explicit SyncBackendHostMockCollectDeleteDirParam( | 133 explicit SyncBackendHostMockCollectDeleteDirParam( |
| 135 std::vector<bool>* delete_dir_param) | 134 std::vector<bool>* delete_dir_param) |
| 136 : delete_dir_param_(delete_dir_param) {} | 135 : delete_dir_param_(delete_dir_param) {} |
| 137 | 136 |
| 138 void Initialize( | 137 void Initialize( |
| 139 sync_driver::SyncFrontend* frontend, | 138 syncer::SyncFrontend* frontend, |
| 140 std::unique_ptr<base::Thread> sync_thread, | 139 std::unique_ptr<base::Thread> sync_thread, |
| 141 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, | 140 const scoped_refptr<base::SingleThreadTaskRunner>& db_thread, |
| 142 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, | 141 const scoped_refptr<base::SingleThreadTaskRunner>& file_thread, |
| 143 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, | 142 const syncer::WeakHandle<syncer::JsEventHandler>& event_handler, |
| 144 const GURL& service_url, | 143 const GURL& service_url, |
| 145 const std::string& sync_user_agent, | 144 const std::string& sync_user_agent, |
| 146 const syncer::SyncCredentials& credentials, | 145 const syncer::SyncCredentials& credentials, |
| 147 bool delete_sync_data_folder, | 146 bool delete_sync_data_folder, |
| 148 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, | 147 std::unique_ptr<syncer::SyncManagerFactory> sync_manager_factory, |
| 149 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& | 148 const syncer::WeakHandle<syncer::UnrecoverableErrorHandler>& |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 signin_manager()->SetAuthenticatedAccountInfo(kGaiaId, kEmail); | 240 signin_manager()->SetAuthenticatedAccountInfo(kGaiaId, kEmail); |
| 242 component_factory_ = profile_sync_service_bundle_.component_factory(); | 241 component_factory_ = profile_sync_service_bundle_.component_factory(); |
| 243 ProfileSyncServiceBundle::SyncClientBuilder builder( | 242 ProfileSyncServiceBundle::SyncClientBuilder builder( |
| 244 &profile_sync_service_bundle_); | 243 &profile_sync_service_bundle_); |
| 245 ProfileSyncService::InitParams init_params = | 244 ProfileSyncService::InitParams init_params = |
| 246 profile_sync_service_bundle_.CreateBasicInitParams(behavior, | 245 profile_sync_service_bundle_.CreateBasicInitParams(behavior, |
| 247 builder.Build()); | 246 builder.Build()); |
| 248 | 247 |
| 249 service_.reset(new ProfileSyncService(std::move(init_params))); | 248 service_.reset(new ProfileSyncService(std::move(init_params))); |
| 250 service_->RegisterDataTypeController( | 249 service_->RegisterDataTypeController( |
| 251 base::MakeUnique<sync_driver::FakeDataTypeController>( | 250 base::MakeUnique<syncer::FakeDataTypeController>(syncer::BOOKMARKS)); |
| 252 syncer::BOOKMARKS)); | |
| 253 } | 251 } |
| 254 | 252 |
| 255 #if defined(OS_WIN) || defined(OS_MACOSX) || \ | 253 #if defined(OS_WIN) || defined(OS_MACOSX) || \ |
| 256 (defined(OS_LINUX) && !defined(OS_CHROMEOS)) | 254 (defined(OS_LINUX) && !defined(OS_CHROMEOS)) |
| 257 void CreateServiceWithoutSignIn() { | 255 void CreateServiceWithoutSignIn() { |
| 258 CreateService(ProfileSyncService::AUTO_START); | 256 CreateService(ProfileSyncService::AUTO_START); |
| 259 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, | 257 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, |
| 260 signin_metrics::SignoutDelete::IGNORE_METRIC); | 258 signin_metrics::SignoutDelete::IGNORE_METRIC); |
| 261 } | 259 } |
| 262 #endif | 260 #endif |
| 263 | 261 |
| 264 void ShutdownAndDeleteService() { | 262 void ShutdownAndDeleteService() { |
| 265 if (service_) | 263 if (service_) |
| 266 service_->Shutdown(); | 264 service_->Shutdown(); |
| 267 service_.reset(); | 265 service_.reset(); |
| 268 } | 266 } |
| 269 | 267 |
| 270 void InitializeForNthSync() { | 268 void InitializeForNthSync() { |
| 271 // Set first sync time before initialize to simulate a complete sync setup. | 269 // Set first sync time before initialize to simulate a complete sync setup. |
| 272 sync_driver::SyncPrefs sync_prefs(prefs()); | 270 syncer::SyncPrefs sync_prefs(prefs()); |
| 273 sync_prefs.SetFirstSyncTime(base::Time::Now()); | 271 sync_prefs.SetFirstSyncTime(base::Time::Now()); |
| 274 sync_prefs.SetFirstSetupComplete(); | 272 sync_prefs.SetFirstSetupComplete(); |
| 275 sync_prefs.SetKeepEverythingSynced(true); | 273 sync_prefs.SetKeepEverythingSynced(true); |
| 276 service_->Initialize(); | 274 service_->Initialize(); |
| 277 } | 275 } |
| 278 | 276 |
| 279 void InitializeForFirstSync() { service_->Initialize(); } | 277 void InitializeForFirstSync() { service_->Initialize(); } |
| 280 | 278 |
| 281 void TriggerPassphraseRequired() { | 279 void TriggerPassphraseRequired() { |
| 282 service_->OnPassphraseRequired(syncer::REASON_DECRYPTION, | 280 service_->OnPassphraseRequired(syncer::REASON_DECRYPTION, |
| 283 sync_pb::EncryptedData()); | 281 sync_pb::EncryptedData()); |
| 284 } | 282 } |
| 285 | 283 |
| 286 void TriggerDataTypeStartRequest() { | 284 void TriggerDataTypeStartRequest() { |
| 287 service_->OnDataTypeRequestsSyncStartup(syncer::BOOKMARKS); | 285 service_->OnDataTypeRequestsSyncStartup(syncer::BOOKMARKS); |
| 288 } | 286 } |
| 289 | 287 |
| 290 void OnConfigureCalled(syncer::ConfigureReason configure_reason) { | 288 void OnConfigureCalled(syncer::ConfigureReason configure_reason) { |
| 291 sync_driver::DataTypeManager::ConfigureResult result; | 289 syncer::DataTypeManager::ConfigureResult result; |
| 292 result.status = sync_driver::DataTypeManager::OK; | 290 result.status = syncer::DataTypeManager::OK; |
| 293 service()->OnConfigureDone(result); | 291 service()->OnConfigureDone(result); |
| 294 } | 292 } |
| 295 | 293 |
| 296 FakeDataTypeManager::ConfigureCalled GetDefaultConfigureCalledCallback() { | 294 FakeDataTypeManager::ConfigureCalled GetDefaultConfigureCalledCallback() { |
| 297 return base::Bind(&ProfileSyncServiceTest::OnConfigureCalled, | 295 return base::Bind(&ProfileSyncServiceTest::OnConfigureCalled, |
| 298 base::Unretained(this)); | 296 base::Unretained(this)); |
| 299 } | 297 } |
| 300 | 298 |
| 301 void OnConfigureCalledRecordReason(syncer::ConfigureReason* reason_dest, | 299 void OnConfigureCalledRecordReason(syncer::ConfigureReason* reason_dest, |
| 302 syncer::ConfigureReason reason) { | 300 syncer::ConfigureReason reason) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 ProfileOAuth2TokenService* auth_service() { | 360 ProfileOAuth2TokenService* auth_service() { |
| 363 return profile_sync_service_bundle_.auth_service(); | 361 return profile_sync_service_bundle_.auth_service(); |
| 364 } | 362 } |
| 365 | 363 |
| 366 ProfileSyncService* service() { return service_.get(); } | 364 ProfileSyncService* service() { return service_.get(); } |
| 367 | 365 |
| 368 syncable_prefs::TestingPrefServiceSyncable* prefs() { | 366 syncable_prefs::TestingPrefServiceSyncable* prefs() { |
| 369 return profile_sync_service_bundle_.pref_service(); | 367 return profile_sync_service_bundle_.pref_service(); |
| 370 } | 368 } |
| 371 | 369 |
| 372 SyncApiComponentFactoryMock* component_factory() { | 370 syncer::SyncApiComponentFactoryMock* component_factory() { |
| 373 return component_factory_; | 371 return component_factory_; |
| 374 } | 372 } |
| 375 | 373 |
| 376 protected: | 374 protected: |
| 377 void PumpLoop() { | 375 void PumpLoop() { |
| 378 base::RunLoop run_loop; | 376 base::RunLoop run_loop; |
| 379 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, | 377 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, |
| 380 run_loop.QuitClosure()); | 378 run_loop.QuitClosure()); |
| 381 run_loop.Run(); | 379 run_loop.Run(); |
| 382 } | 380 } |
| 383 | 381 |
| 384 private: | 382 private: |
| 385 base::MessageLoop message_loop_; | 383 base::MessageLoop message_loop_; |
| 386 ProfileSyncServiceBundle profile_sync_service_bundle_; | 384 ProfileSyncServiceBundle profile_sync_service_bundle_; |
| 387 std::unique_ptr<ProfileSyncService> service_; | 385 std::unique_ptr<ProfileSyncService> service_; |
| 388 | 386 |
| 389 // The current component factory used by sync. May be null if the server | 387 // The current component factory used by sync. May be null if the server |
| 390 // hasn't been created yet. | 388 // hasn't been created yet. |
| 391 SyncApiComponentFactoryMock* component_factory_; | 389 syncer::SyncApiComponentFactoryMock* component_factory_; |
| 392 }; | 390 }; |
| 393 | 391 |
| 394 // Verify that the server URLs are sane. | 392 // Verify that the server URLs are sane. |
| 395 TEST_F(ProfileSyncServiceTest, InitialState) { | 393 TEST_F(ProfileSyncServiceTest, InitialState) { |
| 396 CreateService(ProfileSyncService::AUTO_START); | 394 CreateService(ProfileSyncService::AUTO_START); |
| 397 InitializeForNthSync(); | 395 InitializeForNthSync(); |
| 398 const std::string& url = service()->sync_service_url().spec(); | 396 const std::string& url = service()->sync_service_url().spec(); |
| 399 EXPECT_TRUE(url == internal::kSyncServerUrl || | 397 EXPECT_TRUE(url == syncer::internal::kSyncServerUrl || |
| 400 url == internal::kSyncDevServerUrl); | 398 url == syncer::internal::kSyncDevServerUrl); |
| 401 } | 399 } |
| 402 | 400 |
| 403 // Verify a successful initialization. | 401 // Verify a successful initialization. |
| 404 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { | 402 TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { |
| 405 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, | 403 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, |
| 406 new base::FundamentalValue(false)); | 404 new base::FundamentalValue(false)); |
| 407 IssueTestTokens(); | 405 IssueTestTokens(); |
| 408 CreateService(ProfileSyncService::AUTO_START); | 406 CreateService(ProfileSyncService::AUTO_START); |
| 409 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 407 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 410 ExpectSyncBackendHostCreation(1); | 408 ExpectSyncBackendHostCreation(1); |
| 411 InitializeForNthSync(); | 409 InitializeForNthSync(); |
| 412 EXPECT_FALSE(service()->IsManaged()); | 410 EXPECT_FALSE(service()->IsManaged()); |
| 413 EXPECT_TRUE(service()->IsSyncActive()); | 411 EXPECT_TRUE(service()->IsSyncActive()); |
| 414 } | 412 } |
| 415 | 413 |
| 416 // Verify that an initialization where first setup is not complete does not | 414 // Verify that an initialization where first setup is not complete does not |
| 417 // start up the backend. | 415 // start up the backend. |
| 418 TEST_F(ProfileSyncServiceTest, NeedsConfirmation) { | 416 TEST_F(ProfileSyncServiceTest, NeedsConfirmation) { |
| 419 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, | 417 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, |
| 420 new base::FundamentalValue(false)); | 418 new base::FundamentalValue(false)); |
| 421 IssueTestTokens(); | 419 IssueTestTokens(); |
| 422 CreateService(ProfileSyncService::MANUAL_START); | 420 CreateService(ProfileSyncService::MANUAL_START); |
| 423 sync_driver::SyncPrefs sync_prefs(prefs()); | 421 syncer::SyncPrefs sync_prefs(prefs()); |
| 424 base::Time now = base::Time::Now(); | 422 base::Time now = base::Time::Now(); |
| 425 sync_prefs.SetLastSyncedTime(now); | 423 sync_prefs.SetLastSyncedTime(now); |
| 426 sync_prefs.SetKeepEverythingSynced(true); | 424 sync_prefs.SetKeepEverythingSynced(true); |
| 427 service()->Initialize(); | 425 service()->Initialize(); |
| 428 EXPECT_FALSE(service()->IsSyncActive()); | 426 EXPECT_FALSE(service()->IsSyncActive()); |
| 429 | 427 |
| 430 // The last sync time shouldn't be cleared. | 428 // The last sync time shouldn't be cleared. |
| 431 // TODO(zea): figure out a way to check that the directory itself wasn't | 429 // TODO(zea): figure out a way to check that the directory itself wasn't |
| 432 // cleared. | 430 // cleared. |
| 433 EXPECT_EQ(now, sync_prefs.GetLastSyncedTime()); | 431 EXPECT_EQ(now, sync_prefs.GetLastSyncedTime()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 445 auto sync_blocker = service()->GetSetupInProgressHandle(); | 443 auto sync_blocker = service()->GetSetupInProgressHandle(); |
| 446 EXPECT_TRUE(observer.setup_in_progress()); | 444 EXPECT_TRUE(observer.setup_in_progress()); |
| 447 sync_blocker.reset(); | 445 sync_blocker.reset(); |
| 448 EXPECT_FALSE(observer.setup_in_progress()); | 446 EXPECT_FALSE(observer.setup_in_progress()); |
| 449 | 447 |
| 450 service()->RemoveObserver(&observer); | 448 service()->RemoveObserver(&observer); |
| 451 } | 449 } |
| 452 | 450 |
| 453 // Verify that disable by enterprise policy works. | 451 // Verify that disable by enterprise policy works. |
| 454 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { | 452 TEST_F(ProfileSyncServiceTest, DisabledByPolicyBeforeInit) { |
| 455 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, | 453 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, |
| 456 new base::FundamentalValue(true)); | 454 new base::FundamentalValue(true)); |
| 457 IssueTestTokens(); | 455 IssueTestTokens(); |
| 458 CreateService(ProfileSyncService::AUTO_START); | 456 CreateService(ProfileSyncService::AUTO_START); |
| 459 InitializeForNthSync(); | 457 InitializeForNthSync(); |
| 460 EXPECT_TRUE(service()->IsManaged()); | 458 EXPECT_TRUE(service()->IsManaged()); |
| 461 EXPECT_FALSE(service()->IsSyncActive()); | 459 EXPECT_FALSE(service()->IsSyncActive()); |
| 462 } | 460 } |
| 463 | 461 |
| 464 // Verify that disable by enterprise policy works even after the backend has | 462 // Verify that disable by enterprise policy works even after the backend has |
| 465 // been initialized. | 463 // been initialized. |
| 466 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { | 464 TEST_F(ProfileSyncServiceTest, DisabledByPolicyAfterInit) { |
| 467 IssueTestTokens(); | 465 IssueTestTokens(); |
| 468 CreateService(ProfileSyncService::AUTO_START); | 466 CreateService(ProfileSyncService::AUTO_START); |
| 469 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 467 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 470 ExpectSyncBackendHostCreation(1); | 468 ExpectSyncBackendHostCreation(1); |
| 471 InitializeForNthSync(); | 469 InitializeForNthSync(); |
| 472 | 470 |
| 473 EXPECT_FALSE(service()->IsManaged()); | 471 EXPECT_FALSE(service()->IsManaged()); |
| 474 EXPECT_TRUE(service()->IsSyncActive()); | 472 EXPECT_TRUE(service()->IsSyncActive()); |
| 475 | 473 |
| 476 prefs()->SetManagedPref(sync_driver::prefs::kSyncManaged, | 474 prefs()->SetManagedPref(syncer::prefs::kSyncManaged, |
| 477 new base::FundamentalValue(true)); | 475 new base::FundamentalValue(true)); |
| 478 | 476 |
| 479 EXPECT_TRUE(service()->IsManaged()); | 477 EXPECT_TRUE(service()->IsManaged()); |
| 480 EXPECT_FALSE(service()->IsSyncActive()); | 478 EXPECT_FALSE(service()->IsSyncActive()); |
| 481 } | 479 } |
| 482 | 480 |
| 483 // Exercies the ProfileSyncService's code paths related to getting shut down | 481 // Exercies the ProfileSyncService's code paths related to getting shut down |
| 484 // before the backend initialize call returns. | 482 // before the backend initialize call returns. |
| 485 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { | 483 TEST_F(ProfileSyncServiceTest, AbortedByShutdown) { |
| 486 CreateService(ProfileSyncService::AUTO_START); | 484 CreateService(ProfileSyncService::AUTO_START); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 516 | 514 |
| 517 // Test RequestStop() after we've initialized the backend. | 515 // Test RequestStop() after we've initialized the backend. |
| 518 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { | 516 TEST_F(ProfileSyncServiceTest, DisableAndEnableSyncTemporarily) { |
| 519 CreateService(ProfileSyncService::AUTO_START); | 517 CreateService(ProfileSyncService::AUTO_START); |
| 520 IssueTestTokens(); | 518 IssueTestTokens(); |
| 521 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 519 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 522 ExpectSyncBackendHostCreation(1); | 520 ExpectSyncBackendHostCreation(1); |
| 523 InitializeForNthSync(); | 521 InitializeForNthSync(); |
| 524 | 522 |
| 525 EXPECT_TRUE(service()->IsSyncActive()); | 523 EXPECT_TRUE(service()->IsSyncActive()); |
| 526 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 524 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); |
| 527 | 525 |
| 528 testing::Mock::VerifyAndClearExpectations(component_factory()); | 526 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 529 | 527 |
| 530 service()->RequestStop(ProfileSyncService::KEEP_DATA); | 528 service()->RequestStop(ProfileSyncService::KEEP_DATA); |
| 531 EXPECT_FALSE(service()->IsSyncActive()); | 529 EXPECT_FALSE(service()->IsSyncActive()); |
| 532 EXPECT_TRUE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 530 EXPECT_TRUE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); |
| 533 | 531 |
| 534 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 532 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 535 ExpectSyncBackendHostCreation(1); | 533 ExpectSyncBackendHostCreation(1); |
| 536 | 534 |
| 537 service()->RequestStart(); | 535 service()->RequestStart(); |
| 538 EXPECT_TRUE(service()->IsSyncActive()); | 536 EXPECT_TRUE(service()->IsSyncActive()); |
| 539 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 537 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); |
| 540 } | 538 } |
| 541 | 539 |
| 542 // Certain ProfileSyncService tests don't apply to Chrome OS, for example | 540 // Certain ProfileSyncService tests don't apply to Chrome OS, for example |
| 543 // things that deal with concepts like "signing out" and policy. | 541 // things that deal with concepts like "signing out" and policy. |
| 544 #if !defined(OS_CHROMEOS) | 542 #if !defined(OS_CHROMEOS) |
| 545 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { | 543 TEST_F(ProfileSyncServiceTest, EnableSyncAndSignOut) { |
| 546 CreateService(ProfileSyncService::AUTO_START); | 544 CreateService(ProfileSyncService::AUTO_START); |
| 547 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 545 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 548 ExpectSyncBackendHostCreation(1); | 546 ExpectSyncBackendHostCreation(1); |
| 549 IssueTestTokens(); | 547 IssueTestTokens(); |
| 550 InitializeForNthSync(); | 548 InitializeForNthSync(); |
| 551 | 549 |
| 552 EXPECT_TRUE(service()->IsSyncActive()); | 550 EXPECT_TRUE(service()->IsSyncActive()); |
| 553 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 551 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); |
| 554 | 552 |
| 555 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, | 553 signin_manager()->SignOut(signin_metrics::SIGNOUT_TEST, |
| 556 signin_metrics::SignoutDelete::IGNORE_METRIC); | 554 signin_metrics::SignoutDelete::IGNORE_METRIC); |
| 557 EXPECT_FALSE(service()->IsSyncActive()); | 555 EXPECT_FALSE(service()->IsSyncActive()); |
| 558 } | 556 } |
| 559 #endif // !defined(OS_CHROMEOS) | 557 #endif // !defined(OS_CHROMEOS) |
| 560 | 558 |
| 561 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { | 559 TEST_F(ProfileSyncServiceTest, GetSyncTokenStatus) { |
| 562 CreateService(ProfileSyncService::AUTO_START); | 560 CreateService(ProfileSyncService::AUTO_START); |
| 563 IssueTestTokens(); | 561 IssueTestTokens(); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 | 676 |
| 679 // Test Sync will stop after receive memory pressure | 677 // Test Sync will stop after receive memory pressure |
| 680 TEST_F(ProfileSyncServiceTest, MemoryPressureRecording) { | 678 TEST_F(ProfileSyncServiceTest, MemoryPressureRecording) { |
| 681 CreateService(ProfileSyncService::AUTO_START); | 679 CreateService(ProfileSyncService::AUTO_START); |
| 682 IssueTestTokens(); | 680 IssueTestTokens(); |
| 683 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 681 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 684 ExpectSyncBackendHostCreation(1); | 682 ExpectSyncBackendHostCreation(1); |
| 685 InitializeForNthSync(); | 683 InitializeForNthSync(); |
| 686 | 684 |
| 687 EXPECT_TRUE(service()->IsSyncActive()); | 685 EXPECT_TRUE(service()->IsSyncActive()); |
| 688 EXPECT_FALSE(prefs()->GetBoolean(sync_driver::prefs::kSyncSuppressStart)); | 686 EXPECT_FALSE(prefs()->GetBoolean(syncer::prefs::kSyncSuppressStart)); |
| 689 | 687 |
| 690 testing::Mock::VerifyAndClearExpectations(component_factory()); | 688 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 691 | 689 |
| 692 sync_driver::SyncPrefs sync_prefs( | 690 syncer::SyncPrefs sync_prefs(service()->GetSyncClient()->GetPrefService()); |
| 693 service()->GetSyncClient()->GetPrefService()); | |
| 694 | 691 |
| 695 EXPECT_EQ( | 692 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), |
| 696 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), | 693 0); |
| 697 0); | |
| 698 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); | 694 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); |
| 699 | 695 |
| 700 // Simulate memory pressure notification. | 696 // Simulate memory pressure notification. |
| 701 base::MemoryPressureListener::NotifyMemoryPressure( | 697 base::MemoryPressureListener::NotifyMemoryPressure( |
| 702 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); | 698 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); |
| 703 base::RunLoop().RunUntilIdle(); | 699 base::RunLoop().RunUntilIdle(); |
| 704 | 700 |
| 705 // Verify memory pressure recorded. | 701 // Verify memory pressure recorded. |
| 706 EXPECT_EQ( | 702 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), |
| 707 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), | 703 1); |
| 708 1); | |
| 709 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); | 704 EXPECT_FALSE(sync_prefs.DidSyncShutdownCleanly()); |
| 710 | 705 |
| 711 // Simulate memory pressure notification. | 706 // Simulate memory pressure notification. |
| 712 base::MemoryPressureListener::NotifyMemoryPressure( | 707 base::MemoryPressureListener::NotifyMemoryPressure( |
| 713 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); | 708 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); |
| 714 base::RunLoop().RunUntilIdle(); | 709 base::RunLoop().RunUntilIdle(); |
| 715 ShutdownAndDeleteService(); | 710 ShutdownAndDeleteService(); |
| 716 | 711 |
| 717 // Verify memory pressure and shutdown recorded. | 712 // Verify memory pressure and shutdown recorded. |
| 718 EXPECT_EQ( | 713 EXPECT_EQ(prefs()->GetInteger(syncer::prefs::kSyncMemoryPressureWarningCount), |
| 719 prefs()->GetInteger(sync_driver::prefs::kSyncMemoryPressureWarningCount), | 714 2); |
| 720 2); | |
| 721 EXPECT_TRUE(sync_prefs.DidSyncShutdownCleanly()); | 715 EXPECT_TRUE(sync_prefs.DidSyncShutdownCleanly()); |
| 722 } | 716 } |
| 723 | 717 |
| 724 // Verify that OnLocalSetPassphraseEncryption triggers catch up configure sync | 718 // Verify that OnLocalSetPassphraseEncryption triggers catch up configure sync |
| 725 // cycle, calls ClearServerData, shuts down and restarts sync. | 719 // cycle, calls ClearServerData, shuts down and restarts sync. |
| 726 TEST_F(ProfileSyncServiceTest, OnLocalSetPassphraseEncryption) { | 720 TEST_F(ProfileSyncServiceTest, OnLocalSetPassphraseEncryption) { |
| 727 base::test::ScopedFeatureList scoped_feature_list; | 721 base::test::ScopedFeatureList scoped_feature_list; |
| 728 scoped_feature_list.InitAndEnableFeature( | 722 scoped_feature_list.InitAndEnableFeature( |
| 729 switches::kSyncClearDataOnPassphraseEncryption); | 723 switches::kSyncClearDataOnPassphraseEncryption); |
| 730 IssueTestTokens(); | 724 IssueTestTokens(); |
| 731 CreateService(ProfileSyncService::AUTO_START); | 725 CreateService(ProfileSyncService::AUTO_START); |
| 732 | 726 |
| 733 syncer::SyncManager::ClearServerDataCallback captured_callback; | 727 syncer::SyncManager::ClearServerDataCallback captured_callback; |
| 734 syncer::ConfigureReason configure_reason = syncer::CONFIGURE_REASON_UNKNOWN; | 728 syncer::ConfigureReason configure_reason = syncer::CONFIGURE_REASON_UNKNOWN; |
| 735 | 729 |
| 736 // Initialize sync, ensure that both DataTypeManager and SyncBackendHost are | 730 // Initialize sync, ensure that both DataTypeManager and SyncBackendHost are |
| 737 // initialized and DTM::Configure is called with | 731 // initialized and DTM::Configure is called with |
| 738 // CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE. | 732 // CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE. |
| 739 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); | 733 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); |
| 740 ExpectDataTypeManagerCreation( | 734 ExpectDataTypeManagerCreation( |
| 741 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 735 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
| 742 InitializeForNthSync(); | 736 InitializeForNthSync(); |
| 743 EXPECT_TRUE(service()->IsSyncActive()); | 737 EXPECT_TRUE(service()->IsSyncActive()); |
| 744 testing::Mock::VerifyAndClearExpectations(component_factory()); | 738 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 745 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 739 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
| 746 sync_driver::DataTypeManager::ConfigureResult result; | 740 syncer::DataTypeManager::ConfigureResult result; |
| 747 result.status = sync_driver::DataTypeManager::OK; | 741 result.status = syncer::DataTypeManager::OK; |
| 748 service()->OnConfigureDone(result); | 742 service()->OnConfigureDone(result); |
| 749 | 743 |
| 750 // Simulate user entering encryption passphrase. Ensure that catch up | 744 // Simulate user entering encryption passphrase. Ensure that catch up |
| 751 // configure cycle is started (DTM::Configure is called with | 745 // configure cycle is started (DTM::Configure is called with |
| 752 // CONFIGURE_REASON_CATCH_UP). | 746 // CONFIGURE_REASON_CATCH_UP). |
| 753 const syncer::SyncEncryptionHandler::NigoriState nigori_state; | 747 const syncer::SyncEncryptionHandler::NigoriState nigori_state; |
| 754 service()->OnLocalSetPassphraseEncryption(nigori_state); | 748 service()->OnLocalSetPassphraseEncryption(nigori_state); |
| 755 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 749 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
| 756 EXPECT_TRUE(captured_callback.is_null()); | 750 EXPECT_TRUE(captured_callback.is_null()); |
| 757 | 751 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 780 scoped_feature_list.InitAndEnableFeature( | 774 scoped_feature_list.InitAndEnableFeature( |
| 781 switches::kSyncClearDataOnPassphraseEncryption); | 775 switches::kSyncClearDataOnPassphraseEncryption); |
| 782 IssueTestTokens(); | 776 IssueTestTokens(); |
| 783 CreateService(ProfileSyncService::AUTO_START); | 777 CreateService(ProfileSyncService::AUTO_START); |
| 784 ExpectSyncBackendHostCreation(1); | 778 ExpectSyncBackendHostCreation(1); |
| 785 ExpectDataTypeManagerCreation( | 779 ExpectDataTypeManagerCreation( |
| 786 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 780 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
| 787 InitializeForNthSync(); | 781 InitializeForNthSync(); |
| 788 testing::Mock::VerifyAndClearExpectations(component_factory()); | 782 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 789 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 783 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
| 790 sync_driver::DataTypeManager::ConfigureResult result; | 784 syncer::DataTypeManager::ConfigureResult result; |
| 791 result.status = sync_driver::DataTypeManager::OK; | 785 result.status = syncer::DataTypeManager::OK; |
| 792 service()->OnConfigureDone(result); | 786 service()->OnConfigureDone(result); |
| 793 | 787 |
| 794 // Simulate user entering encryption passphrase. Ensure Configure was called | 788 // Simulate user entering encryption passphrase. Ensure Configure was called |
| 795 // but don't let it continue. | 789 // but don't let it continue. |
| 796 const syncer::SyncEncryptionHandler::NigoriState nigori_state; | 790 const syncer::SyncEncryptionHandler::NigoriState nigori_state; |
| 797 service()->OnLocalSetPassphraseEncryption(nigori_state); | 791 service()->OnLocalSetPassphraseEncryption(nigori_state); |
| 798 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 792 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
| 799 | 793 |
| 800 // Simulate browser restart. First configuration is a regular one. | 794 // Simulate browser restart. First configuration is a regular one. |
| 801 service()->Shutdown(); | 795 service()->Shutdown(); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 service()->Shutdown(); | 846 service()->Shutdown(); |
| 853 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); | 847 ExpectSyncBackendHostCreationCaptureClearServerData(&captured_callback); |
| 854 ExpectDataTypeManagerCreation( | 848 ExpectDataTypeManagerCreation( |
| 855 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 849 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
| 856 service()->RequestStart(); | 850 service()->RequestStart(); |
| 857 testing::Mock::VerifyAndClearExpectations(component_factory()); | 851 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 858 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 852 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
| 859 EXPECT_TRUE(captured_callback.is_null()); | 853 EXPECT_TRUE(captured_callback.is_null()); |
| 860 | 854 |
| 861 // Simulate configure successful. This time it should be catch up. | 855 // Simulate configure successful. This time it should be catch up. |
| 862 sync_driver::DataTypeManager::ConfigureResult result; | 856 syncer::DataTypeManager::ConfigureResult result; |
| 863 result.status = sync_driver::DataTypeManager::OK; | 857 result.status = syncer::DataTypeManager::OK; |
| 864 service()->OnConfigureDone(result); | 858 service()->OnConfigureDone(result); |
| 865 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); | 859 EXPECT_EQ(syncer::CONFIGURE_REASON_CATCH_UP, configure_reason); |
| 866 EXPECT_TRUE(captured_callback.is_null()); | 860 EXPECT_TRUE(captured_callback.is_null()); |
| 867 | 861 |
| 868 // Simulate catch up configure successful. Ensure that SBH::ClearServerData is | 862 // Simulate catch up configure successful. Ensure that SBH::ClearServerData is |
| 869 // called. | 863 // called. |
| 870 service()->OnConfigureDone(result); | 864 service()->OnConfigureDone(result); |
| 871 EXPECT_FALSE(captured_callback.is_null()); | 865 EXPECT_FALSE(captured_callback.is_null()); |
| 872 | 866 |
| 873 ExpectSyncBackendHostCreation(1); | 867 ExpectSyncBackendHostCreation(1); |
| 874 ExpectDataTypeManagerCreation( | 868 ExpectDataTypeManagerCreation( |
| 875 1, GetRecordingConfigureCalledCallback(&configure_reason)); | 869 1, GetRecordingConfigureCalledCallback(&configure_reason)); |
| 876 captured_callback.Run(); | 870 captured_callback.Run(); |
| 877 testing::Mock::VerifyAndClearExpectations(component_factory()); | 871 testing::Mock::VerifyAndClearExpectations(component_factory()); |
| 878 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); | 872 EXPECT_EQ(syncer::CONFIGURE_REASON_NEWLY_ENABLED_DATA_TYPE, configure_reason); |
| 879 } | 873 } |
| 880 | 874 |
| 881 // Test that the passphrase prompt due to version change logic gets triggered | 875 // Test that the passphrase prompt due to version change logic gets triggered |
| 882 // on a datatype type requesting startup, but only happens once. | 876 // on a datatype type requesting startup, but only happens once. |
| 883 TEST_F(ProfileSyncServiceTest, PassphrasePromptDueToVersion) { | 877 TEST_F(ProfileSyncServiceTest, PassphrasePromptDueToVersion) { |
| 884 IssueTestTokens(); | 878 IssueTestTokens(); |
| 885 CreateService(ProfileSyncService::AUTO_START); | 879 CreateService(ProfileSyncService::AUTO_START); |
| 886 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); | 880 ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); |
| 887 ExpectSyncBackendHostCreation(1); | 881 ExpectSyncBackendHostCreation(1); |
| 888 InitializeForNthSync(); | 882 InitializeForNthSync(); |
| 889 | 883 |
| 890 sync_driver::SyncPrefs sync_prefs( | 884 syncer::SyncPrefs sync_prefs(service()->GetSyncClient()->GetPrefService()); |
| 891 service()->GetSyncClient()->GetPrefService()); | |
| 892 EXPECT_EQ(PRODUCT_VERSION, sync_prefs.GetLastRunVersion()); | 885 EXPECT_EQ(PRODUCT_VERSION, sync_prefs.GetLastRunVersion()); |
| 893 | 886 |
| 894 sync_prefs.SetPassphrasePrompted(true); | 887 sync_prefs.SetPassphrasePrompted(true); |
| 895 | 888 |
| 896 // Until a datatype requests startup while a passphrase is required the | 889 // Until a datatype requests startup while a passphrase is required the |
| 897 // passphrase prompt bit should remain set. | 890 // passphrase prompt bit should remain set. |
| 898 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); | 891 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); |
| 899 TriggerPassphraseRequired(); | 892 TriggerPassphraseRequired(); |
| 900 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); | 893 EXPECT_TRUE(sync_prefs.IsPassphrasePrompted()); |
| 901 | 894 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 962 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if | 955 // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if |
| 963 // entry for sessions exists in map. | 956 // entry for sessions exists in map. |
| 964 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { | 957 TEST_F(ProfileSyncServiceTest, ValidPointersInDTCMap) { |
| 965 CreateService(ProfileSyncService::AUTO_START); | 958 CreateService(ProfileSyncService::AUTO_START); |
| 966 service()->OnSessionRestoreComplete(); | 959 service()->OnSessionRestoreComplete(); |
| 967 service()->OnSyncCycleCompleted(); | 960 service()->OnSyncCycleCompleted(); |
| 968 } | 961 } |
| 969 | 962 |
| 970 } // namespace | 963 } // namespace |
| 971 } // namespace browser_sync | 964 } // namespace browser_sync |
| OLD | NEW |