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 "base/files/file_util.h" | 5 #include "base/files/file_util.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/prefs/pref_service_syncable.h" | 9 #include "chrome/browser/prefs/pref_service_syncable.h" |
10 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" | 10 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 errors[syncer::BOOKMARKS] = | 147 errors[syncer::BOOKMARKS] = |
148 syncer::SyncError(FROM_HERE, | 148 syncer::SyncError(FROM_HERE, |
149 syncer::SyncError::UNRECOVERABLE_ERROR, | 149 syncer::SyncError::UNRECOVERABLE_ERROR, |
150 "Error", | 150 "Error", |
151 syncer::BOOKMARKS); | 151 syncer::BOOKMARKS); |
152 result->data_type_status_table.UpdateFailedDataTypes(errors); | 152 result->data_type_status_table.UpdateFailedDataTypes(errors); |
153 } | 153 } |
154 | 154 |
155 protected: | 155 protected: |
156 void SimulateTestUserSignin() { | 156 void SimulateTestUserSignin() { |
157 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
158 "test_user@gmail.com"); | |
159 #if !defined(OS_CHROMEOS) | 157 #if !defined(OS_CHROMEOS) |
160 fake_signin()->SignIn("test_user@gmail.com", ""); | 158 fake_signin()->SignIn("test_user@gmail.com", ""); |
161 #else | 159 #else |
162 fake_signin()->SetAuthenticatedUsername("test_user@gmail.com"); | 160 fake_signin()->SetAuthenticatedUsername("test_user@gmail.com"); |
163 sync_->GoogleSigninSucceeded("test_user@gmail.com", | 161 sync_->GoogleSigninSucceeded("test_user@gmail.com", |
164 "test_user@gmail.com", | 162 "test_user@gmail.com", |
165 ""); | 163 ""); |
166 #endif | 164 #endif |
167 } | 165 } |
168 | 166 |
(...skipping 29 matching lines...) Expand all Loading... |
198 sync_ = static_cast<ProfileSyncService*>( | 196 sync_ = static_cast<ProfileSyncService*>( |
199 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( | 197 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( |
200 profile_, BuildCrosService)); | 198 profile_, BuildCrosService)); |
201 sync_->AddObserver(&observer_); | 199 sync_->AddObserver(&observer_); |
202 } | 200 } |
203 | 201 |
204 static KeyedService* BuildCrosService(content::BrowserContext* context) { | 202 static KeyedService* BuildCrosService(content::BrowserContext* context) { |
205 Profile* profile = static_cast<Profile*>(context); | 203 Profile* profile = static_cast<Profile*>(context); |
206 SigninManagerBase* signin = | 204 SigninManagerBase* signin = |
207 SigninManagerFactory::GetForProfile(profile); | 205 SigninManagerFactory::GetForProfile(profile); |
208 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
209 "test_user@gmail.com"); | |
210 signin->SetAuthenticatedUsername("test_user@gmail.com"); | 206 signin->SetAuthenticatedUsername("test_user@gmail.com"); |
211 ProfileOAuth2TokenService* oauth2_token_service = | 207 ProfileOAuth2TokenService* oauth2_token_service = |
212 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 208 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
213 EXPECT_TRUE(signin->IsAuthenticated()); | 209 EXPECT_TRUE(signin->IsAuthenticated()); |
214 return new TestProfileSyncServiceNoBackup( | 210 return new TestProfileSyncServiceNoBackup( |
215 scoped_ptr<ProfileSyncComponentsFactory>( | 211 scoped_ptr<ProfileSyncComponentsFactory>( |
216 new ProfileSyncComponentsFactoryMock()), | 212 new ProfileSyncComponentsFactoryMock()), |
217 profile, | 213 profile, |
218 make_scoped_ptr(new SupervisedUserSigninManagerWrapper(profile, | 214 make_scoped_ptr(new SupervisedUserSigninManagerWrapper(profile, |
219 signin)), | 215 signin)), |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 sync_->SetSetupInProgress(false); | 292 sync_->SetSetupInProgress(false); |
297 // ProfileSyncService should try to start by requesting access token. | 293 // ProfileSyncService should try to start by requesting access token. |
298 // This request should fail as login token was not issued. | 294 // This request should fail as login token was not issued. |
299 EXPECT_FALSE(sync_->SyncActive()); | 295 EXPECT_FALSE(sync_->SyncActive()); |
300 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, | 296 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, |
301 sync_->GetAuthError().state()); | 297 sync_->GetAuthError().state()); |
302 } | 298 } |
303 | 299 |
304 // TODO(pavely): Reenable test once android is switched to oauth2. | 300 // TODO(pavely): Reenable test once android is switched to oauth2. |
305 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { | 301 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { |
306 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
307 "test_user@gmail.com"); | |
308 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com"); | 302 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com"); |
309 CreateSyncService(); | 303 CreateSyncService(); |
310 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); | 304 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); |
311 | 305 |
312 // Tell the backend to stall while downloading control types (simulating an | 306 // Tell the backend to stall while downloading control types (simulating an |
313 // auth error). | 307 // auth error). |
314 mock_sbh->set_fail_initial_download(true); | 308 mock_sbh->set_fail_initial_download(true); |
315 | 309 |
316 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 310 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
317 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); | 311 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 } | 371 } |
378 | 372 |
379 #if defined(OS_WIN) | 373 #if defined(OS_WIN) |
380 // http://crbug.com/396402 | 374 // http://crbug.com/396402 |
381 #define MAYBE_StartNormal DISABLED_StartNormal | 375 #define MAYBE_StartNormal DISABLED_StartNormal |
382 #else | 376 #else |
383 #define MAYBE_StartNormal StartNormal | 377 #define MAYBE_StartNormal StartNormal |
384 #endif | 378 #endif |
385 TEST_F(ProfileSyncServiceStartupTest, MAYBE_StartNormal) { | 379 TEST_F(ProfileSyncServiceStartupTest, MAYBE_StartNormal) { |
386 // Pre load the tokens | 380 // Pre load the tokens |
387 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
388 "test_user@gmail.com"); | |
389 SigninManagerFactory::GetForProfile(profile_) | 381 SigninManagerFactory::GetForProfile(profile_) |
390 ->SetAuthenticatedUsername("test_user@gmail.com"); | 382 ->SetAuthenticatedUsername("test_user@gmail.com"); |
391 CreateSyncService(); | 383 CreateSyncService(); |
392 sync_->SetSyncSetupCompleted(); | 384 sync_->SetSyncSetupCompleted(); |
393 SetUpSyncBackendHost(); | 385 SetUpSyncBackendHost(); |
394 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 386 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
395 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 387 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
396 EXPECT_CALL(*data_type_manager, state()). | 388 EXPECT_CALL(*data_type_manager, state()). |
397 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 389 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
398 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 390 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
(...skipping 12 matching lines...) Expand all Loading... |
411 profile_->GetPrefs()->ClearPref( | 403 profile_->GetPrefs()->ClearPref( |
412 sync_driver::prefs::kSyncKeepEverythingSynced); | 404 sync_driver::prefs::kSyncKeepEverythingSynced); |
413 syncer::ModelTypeSet user_types = syncer::UserTypes(); | 405 syncer::ModelTypeSet user_types = syncer::UserTypes(); |
414 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); | 406 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); |
415 iter.Good(); iter.Inc()) { | 407 iter.Good(); iter.Inc()) { |
416 profile_->GetPrefs()->ClearPref( | 408 profile_->GetPrefs()->ClearPref( |
417 sync_driver::SyncPrefs::GetPrefNameForDataType(iter.Get())); | 409 sync_driver::SyncPrefs::GetPrefNameForDataType(iter.Get())); |
418 } | 410 } |
419 | 411 |
420 // Pre load the tokens | 412 // Pre load the tokens |
421 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
422 "test_user@gmail.com"); | |
423 SigninManagerFactory::GetForProfile(profile_) | 413 SigninManagerFactory::GetForProfile(profile_) |
424 ->SetAuthenticatedUsername("test_user@gmail.com"); | 414 ->SetAuthenticatedUsername("test_user@gmail.com"); |
425 CreateSyncService(); | 415 CreateSyncService(); |
426 sync_->SetSyncSetupCompleted(); | 416 sync_->SetSyncSetupCompleted(); |
427 SetUpSyncBackendHost(); | 417 SetUpSyncBackendHost(); |
428 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 418 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
429 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 419 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
430 EXPECT_CALL(*data_type_manager, state()). | 420 EXPECT_CALL(*data_type_manager, state()). |
431 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 421 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
432 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 422 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
(...skipping 14 matching lines...) Expand all Loading... |
447 #else | 437 #else |
448 #define MAYBE_StartDontRecoverDatatypePrefs StartDontRecoverDatatypePrefs | 438 #define MAYBE_StartDontRecoverDatatypePrefs StartDontRecoverDatatypePrefs |
449 #endif | 439 #endif |
450 TEST_F(ProfileSyncServiceStartupTest, MAYBE_StartDontRecoverDatatypePrefs) { | 440 TEST_F(ProfileSyncServiceStartupTest, MAYBE_StartDontRecoverDatatypePrefs) { |
451 // Explicitly set Keep Everything Synced to false and have only bookmarks | 441 // Explicitly set Keep Everything Synced to false and have only bookmarks |
452 // enabled. | 442 // enabled. |
453 profile_->GetPrefs()->SetBoolean( | 443 profile_->GetPrefs()->SetBoolean( |
454 sync_driver::prefs::kSyncKeepEverythingSynced, false); | 444 sync_driver::prefs::kSyncKeepEverythingSynced, false); |
455 | 445 |
456 // Pre load the tokens | 446 // Pre load the tokens |
457 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
458 "test_user@gmail.com"); | |
459 SigninManagerFactory::GetForProfile(profile_) | 447 SigninManagerFactory::GetForProfile(profile_) |
460 ->SetAuthenticatedUsername("test_user@gmail.com"); | 448 ->SetAuthenticatedUsername("test_user@gmail.com"); |
461 CreateSyncService(); | 449 CreateSyncService(); |
462 sync_->SetSyncSetupCompleted(); | 450 sync_->SetSyncSetupCompleted(); |
463 SetUpSyncBackendHost(); | 451 SetUpSyncBackendHost(); |
464 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 452 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
465 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 453 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
466 EXPECT_CALL(*data_type_manager, state()). | 454 EXPECT_CALL(*data_type_manager, state()). |
467 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 455 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
468 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 456 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
(...skipping 20 matching lines...) Expand all Loading... |
489 // Disable sync through policy. | 477 // Disable sync through policy. |
490 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); | 478 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); |
491 EXPECT_CALL(*components_factory_mock(), | 479 EXPECT_CALL(*components_factory_mock(), |
492 CreateDataTypeManager(_, _, _, _, _)).Times(0); | 480 CreateDataTypeManager(_, _, _, _, _)).Times(0); |
493 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 481 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
494 | 482 |
495 sync_->Initialize(); | 483 sync_->Initialize(); |
496 } | 484 } |
497 | 485 |
498 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { | 486 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { |
499 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
500 "test_user@gmail.com"); | |
501 SigninManagerFactory::GetForProfile(profile_) | 487 SigninManagerFactory::GetForProfile(profile_) |
502 ->SetAuthenticatedUsername("test_user@gmail.com"); | 488 ->SetAuthenticatedUsername("test_user@gmail.com"); |
503 CreateSyncService(); | 489 CreateSyncService(); |
504 sync_->SetSyncSetupCompleted(); | 490 sync_->SetSyncSetupCompleted(); |
505 SetUpSyncBackendHost(); | 491 SetUpSyncBackendHost(); |
506 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 492 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
507 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 493 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
508 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 494 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
509 IssueTestTokens(); | 495 IssueTestTokens(); |
510 sync_->Initialize(); | 496 sync_->Initialize(); |
511 | 497 |
512 // The service should stop when switching to managed mode. | 498 // The service should stop when switching to managed mode. |
513 Mock::VerifyAndClearExpectations(data_type_manager); | 499 Mock::VerifyAndClearExpectations(data_type_manager); |
514 EXPECT_CALL(*data_type_manager, state()). | 500 EXPECT_CALL(*data_type_manager, state()). |
515 WillOnce(Return(DataTypeManager::CONFIGURED)); | 501 WillOnce(Return(DataTypeManager::CONFIGURED)); |
516 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 502 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
517 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 503 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
518 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); | 504 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); |
519 | 505 |
520 // When switching back to unmanaged, the state should change, but the service | 506 // When switching back to unmanaged, the state should change, but the service |
521 // should not start up automatically (kSyncSetupCompleted will be false). | 507 // should not start up automatically (kSyncSetupCompleted will be false). |
522 Mock::VerifyAndClearExpectations(data_type_manager); | 508 Mock::VerifyAndClearExpectations(data_type_manager); |
523 EXPECT_CALL(*components_factory_mock(), | 509 EXPECT_CALL(*components_factory_mock(), |
524 CreateDataTypeManager(_, _, _, _, _)).Times(0); | 510 CreateDataTypeManager(_, _, _, _, _)).Times(0); |
525 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 511 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
526 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncManaged); | 512 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncManaged); |
527 } | 513 } |
528 | 514 |
529 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { | 515 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { |
530 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
531 "test_user@gmail.com"); | |
532 SigninManagerFactory::GetForProfile(profile_) | 516 SigninManagerFactory::GetForProfile(profile_) |
533 ->SetAuthenticatedUsername("test_user@gmail.com"); | 517 ->SetAuthenticatedUsername("test_user@gmail.com"); |
534 CreateSyncService(); | 518 CreateSyncService(); |
535 sync_->SetSyncSetupCompleted(); | 519 sync_->SetSyncSetupCompleted(); |
536 SetUpSyncBackendHost(); | 520 SetUpSyncBackendHost(); |
537 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 521 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
538 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; | 522 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; |
539 DataTypeManager::ConfigureResult result( | 523 DataTypeManager::ConfigureResult result( |
540 status, | 524 status, |
541 syncer::ModelTypeSet()); | 525 syncer::ModelTypeSet()); |
542 EXPECT_CALL(*data_type_manager, Configure(_, _)).WillRepeatedly( | 526 EXPECT_CALL(*data_type_manager, Configure(_, _)).WillRepeatedly( |
543 DoAll(InvokeOnConfigureStart(sync_), | 527 DoAll(InvokeOnConfigureStart(sync_), |
544 InvokeOnConfigureDone( | 528 InvokeOnConfigureDone( |
545 sync_, | 529 sync_, |
546 base::Bind(&ProfileSyncServiceStartupTest::SetError, | 530 base::Bind(&ProfileSyncServiceStartupTest::SetError, |
547 base::Unretained(this)), | 531 base::Unretained(this)), |
548 result))); | 532 result))); |
549 EXPECT_CALL(*data_type_manager, state()). | 533 EXPECT_CALL(*data_type_manager, state()). |
550 WillOnce(Return(DataTypeManager::STOPPED)); | 534 WillOnce(Return(DataTypeManager::STOPPED)); |
551 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 535 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
552 IssueTestTokens(); | 536 IssueTestTokens(); |
553 sync_->Initialize(); | 537 sync_->Initialize(); |
554 EXPECT_TRUE(sync_->HasUnrecoverableError()); | 538 EXPECT_TRUE(sync_->HasUnrecoverableError()); |
555 } | 539 } |
556 | 540 |
557 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { | 541 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { |
558 // Pre load the tokens | 542 // Pre load the tokens |
559 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | |
560 "test_user@gmail.com"); | |
561 SigninManagerFactory::GetForProfile(profile_) | 543 SigninManagerFactory::GetForProfile(profile_) |
562 ->SetAuthenticatedUsername("test_user@gmail.com"); | 544 ->SetAuthenticatedUsername("test_user@gmail.com"); |
563 CreateSyncService(); | 545 CreateSyncService(); |
564 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); | 546 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); |
565 mock_sbh->set_fail_initial_download(true); | 547 mock_sbh->set_fail_initial_download(true); |
566 | 548 |
567 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted); | 549 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted); |
568 | 550 |
569 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 551 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
570 sync_->Initialize(); | 552 sync_->Initialize(); |
571 | 553 |
572 sync_->SetSetupInProgress(true); | 554 sync_->SetSetupInProgress(true); |
573 IssueTestTokens(); | 555 IssueTestTokens(); |
574 sync_->SetSetupInProgress(false); | 556 sync_->SetSetupInProgress(false); |
575 EXPECT_FALSE(sync_->SyncActive()); | 557 EXPECT_FALSE(sync_->SyncActive()); |
576 } | 558 } |
OLD | NEW |