| 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 "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 profile_sync_service_bundle_.signin_manager()->SetAuthenticatedAccountInfo( | 124 profile_sync_service_bundle_.signin_manager()->SetAuthenticatedAccountInfo( |
| 125 kGaiaId, kEmail); | 125 kGaiaId, kEmail); |
| 126 if (sync_service) | 126 if (sync_service) |
| 127 sync_service->GoogleSigninSucceeded(account_id, kEmail, kDummyPassword); | 127 sync_service->GoogleSigninSucceeded(account_id, kEmail, kDummyPassword); |
| 128 #endif | 128 #endif |
| 129 return account_id; | 129 return account_id; |
| 130 } | 130 } |
| 131 | 131 |
| 132 DataTypeManagerMock* SetUpDataTypeManager() { | 132 DataTypeManagerMock* SetUpDataTypeManager() { |
| 133 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); | 133 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); |
| 134 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) | 134 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _, _)) |
| 135 .WillOnce(Return(data_type_manager)); | 135 .WillOnce(Return(data_type_manager)); |
| 136 return data_type_manager; | 136 return data_type_manager; |
| 137 } | 137 } |
| 138 | 138 |
| 139 FakeSyncEngine* SetUpSyncEngine() { | 139 FakeSyncEngine* SetUpSyncEngine() { |
| 140 FakeSyncEngine* sync_backend_host = new FakeSyncEngine(); | 140 FakeSyncEngine* sync_backend_host = new FakeSyncEngine(); |
| 141 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _)) | 141 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _)) |
| 142 .WillOnce(Return(sync_backend_host)); | 142 .WillOnce(Return(sync_backend_host)); |
| 143 return sync_backend_host; | 143 return sync_backend_host; |
| 144 } | 144 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 } | 206 } |
| 207 | 207 |
| 208 // TODO(pavely): Reenable test once android is switched to oauth2. | 208 // TODO(pavely): Reenable test once android is switched to oauth2. |
| 209 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) { | 209 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) { |
| 210 // We've never completed startup. | 210 // We've never completed startup. |
| 211 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); | 211 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); |
| 212 CreateSyncService(ProfileSyncService::MANUAL_START); | 212 CreateSyncService(ProfileSyncService::MANUAL_START); |
| 213 | 213 |
| 214 // Should not actually start, rather just clean things up and wait | 214 // Should not actually start, rather just clean things up and wait |
| 215 // to be enabled. | 215 // to be enabled. |
| 216 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) | 216 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _, _)) |
| 217 .Times(0); | 217 .Times(0); |
| 218 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 218 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 219 sync_service_->Initialize(); | 219 sync_service_->Initialize(); |
| 220 | 220 |
| 221 // Preferences should be back to defaults. | 221 // Preferences should be back to defaults. |
| 222 EXPECT_EQ(0, pref_service()->GetInt64(syncer::prefs::kSyncLastSyncedTime)); | 222 EXPECT_EQ(0, pref_service()->GetInt64(syncer::prefs::kSyncLastSyncedTime)); |
| 223 EXPECT_FALSE( | 223 EXPECT_FALSE( |
| 224 pref_service()->GetBoolean(syncer::prefs::kSyncFirstSetupComplete)); | 224 pref_service()->GetBoolean(syncer::prefs::kSyncFirstSetupComplete)); |
| 225 | 225 |
| 226 // Then start things up. | 226 // Then start things up. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 // Simulate successful signin. | 268 // Simulate successful signin. |
| 269 SimulateTestUserSignin(sync_service_.get()); | 269 SimulateTestUserSignin(sync_service_.get()); |
| 270 | 270 |
| 271 sync_blocker.reset(); | 271 sync_blocker.reset(); |
| 272 | 272 |
| 273 // Verify we successfully finish startup and configuration. | 273 // Verify we successfully finish startup and configuration. |
| 274 EXPECT_TRUE(sync_service_->IsSyncActive()); | 274 EXPECT_TRUE(sync_service_->IsSyncActive()); |
| 275 } | 275 } |
| 276 | 276 |
| 277 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { | 277 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { |
| 278 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) | 278 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _, _)) |
| 279 .Times(0); | 279 .Times(0); |
| 280 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _)).Times(0); | 280 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _)).Times(0); |
| 281 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); | 281 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); |
| 282 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 282 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 283 | 283 |
| 284 sync_service_->Initialize(); | 284 sync_service_->Initialize(); |
| 285 // Sync should not start because there are no tokens yet. | 285 // Sync should not start because there are no tokens yet. |
| 286 EXPECT_FALSE(sync_service_->IsSyncActive()); | 286 EXPECT_FALSE(sync_service_->IsSyncActive()); |
| 287 sync_service_->SetFirstSetupComplete(); | 287 sync_service_->SetFirstSetupComplete(); |
| 288 | 288 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 pref_service()->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced)); | 382 pref_service()->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced)); |
| 383 } | 383 } |
| 384 | 384 |
| 385 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { | 385 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { |
| 386 // Service should not be started by Initialize() since it's managed. | 386 // Service should not be started by Initialize() since it's managed. |
| 387 pref_service()->SetString(prefs::kGoogleServicesAccountId, kEmail); | 387 pref_service()->SetString(prefs::kGoogleServicesAccountId, kEmail); |
| 388 CreateSyncService(ProfileSyncService::MANUAL_START); | 388 CreateSyncService(ProfileSyncService::MANUAL_START); |
| 389 | 389 |
| 390 // Disable sync through policy. | 390 // Disable sync through policy. |
| 391 pref_service()->SetBoolean(syncer::prefs::kSyncManaged, true); | 391 pref_service()->SetBoolean(syncer::prefs::kSyncManaged, true); |
| 392 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) | 392 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _, _)) |
| 393 .Times(0); | 393 .Times(0); |
| 394 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 394 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 395 | 395 |
| 396 sync_service_->Initialize(); | 396 sync_service_->Initialize(); |
| 397 } | 397 } |
| 398 | 398 |
| 399 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { | 399 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { |
| 400 CreateSyncService(ProfileSyncService::MANUAL_START); | 400 CreateSyncService(ProfileSyncService::MANUAL_START); |
| 401 std::string account_id = SimulateTestUserSignin(sync_service_.get()); | 401 std::string account_id = SimulateTestUserSignin(sync_service_.get()); |
| 402 sync_service_->SetFirstSetupComplete(); | 402 sync_service_->SetFirstSetupComplete(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 417 .WillOnce(Return(DataTypeManager::CONFIGURED)); | 417 .WillOnce(Return(DataTypeManager::CONFIGURED)); |
| 418 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 418 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 419 pref_service()->SetBoolean(syncer::prefs::kSyncManaged, true); | 419 pref_service()->SetBoolean(syncer::prefs::kSyncManaged, true); |
| 420 EXPECT_FALSE(sync_service_->IsEngineInitialized()); | 420 EXPECT_FALSE(sync_service_->IsEngineInitialized()); |
| 421 // Note that PSS no longer references |data_type_manager| after stopping. | 421 // Note that PSS no longer references |data_type_manager| after stopping. |
| 422 | 422 |
| 423 // When switching back to unmanaged, the state should change but sync should | 423 // When switching back to unmanaged, the state should change but sync should |
| 424 // not start automatically because IsFirstSetupComplete() will be false. | 424 // not start automatically because IsFirstSetupComplete() will be false. |
| 425 // A new DataTypeManager should not be created. | 425 // A new DataTypeManager should not be created. |
| 426 Mock::VerifyAndClearExpectations(data_type_manager); | 426 Mock::VerifyAndClearExpectations(data_type_manager); |
| 427 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) | 427 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _, _)) |
| 428 .Times(0); | 428 .Times(0); |
| 429 pref_service()->ClearPref(syncer::prefs::kSyncManaged); | 429 pref_service()->ClearPref(syncer::prefs::kSyncManaged); |
| 430 EXPECT_FALSE(sync_service_->IsEngineInitialized()); | 430 EXPECT_FALSE(sync_service_->IsEngineInitialized()); |
| 431 EXPECT_FALSE(sync_service_->IsSyncActive()); | 431 EXPECT_FALSE(sync_service_->IsSyncActive()); |
| 432 } | 432 } |
| 433 | 433 |
| 434 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { | 434 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { |
| 435 CreateSyncService(ProfileSyncService::MANUAL_START); | 435 CreateSyncService(ProfileSyncService::MANUAL_START); |
| 436 std::string account_id = SimulateTestUserSignin(sync_service_.get()); | 436 std::string account_id = SimulateTestUserSignin(sync_service_.get()); |
| 437 sync_service_->SetFirstSetupComplete(); | 437 sync_service_->SetFirstSetupComplete(); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 467 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 467 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 468 sync_service_->Initialize(); | 468 sync_service_->Initialize(); |
| 469 | 469 |
| 470 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); | 470 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); |
| 471 IssueTestTokens(account_id); | 471 IssueTestTokens(account_id); |
| 472 sync_blocker.reset(); | 472 sync_blocker.reset(); |
| 473 EXPECT_FALSE(sync_service_->IsSyncActive()); | 473 EXPECT_FALSE(sync_service_->IsSyncActive()); |
| 474 } | 474 } |
| 475 | 475 |
| 476 } // namespace browser_sync | 476 } // namespace browser_sync |
| OLD | NEW |