| 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
| 10 #include "chrome/browser/signin/fake_signin_manager.h" | 10 #include "chrome/browser/signin/fake_signin_manager.h" |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 sync_->AddObserver(&observer_); | 161 sync_->AddObserver(&observer_); |
| 162 sync_->set_synchronous_sync_configuration(); | 162 sync_->set_synchronous_sync_configuration(); |
| 163 } | 163 } |
| 164 | 164 |
| 165 static BrowserContextKeyedService* BuildCrosService( | 165 static BrowserContextKeyedService* BuildCrosService( |
| 166 content::BrowserContext* context) { | 166 content::BrowserContext* context) { |
| 167 Profile* profile = static_cast<Profile*>(context); | 167 Profile* profile = static_cast<Profile*>(context); |
| 168 SigninManagerBase* signin = | 168 SigninManagerBase* signin = |
| 169 SigninManagerFactory::GetForProfile(profile); | 169 SigninManagerFactory::GetForProfile(profile); |
| 170 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | 170 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 171 "test_user"); | 171 "test_user@gmail.com"); |
| 172 signin->Initialize(profile, NULL); | 172 signin->Initialize(profile, NULL); |
| 173 EXPECT_FALSE(signin->GetAuthenticatedUsername().empty()); | 173 EXPECT_FALSE(signin->GetAuthenticatedUsername().empty()); |
| 174 return new TestProfileSyncService( | 174 return new TestProfileSyncService( |
| 175 new ProfileSyncComponentsFactoryMock(), | 175 new ProfileSyncComponentsFactoryMock(), |
| 176 profile, | 176 profile, |
| 177 signin, | 177 signin, |
| 178 ProfileSyncService::AUTO_START, | 178 ProfileSyncService::AUTO_START, |
| 179 true); | 179 true); |
| 180 } | 180 } |
| 181 }; | 181 }; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 209 EXPECT_CALL(*data_type_manager, state()). | 209 EXPECT_CALL(*data_type_manager, state()). |
| 210 WillOnce(Return(DataTypeManager::CONFIGURED)). | 210 WillOnce(Return(DataTypeManager::CONFIGURED)). |
| 211 WillOnce(Return(DataTypeManager::CONFIGURED)); | 211 WillOnce(Return(DataTypeManager::CONFIGURED)); |
| 212 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 212 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 213 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 213 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 214 | 214 |
| 215 sync_->SetSetupInProgress(true); | 215 sync_->SetSetupInProgress(true); |
| 216 | 216 |
| 217 // Simulate successful signin as test_user. | 217 // Simulate successful signin as test_user. |
| 218 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | 218 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 219 "test_user"); | 219 "test_user@gmail.com"); |
| 220 sync_->signin()->SetAuthenticatedUsername("test_user"); | 220 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com"); |
| 221 GoogleServiceSigninSuccessDetails details("test_user", ""); | 221 GoogleServiceSigninSuccessDetails details("test_user@gmail.com", ""); |
| 222 content::NotificationService::current()->Notify( | 222 content::NotificationService::current()->Notify( |
| 223 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, | 223 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, |
| 224 content::Source<Profile>(profile_.get()), | 224 content::Source<Profile>(profile_.get()), |
| 225 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); | 225 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); |
| 226 | 226 |
| 227 // Create some tokens in the token service. | 227 // Create some tokens in the token service. |
| 228 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 228 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 229 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 229 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 230 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 230 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 231 GaiaConstants::kSyncService, "token"); | 231 GaiaConstants::kSyncService, "token"); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 256 | 256 |
| 257 // Preferences should be back to defaults. | 257 // Preferences should be back to defaults. |
| 258 EXPECT_EQ(0, profile_->GetPrefs()->GetInt64(prefs::kSyncLastSyncedTime)); | 258 EXPECT_EQ(0, profile_->GetPrefs()->GetInt64(prefs::kSyncLastSyncedTime)); |
| 259 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean(prefs::kSyncHasSetupCompleted)); | 259 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean(prefs::kSyncHasSetupCompleted)); |
| 260 | 260 |
| 261 // Then start things up. | 261 // Then start things up. |
| 262 sync_->SetSetupInProgress(true); | 262 sync_->SetSetupInProgress(true); |
| 263 | 263 |
| 264 // Simulate successful signin as test_user. | 264 // Simulate successful signin as test_user. |
| 265 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | 265 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 266 "test_user"); | 266 "test_user@gmail.com"); |
| 267 sync_->signin()->SetAuthenticatedUsername("test_user"); | 267 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com"); |
| 268 GoogleServiceSigninSuccessDetails details("test_user", ""); | 268 GoogleServiceSigninSuccessDetails details("test_user@gmail.com", ""); |
| 269 content::NotificationService::current()->Notify( | 269 content::NotificationService::current()->Notify( |
| 270 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, | 270 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, |
| 271 content::Source<Profile>(profile_.get()), | 271 content::Source<Profile>(profile_.get()), |
| 272 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); | 272 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); |
| 273 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. | 273 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. |
| 274 token_service->LoadTokensFromDB(); | 274 token_service->LoadTokensFromDB(); |
| 275 | 275 |
| 276 sync_->SetSetupInProgress(false); | 276 sync_->SetSetupInProgress(false); |
| 277 // ProfileSyncService should try to start by requesting access token. | 277 // ProfileSyncService should try to start by requesting access token. |
| 278 // This request should fail as login token was not issued to TokenService. | 278 // This request should fail as login token was not issued to TokenService. |
| 279 EXPECT_FALSE(sync_->ShouldPushChanges()); | 279 EXPECT_FALSE(sync_->ShouldPushChanges()); |
| 280 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, | 280 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, |
| 281 sync_->GetAuthError().state()); | 281 sync_->GetAuthError().state()); |
| 282 } | 282 } |
| 283 | 283 |
| 284 // TODO(pavely): Reenable test once android is switched to oauth2. | 284 // TODO(pavely): Reenable test once android is switched to oauth2. |
| 285 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { | 285 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { |
| 286 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, | 286 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 287 "test_user"); | 287 "test_user@gmail.com"); |
| 288 SigninManagerFactory::GetForProfile( | 288 SigninManagerFactory::GetForProfile( |
| 289 profile_.get())->Initialize(profile_.get(), NULL); | 289 profile_.get())->Initialize(profile_.get(), NULL); |
| 290 CreateSyncService(); | 290 CreateSyncService(); |
| 291 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 291 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 292 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); | 292 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); |
| 293 // Issue login token so that ProfileSyncServer tries to initialize backend. | 293 // Issue login token so that ProfileSyncServer tries to initialize backend. |
| 294 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 294 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 295 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 295 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 296 | 296 |
| 297 // Tell the backend to stall while downloading control types (simulating an | 297 // Tell the backend to stall while downloading control types (simulating an |
| 298 // auth error). | 298 // auth error). |
| 299 sync_->fail_initial_download(); | 299 sync_->fail_initial_download(); |
| 300 | 300 |
| 301 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 301 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 302 sync_->Initialize(); | 302 sync_->Initialize(); |
| 303 EXPECT_TRUE(sync_->GetBackendForTest()); | 303 EXPECT_TRUE(sync_->GetBackendForTest()); |
| 304 EXPECT_FALSE(sync_->sync_initialized()); | 304 EXPECT_FALSE(sync_->sync_initialized()); |
| 305 Mock::VerifyAndClearExpectations(data_type_manager); | 305 Mock::VerifyAndClearExpectations(data_type_manager); |
| 306 | 306 |
| 307 // Update the credentials, unstalling the backend. | 307 // Update the credentials, unstalling the backend. |
| 308 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 308 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
| 309 EXPECT_CALL(*data_type_manager, state()). | 309 EXPECT_CALL(*data_type_manager, state()). |
| 310 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 310 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
| 311 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 311 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 312 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 312 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 313 sync_->SetSetupInProgress(true); | 313 sync_->SetSetupInProgress(true); |
| 314 | 314 |
| 315 // Simulate successful signin. | 315 // Simulate successful signin. |
| 316 GoogleServiceSigninSuccessDetails details("test_user", std::string()); | 316 GoogleServiceSigninSuccessDetails details("test_user@gmail.com", |
| 317 std::string()); |
| 317 content::NotificationService::current()->Notify( | 318 content::NotificationService::current()->Notify( |
| 318 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, | 319 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, |
| 319 content::Source<Profile>(profile_.get()), | 320 content::Source<Profile>(profile_.get()), |
| 320 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); | 321 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); |
| 321 | 322 |
| 322 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 323 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 323 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 324 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 324 sync_->SetSetupInProgress(false); | 325 sync_->SetSetupInProgress(false); |
| 325 | 326 |
| 326 // Verify we successfully finish startup and configuration. | 327 // Verify we successfully finish startup and configuration. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 361 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 361 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 362 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 362 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 363 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 363 GaiaConstants::kSyncService, "sync_token"); | 364 GaiaConstants::kSyncService, "sync_token"); |
| 364 sync_->Initialize(); | 365 sync_->Initialize(); |
| 365 EXPECT_TRUE(sync_->ShouldPushChanges()); | 366 EXPECT_TRUE(sync_->ShouldPushChanges()); |
| 366 } | 367 } |
| 367 | 368 |
| 368 TEST_F(ProfileSyncServiceStartupTest, StartNormal) { | 369 TEST_F(ProfileSyncServiceStartupTest, StartNormal) { |
| 369 // Pre load the tokens | 370 // Pre load the tokens |
| 370 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 371 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 372 "test_user@gmail.com"); |
| 371 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 373 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 372 profile_.get(), NULL); | 374 profile_.get(), NULL); |
| 373 CreateSyncService(); | 375 CreateSyncService(); |
| 374 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 376 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 375 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 377 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
| 376 EXPECT_CALL(*data_type_manager, state()). | 378 EXPECT_CALL(*data_type_manager, state()). |
| 377 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 379 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
| 378 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 380 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 379 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 381 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 380 | 382 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 393 // Clear the datatype preference fields (simulating bug 154940). | 395 // Clear the datatype preference fields (simulating bug 154940). |
| 394 profile_->GetPrefs()->ClearPref(prefs::kSyncKeepEverythingSynced); | 396 profile_->GetPrefs()->ClearPref(prefs::kSyncKeepEverythingSynced); |
| 395 syncer::ModelTypeSet user_types = syncer::UserTypes(); | 397 syncer::ModelTypeSet user_types = syncer::UserTypes(); |
| 396 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); | 398 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); |
| 397 iter.Good(); iter.Inc()) { | 399 iter.Good(); iter.Inc()) { |
| 398 profile_->GetPrefs()->ClearPref( | 400 profile_->GetPrefs()->ClearPref( |
| 399 browser_sync::SyncPrefs::GetPrefNameForDataType(iter.Get())); | 401 browser_sync::SyncPrefs::GetPrefNameForDataType(iter.Get())); |
| 400 } | 402 } |
| 401 | 403 |
| 402 // Pre load the tokens | 404 // Pre load the tokens |
| 403 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 405 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 406 "test_user@gmail.com"); |
| 404 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 407 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 405 profile_.get(), NULL); | 408 profile_.get(), NULL); |
| 406 CreateSyncService(); | 409 CreateSyncService(); |
| 407 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 410 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 408 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 411 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
| 409 EXPECT_CALL(*data_type_manager, state()). | 412 EXPECT_CALL(*data_type_manager, state()). |
| 410 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 413 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
| 411 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 414 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 412 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 415 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 413 | 416 |
| 414 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 417 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 415 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 418 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 416 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 419 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 417 GaiaConstants::kSyncService, "sync_token"); | 420 GaiaConstants::kSyncService, "sync_token"); |
| 418 sync_->Initialize(); | 421 sync_->Initialize(); |
| 419 | 422 |
| 420 EXPECT_TRUE(profile_->GetPrefs()->GetBoolean( | 423 EXPECT_TRUE(profile_->GetPrefs()->GetBoolean( |
| 421 prefs::kSyncKeepEverythingSynced)); | 424 prefs::kSyncKeepEverythingSynced)); |
| 422 } | 425 } |
| 423 | 426 |
| 424 // Verify that the recovery of datatype preferences doesn't overwrite a valid | 427 // Verify that the recovery of datatype preferences doesn't overwrite a valid |
| 425 // case where only bookmarks are enabled. | 428 // case where only bookmarks are enabled. |
| 426 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) { | 429 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) { |
| 427 // Explicitly set Keep Everything Synced to false and have only bookmarks | 430 // Explicitly set Keep Everything Synced to false and have only bookmarks |
| 428 // enabled. | 431 // enabled. |
| 429 profile_->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); | 432 profile_->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); |
| 430 | 433 |
| 431 // Pre load the tokens | 434 // Pre load the tokens |
| 432 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 435 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 436 "test_user@gmail.com"); |
| 433 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 437 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 434 profile_.get(), NULL); | 438 profile_.get(), NULL); |
| 435 CreateSyncService(); | 439 CreateSyncService(); |
| 436 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 440 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 437 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 441 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
| 438 EXPECT_CALL(*data_type_manager, state()). | 442 EXPECT_CALL(*data_type_manager, state()). |
| 439 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); | 443 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); |
| 440 EXPECT_CALL(*data_type_manager, Stop()).Times(1); | 444 EXPECT_CALL(*data_type_manager, Stop()).Times(1); |
| 441 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 445 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 442 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 446 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 443 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 447 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 444 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 448 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 445 GaiaConstants::kSyncService, "sync_token"); | 449 GaiaConstants::kSyncService, "sync_token"); |
| 446 sync_->Initialize(); | 450 sync_->Initialize(); |
| 447 | 451 |
| 448 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean( | 452 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean( |
| 449 prefs::kSyncKeepEverythingSynced)); | 453 prefs::kSyncKeepEverythingSynced)); |
| 450 } | 454 } |
| 451 | 455 |
| 452 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { | 456 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { |
| 453 // Service should not be started by Initialize() since it's managed. | 457 // Service should not be started by Initialize() since it's managed. |
| 454 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 458 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 459 "test_user@gmail.com"); |
| 455 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 460 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 456 profile_.get(), NULL); | 461 profile_.get(), NULL); |
| 457 CreateSyncService(); | 462 CreateSyncService(); |
| 458 | 463 |
| 459 // Disable sync through policy. | 464 // Disable sync through policy. |
| 460 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); | 465 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); |
| 461 EXPECT_CALL(*sync_->components_factory_mock(), | 466 EXPECT_CALL(*sync_->components_factory_mock(), |
| 462 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); | 467 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); |
| 463 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 468 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 464 | 469 |
| 465 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 470 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 466 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 471 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 467 sync_->Initialize(); | 472 sync_->Initialize(); |
| 468 } | 473 } |
| 469 | 474 |
| 470 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { | 475 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { |
| 471 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 476 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 477 "test_user@gmail.com"); |
| 472 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 478 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 473 profile_.get(), NULL); | 479 profile_.get(), NULL); |
| 474 CreateSyncService(); | 480 CreateSyncService(); |
| 475 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 481 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 476 EXPECT_CALL(*data_type_manager, Configure(_, _)); | 482 EXPECT_CALL(*data_type_manager, Configure(_, _)); |
| 477 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 483 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 478 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 484 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 479 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 485 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 480 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 486 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 481 GaiaConstants::kSyncService, "token"); | 487 GaiaConstants::kSyncService, "token"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 492 // When switching back to unmanaged, the state should change, but the service | 498 // When switching back to unmanaged, the state should change, but the service |
| 493 // should not start up automatically (kSyncSetupCompleted will be false). | 499 // should not start up automatically (kSyncSetupCompleted will be false). |
| 494 Mock::VerifyAndClearExpectations(data_type_manager); | 500 Mock::VerifyAndClearExpectations(data_type_manager); |
| 495 EXPECT_CALL(*sync_->components_factory_mock(), | 501 EXPECT_CALL(*sync_->components_factory_mock(), |
| 496 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); | 502 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); |
| 497 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 503 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 498 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); | 504 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); |
| 499 } | 505 } |
| 500 | 506 |
| 501 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { | 507 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { |
| 502 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 508 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 509 "test_user@gmail.com"); |
| 503 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 510 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 504 profile_.get(), NULL); | 511 profile_.get(), NULL); |
| 505 CreateSyncService(); | 512 CreateSyncService(); |
| 506 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); | 513 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); |
| 507 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; | 514 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; |
| 508 syncer::SyncError error( | 515 syncer::SyncError error( |
| 509 FROM_HERE, "Association failed.", syncer::BOOKMARKS); | 516 FROM_HERE, "Association failed.", syncer::BOOKMARKS); |
| 510 std::map<syncer::ModelType, syncer::SyncError> errors; | 517 std::map<syncer::ModelType, syncer::SyncError> errors; |
| 511 errors[syncer::BOOKMARKS] = error; | 518 errors[syncer::BOOKMARKS] = error; |
| 512 DataTypeManager::ConfigureResult result( | 519 DataTypeManager::ConfigureResult result( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 525 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 532 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 526 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 533 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 527 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 534 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 528 GaiaConstants::kSyncService, "token"); | 535 GaiaConstants::kSyncService, "token"); |
| 529 sync_->Initialize(); | 536 sync_->Initialize(); |
| 530 EXPECT_TRUE(sync_->HasUnrecoverableError()); | 537 EXPECT_TRUE(sync_->HasUnrecoverableError()); |
| 531 } | 538 } |
| 532 | 539 |
| 533 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { | 540 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { |
| 534 // Pre load the tokens | 541 // Pre load the tokens |
| 535 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); | 542 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, |
| 543 "test_user@gmail.com"); |
| 536 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( | 544 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( |
| 537 profile_.get(), NULL); | 545 profile_.get(), NULL); |
| 538 CreateSyncService(); | 546 CreateSyncService(); |
| 539 | 547 |
| 540 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); | 548 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); |
| 541 | 549 |
| 542 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); | 550 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); |
| 543 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 551 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 544 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); | 552 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); |
| 545 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( | 553 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( |
| 546 GaiaConstants::kSyncService, "token"); | 554 GaiaConstants::kSyncService, "token"); |
| 547 sync_->fail_initial_download(); | 555 sync_->fail_initial_download(); |
| 548 | 556 |
| 549 sync_->SetSetupInProgress(true); | 557 sync_->SetSetupInProgress(true); |
| 550 sync_->Initialize(); | 558 sync_->Initialize(); |
| 551 sync_->SetSetupInProgress(false); | 559 sync_->SetSetupInProgress(false); |
| 552 EXPECT_FALSE(sync_->sync_initialized()); | 560 EXPECT_FALSE(sync_->sync_initialized()); |
| 553 EXPECT_TRUE(sync_->GetBackendForTest()); | 561 EXPECT_TRUE(sync_->GetBackendForTest()); |
| 554 } | 562 } |
| OLD | NEW |