Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: chrome/browser/sync/profile_sync_service_startup_unittest.cc

Issue 15580002: Make use of InvalidationService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix PushMessagingApiTests Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 sync_->AddObserver(&observer_); 152 sync_->AddObserver(&observer_);
153 sync_->set_synchronous_sync_configuration(); 153 sync_->set_synchronous_sync_configuration();
154 } 154 }
155 155
156 static BrowserContextKeyedService* BuildCrosService( 156 static BrowserContextKeyedService* BuildCrosService(
157 content::BrowserContext* context) { 157 content::BrowserContext* context) {
158 Profile* profile = static_cast<Profile*>(context); 158 Profile* profile = static_cast<Profile*>(context);
159 SigninManagerBase* signin = 159 SigninManagerBase* signin =
160 SigninManagerFactory::GetForProfile(profile); 160 SigninManagerFactory::GetForProfile(profile);
161 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 161 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
162 "test_user"); 162 "test_user@gmail.com");
163 signin->Initialize(profile, NULL); 163 signin->Initialize(profile, NULL);
164 EXPECT_FALSE(signin->GetAuthenticatedUsername().empty()); 164 EXPECT_FALSE(signin->GetAuthenticatedUsername().empty());
165 return new TestProfileSyncService( 165 return new TestProfileSyncService(
166 new ProfileSyncComponentsFactoryMock(), 166 new ProfileSyncComponentsFactoryMock(),
167 profile, 167 profile,
168 signin, 168 signin,
169 ProfileSyncService::AUTO_START, 169 ProfileSyncService::AUTO_START,
170 true); 170 true);
171 } 171 }
172 }; 172 };
(...skipping 27 matching lines...) Expand all
200 EXPECT_CALL(*data_type_manager, state()). 200 EXPECT_CALL(*data_type_manager, state()).
201 WillOnce(Return(DataTypeManager::CONFIGURED)). 201 WillOnce(Return(DataTypeManager::CONFIGURED)).
202 WillOnce(Return(DataTypeManager::CONFIGURED)); 202 WillOnce(Return(DataTypeManager::CONFIGURED));
203 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 203 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
204 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 204 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
205 205
206 sync_->SetSetupInProgress(true); 206 sync_->SetSetupInProgress(true);
207 207
208 // Simulate successful signin as test_user. 208 // Simulate successful signin as test_user.
209 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 209 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
210 "test_user"); 210 "test_user@gmail.com");
211 sync_->signin()->SetAuthenticatedUsername("test_user"); 211 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com");
212 GoogleServiceSigninSuccessDetails details("test_user", ""); 212 GoogleServiceSigninSuccessDetails details("test_user@gmail.com", "");
213 content::NotificationService::current()->Notify( 213 content::NotificationService::current()->Notify(
214 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, 214 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL,
215 content::Source<Profile>(profile_.get()), 215 content::Source<Profile>(profile_.get()),
216 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); 216 content::Details<const GoogleServiceSigninSuccessDetails>(&details));
217 217
218 // Create some tokens in the token service. 218 // Create some tokens in the token service.
219 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 219 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
220 GaiaConstants::kSyncService, "sync_token"); 220 GaiaConstants::kSyncService, "sync_token");
221 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 221 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
222 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); 222 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token");
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 EXPECT_CALL(*data_type_manager, state()). 254 EXPECT_CALL(*data_type_manager, state()).
255 WillOnce(Return(DataTypeManager::CONFIGURED)). 255 WillOnce(Return(DataTypeManager::CONFIGURED)).
256 WillOnce(Return(DataTypeManager::CONFIGURED)); 256 WillOnce(Return(DataTypeManager::CONFIGURED));
257 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 257 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
258 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 258 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
259 259
260 sync_->SetSetupInProgress(true); 260 sync_->SetSetupInProgress(true);
261 261
262 // Simulate successful signin as test_user. 262 // Simulate successful signin as test_user.
263 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 263 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
264 "test_user"); 264 "test_user@gmail.com");
265 sync_->signin()->SetAuthenticatedUsername("test_user"); 265 sync_->signin()->SetAuthenticatedUsername("test_user@gmail.com");
266 GoogleServiceSigninSuccessDetails details("test_user", ""); 266 GoogleServiceSigninSuccessDetails details("test_user@gmail.com", "");
267 content::NotificationService::current()->Notify( 267 content::NotificationService::current()->Notify(
268 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, 268 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL,
269 content::Source<Profile>(profile_.get()), 269 content::Source<Profile>(profile_.get()),
270 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); 270 content::Details<const GoogleServiceSigninSuccessDetails>(&details));
271 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. 271 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens.
272 token_service->LoadTokensFromDB(); 272 token_service->LoadTokensFromDB();
273 273
274 sync_->SetSetupInProgress(false); 274 sync_->SetSetupInProgress(false);
275 // Backend should initialize using a bogus GAIA token for credentials. 275 // Backend should initialize using a bogus GAIA token for credentials.
276 EXPECT_TRUE(sync_->ShouldPushChanges()); 276 EXPECT_TRUE(sync_->ShouldPushChanges());
277 } 277 }
278 278
279 TEST_F(ProfileSyncServiceStartupTest, StartInvalidCredentials) { 279 TEST_F(ProfileSyncServiceStartupTest, StartInvalidCredentials) {
280 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 280 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
281 "test_user"); 281 "test_user@gmail.com");
282 SigninManagerFactory::GetForProfile( 282 SigninManagerFactory::GetForProfile(
283 profile_.get())->Initialize(profile_.get(), NULL); 283 profile_.get())->Initialize(profile_.get(), NULL);
284 CreateSyncService(); 284 CreateSyncService();
285 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 285 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
286 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 286 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
287 TokenService* token_service = static_cast<TokenService*>( 287 TokenService* token_service = static_cast<TokenService*>(
288 TokenServiceFactory::GetInstance()->SetTestingFactoryAndUse( 288 TokenServiceFactory::GetInstance()->SetTestingFactoryAndUse(
289 profile_.get(), BuildFakeTokenService)); 289 profile_.get(), BuildFakeTokenService));
290 token_service->LoadTokensFromDB(); 290 token_service->LoadTokensFromDB();
291 291
(...skipping 10 matching lines...) Expand all
302 302
303 // Update the credentials, unstalling the backend. 303 // Update the credentials, unstalling the backend.
304 EXPECT_CALL(*data_type_manager, Configure(_, _)); 304 EXPECT_CALL(*data_type_manager, Configure(_, _));
305 EXPECT_CALL(*data_type_manager, state()). 305 EXPECT_CALL(*data_type_manager, state()).
306 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 306 WillRepeatedly(Return(DataTypeManager::CONFIGURED));
307 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 307 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
308 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 308 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
309 sync_->SetSetupInProgress(true); 309 sync_->SetSetupInProgress(true);
310 310
311 // Simulate successful signin. 311 // Simulate successful signin.
312 GoogleServiceSigninSuccessDetails details("test_user", std::string()); 312 GoogleServiceSigninSuccessDetails details("test_user@gmail.com",
313 std::string());
313 content::NotificationService::current()->Notify( 314 content::NotificationService::current()->Notify(
314 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL, 315 chrome::NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL,
315 content::Source<Profile>(profile_.get()), 316 content::Source<Profile>(profile_.get()),
316 content::Details<const GoogleServiceSigninSuccessDetails>(&details)); 317 content::Details<const GoogleServiceSigninSuccessDetails>(&details));
317 318
318 token_service->IssueAuthTokenForTest( 319 token_service->IssueAuthTokenForTest(
319 GaiaConstants::kSyncService, "sync_token"); 320 GaiaConstants::kSyncService, "sync_token");
320 sync_->SetSetupInProgress(false); 321 sync_->SetSetupInProgress(false);
321 base::MessageLoop::current()->Run(); 322 base::MessageLoop::current()->Run();
322 323
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 356 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
356 357
357 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 358 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
358 GaiaConstants::kSyncService, "sync_token"); 359 GaiaConstants::kSyncService, "sync_token");
359 sync_->Initialize(); 360 sync_->Initialize();
360 EXPECT_TRUE(sync_->ShouldPushChanges()); 361 EXPECT_TRUE(sync_->ShouldPushChanges());
361 } 362 }
362 363
363 TEST_F(ProfileSyncServiceStartupTest, StartNormal) { 364 TEST_F(ProfileSyncServiceStartupTest, StartNormal) {
364 // Pre load the tokens 365 // Pre load the tokens
365 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 366 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
367 "test_user@gmail.com");
366 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 368 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
367 profile_.get(), NULL); 369 profile_.get(), NULL);
368 CreateSyncService(); 370 CreateSyncService();
369 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 371 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
370 EXPECT_CALL(*data_type_manager, Configure(_, _)); 372 EXPECT_CALL(*data_type_manager, Configure(_, _));
371 EXPECT_CALL(*data_type_manager, state()). 373 EXPECT_CALL(*data_type_manager, state()).
372 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 374 WillRepeatedly(Return(DataTypeManager::CONFIGURED));
373 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 375 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
374 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 376 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
375 377
(...skipping 10 matching lines...) Expand all
386 // Clear the datatype preference fields (simulating bug 154940). 388 // Clear the datatype preference fields (simulating bug 154940).
387 profile_->GetPrefs()->ClearPref(prefs::kSyncKeepEverythingSynced); 389 profile_->GetPrefs()->ClearPref(prefs::kSyncKeepEverythingSynced);
388 syncer::ModelTypeSet user_types = syncer::UserTypes(); 390 syncer::ModelTypeSet user_types = syncer::UserTypes();
389 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); 391 for (syncer::ModelTypeSet::Iterator iter = user_types.First();
390 iter.Good(); iter.Inc()) { 392 iter.Good(); iter.Inc()) {
391 profile_->GetPrefs()->ClearPref( 393 profile_->GetPrefs()->ClearPref(
392 browser_sync::SyncPrefs::GetPrefNameForDataType(iter.Get())); 394 browser_sync::SyncPrefs::GetPrefNameForDataType(iter.Get()));
393 } 395 }
394 396
395 // Pre load the tokens 397 // Pre load the tokens
396 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 398 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
399 "test_user@gmail.com");
397 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 400 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
398 profile_.get(), NULL); 401 profile_.get(), NULL);
399 CreateSyncService(); 402 CreateSyncService();
400 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 403 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
401 EXPECT_CALL(*data_type_manager, Configure(_, _)); 404 EXPECT_CALL(*data_type_manager, Configure(_, _));
402 EXPECT_CALL(*data_type_manager, state()). 405 EXPECT_CALL(*data_type_manager, state()).
403 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 406 WillRepeatedly(Return(DataTypeManager::CONFIGURED));
404 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 407 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
405 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 408 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
406 409
407 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 410 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
408 GaiaConstants::kSyncService, "sync_token"); 411 GaiaConstants::kSyncService, "sync_token");
409 sync_->Initialize(); 412 sync_->Initialize();
410 413
411 EXPECT_TRUE(profile_->GetPrefs()->GetBoolean( 414 EXPECT_TRUE(profile_->GetPrefs()->GetBoolean(
412 prefs::kSyncKeepEverythingSynced)); 415 prefs::kSyncKeepEverythingSynced));
413 } 416 }
414 417
415 // Verify that the recovery of datatype preferences doesn't overwrite a valid 418 // Verify that the recovery of datatype preferences doesn't overwrite a valid
416 // case where only bookmarks are enabled. 419 // case where only bookmarks are enabled.
417 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) { 420 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) {
418 // Explicitly set Keep Everything Synced to false and have only bookmarks 421 // Explicitly set Keep Everything Synced to false and have only bookmarks
419 // enabled. 422 // enabled.
420 profile_->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); 423 profile_->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false);
421 424
422 // Pre load the tokens 425 // Pre load the tokens
423 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 426 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
427 "test_user@gmail.com");
424 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 428 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
425 profile_.get(), NULL); 429 profile_.get(), NULL);
426 CreateSyncService(); 430 CreateSyncService();
427 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 431 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
428 EXPECT_CALL(*data_type_manager, Configure(_, _)); 432 EXPECT_CALL(*data_type_manager, Configure(_, _));
429 EXPECT_CALL(*data_type_manager, state()). 433 EXPECT_CALL(*data_type_manager, state()).
430 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 434 WillRepeatedly(Return(DataTypeManager::CONFIGURED));
431 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 435 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
432 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 436 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
433 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 437 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
434 GaiaConstants::kSyncService, "sync_token"); 438 GaiaConstants::kSyncService, "sync_token");
435 sync_->Initialize(); 439 sync_->Initialize();
436 440
437 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean( 441 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean(
438 prefs::kSyncKeepEverythingSynced)); 442 prefs::kSyncKeepEverythingSynced));
439 } 443 }
440 444
441 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { 445 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) {
442 // Service should not be started by Initialize() since it's managed. 446 // Service should not be started by Initialize() since it's managed.
443 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 447 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
448 "test_user@gmail.com");
444 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 449 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
445 profile_.get(), NULL); 450 profile_.get(), NULL);
446 CreateSyncService(); 451 CreateSyncService();
447 452
448 // Disable sync through policy. 453 // Disable sync through policy.
449 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 454 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
450 EXPECT_CALL(*sync_->components_factory_mock(), 455 EXPECT_CALL(*sync_->components_factory_mock(),
451 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); 456 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
452 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 457 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
453 458
454 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 459 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
455 GaiaConstants::kSyncService, "sync_token"); 460 GaiaConstants::kSyncService, "sync_token");
456 sync_->Initialize(); 461 sync_->Initialize();
457 } 462 }
458 463
459 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { 464 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) {
460 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 465 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
466 "test_user@gmail.com");
461 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 467 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
462 profile_.get(), NULL); 468 profile_.get(), NULL);
463 CreateSyncService(); 469 CreateSyncService();
464 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 470 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
465 EXPECT_CALL(*data_type_manager, Configure(_, _)); 471 EXPECT_CALL(*data_type_manager, Configure(_, _));
466 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 472 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
467 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 473 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
468 GaiaConstants::kSyncService, "sync_token"); 474 GaiaConstants::kSyncService, "sync_token");
469 sync_->Initialize(); 475 sync_->Initialize();
470 476
471 // The service should stop when switching to managed mode. 477 // The service should stop when switching to managed mode.
472 Mock::VerifyAndClearExpectations(data_type_manager); 478 Mock::VerifyAndClearExpectations(data_type_manager);
473 EXPECT_CALL(*data_type_manager, state()). 479 EXPECT_CALL(*data_type_manager, state()).
474 WillOnce(Return(DataTypeManager::CONFIGURED)); 480 WillOnce(Return(DataTypeManager::CONFIGURED));
475 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 481 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
476 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 482 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
477 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 483 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
478 484
479 // When switching back to unmanaged, the state should change, but the service 485 // When switching back to unmanaged, the state should change, but the service
480 // should not start up automatically (kSyncSetupCompleted will be false). 486 // should not start up automatically (kSyncSetupCompleted will be false).
481 Mock::VerifyAndClearExpectations(data_type_manager); 487 Mock::VerifyAndClearExpectations(data_type_manager);
482 EXPECT_CALL(*sync_->components_factory_mock(), 488 EXPECT_CALL(*sync_->components_factory_mock(),
483 CreateDataTypeManager(_, _, _, _, _, _)).Times(0); 489 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
484 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 490 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
485 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); 491 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged);
486 } 492 }
487 493
488 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { 494 TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
489 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 495 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
496 "test_user@gmail.com");
490 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 497 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
491 profile_.get(), NULL); 498 profile_.get(), NULL);
492 CreateSyncService(); 499 CreateSyncService();
493 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 500 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
494 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; 501 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED;
495 syncer::SyncError error( 502 syncer::SyncError error(
496 FROM_HERE, "Association failed.", syncer::BOOKMARKS); 503 FROM_HERE, "Association failed.", syncer::BOOKMARKS);
497 std::map<syncer::ModelType, syncer::SyncError> errors; 504 std::map<syncer::ModelType, syncer::SyncError> errors;
498 errors[syncer::BOOKMARKS] = error; 505 errors[syncer::BOOKMARKS] = error;
499 DataTypeManager::ConfigureResult result( 506 DataTypeManager::ConfigureResult result(
500 status, 507 status,
501 syncer::ModelTypeSet(), 508 syncer::ModelTypeSet(),
502 errors, 509 errors,
503 syncer::ModelTypeSet()); 510 syncer::ModelTypeSet());
504 EXPECT_CALL(*data_type_manager, Configure(_, _)). 511 EXPECT_CALL(*data_type_manager, Configure(_, _)).
505 WillRepeatedly( 512 WillRepeatedly(
506 DoAll(InvokeOnConfigureStart(sync_), 513 DoAll(InvokeOnConfigureStart(sync_),
507 InvokeOnConfigureDone(sync_, result))); 514 InvokeOnConfigureDone(sync_, result)));
508 EXPECT_CALL(*data_type_manager, state()). 515 EXPECT_CALL(*data_type_manager, state()).
509 WillOnce(Return(DataTypeManager::STOPPED)); 516 WillOnce(Return(DataTypeManager::STOPPED));
510 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 517 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
511 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 518 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
512 GaiaConstants::kSyncService, "sync_token"); 519 GaiaConstants::kSyncService, "sync_token");
513 sync_->Initialize(); 520 sync_->Initialize();
514 EXPECT_TRUE(sync_->HasUnrecoverableError()); 521 EXPECT_TRUE(sync_->HasUnrecoverableError());
515 } 522 }
516 523
517 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { 524 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) {
518 // Pre load the tokens 525 // Pre load the tokens
519 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 526 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
527 "test_user@gmail.com");
520 SigninManagerFactory::GetForProfile(profile_.get())->Initialize( 528 SigninManagerFactory::GetForProfile(profile_.get())->Initialize(
521 profile_.get(), NULL); 529 profile_.get(), NULL);
522 CreateSyncService(); 530 CreateSyncService();
523 531
524 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 532 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
525 533
526 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 534 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
527 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 535 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
528 GaiaConstants::kSyncService, "sync_token"); 536 GaiaConstants::kSyncService, "sync_token");
529 sync_->fail_initial_download(); 537 sync_->fail_initial_download();
530 538
531 sync_->Initialize(); 539 sync_->Initialize();
532 EXPECT_FALSE(sync_->sync_initialized()); 540 EXPECT_FALSE(sync_->sync_initialized());
533 EXPECT_FALSE(sync_->GetBackendForTest()); 541 EXPECT_FALSE(sync_->GetBackendForTest());
534 } 542 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698