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

Side by Side Diff: components/browser_sync/profile_sync_service_startup_unittest.cc

Issue 2345843003: [Sync] Merge //components/browser_sync into one directory. (Closed)
Patch Set: Address comment + rebase. Created 4 years, 3 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 <memory> 5 #include <memory>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/files/file_util.h" 8 #include "base/files/file_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"
11 #include "build/build_config.h" 11 #include "build/build_config.h"
12 #include "components/browser_sync/browser/profile_sync_service.h" 12 #include "components/browser_sync/profile_sync_service.h"
13 #include "components/browser_sync/browser/profile_sync_test_util.h" 13 #include "components/browser_sync/profile_sync_test_util.h"
14 #include "components/prefs/pref_service.h" 14 #include "components/prefs/pref_service.h"
15 #include "components/signin/core/browser/account_tracker_service.h" 15 #include "components/signin/core/browser/account_tracker_service.h"
16 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h" 16 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h"
17 #include "components/signin/core/browser/profile_oauth2_token_service.h" 17 #include "components/signin/core/browser/profile_oauth2_token_service.h"
18 #include "components/signin/core/browser/signin_manager.h" 18 #include "components/signin/core/browser/signin_manager.h"
19 #include "components/signin/core/common/signin_pref_names.h" 19 #include "components/signin/core/common/signin_pref_names.h"
20 #include "components/sync/driver/data_type_manager.h" 20 #include "components/sync/driver/data_type_manager.h"
21 #include "components/sync/driver/data_type_manager_mock.h" 21 #include "components/sync/driver/data_type_manager_mock.h"
22 #include "components/sync/driver/fake_data_type_controller.h" 22 #include "components/sync/driver/fake_data_type_controller.h"
23 #include "components/sync/driver/glue/sync_backend_host_mock.h" 23 #include "components/sync/driver/glue/sync_backend_host_mock.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 ProfileSyncServiceStartupTest() { 79 ProfileSyncServiceStartupTest() {
80 profile_sync_service_bundle_.auth_service() 80 profile_sync_service_bundle_.auth_service()
81 ->set_auto_post_fetch_response_on_message_loop(true); 81 ->set_auto_post_fetch_response_on_message_loop(true);
82 } 82 }
83 83
84 ~ProfileSyncServiceStartupTest() override { 84 ~ProfileSyncServiceStartupTest() override {
85 sync_service_->RemoveObserver(&observer_); 85 sync_service_->RemoveObserver(&observer_);
86 sync_service_->Shutdown(); 86 sync_service_->Shutdown();
87 } 87 }
88 88
89 void CreateSyncService( 89 void CreateSyncService(ProfileSyncService::StartBehavior start_behavior) {
90 ProfileSyncService::StartBehavior start_behavior) {
91 component_factory_ = profile_sync_service_bundle_.component_factory(); 90 component_factory_ = profile_sync_service_bundle_.component_factory();
92 browser_sync::ProfileSyncServiceBundle::SyncClientBuilder builder( 91 browser_sync::ProfileSyncServiceBundle::SyncClientBuilder builder(
93 &profile_sync_service_bundle_); 92 &profile_sync_service_bundle_);
94 ProfileSyncService::InitParams init_params = 93 ProfileSyncService::InitParams init_params =
95 profile_sync_service_bundle_.CreateBasicInitParams(start_behavior, 94 profile_sync_service_bundle_.CreateBasicInitParams(start_behavior,
96 builder.Build()); 95 builder.Build());
97 96
98 sync_service_.reset(new ProfileSyncService(std::move(init_params))); 97 sync_service_.reset(new ProfileSyncService(std::move(init_params)));
99 sync_service_->RegisterDataTypeController( 98 sync_service_->RegisterDataTypeController(
100 base::MakeUnique<sync_driver::FakeDataTypeController>( 99 base::MakeUnique<sync_driver::FakeDataTypeController>(
101 syncer::BOOKMARKS)); 100 syncer::BOOKMARKS));
102 sync_service_->AddObserver(&observer_); 101 sync_service_->AddObserver(&observer_);
103 } 102 }
104 103
105 void IssueTestTokens(const std::string& account_id) { 104 void IssueTestTokens(const std::string& account_id) {
106 profile_sync_service_bundle_.auth_service()->UpdateCredentials( 105 profile_sync_service_bundle_.auth_service()->UpdateCredentials(
107 account_id, "oauth2_login_token"); 106 account_id, "oauth2_login_token");
108 } 107 }
109 108
110 void SetError(DataTypeManager::ConfigureResult* result) { 109 void SetError(DataTypeManager::ConfigureResult* result) {
111 sync_driver::DataTypeStatusTable::TypeErrorMap errors; 110 sync_driver::DataTypeStatusTable::TypeErrorMap errors;
112 errors[syncer::BOOKMARKS] = 111 errors[syncer::BOOKMARKS] =
113 syncer::SyncError(FROM_HERE, 112 syncer::SyncError(FROM_HERE, syncer::SyncError::UNRECOVERABLE_ERROR,
114 syncer::SyncError::UNRECOVERABLE_ERROR, 113 "Error", syncer::BOOKMARKS);
115 "Error",
116 syncer::BOOKMARKS);
117 result->data_type_status_table.UpdateFailedDataTypes(errors); 114 result->data_type_status_table.UpdateFailedDataTypes(errors);
118 } 115 }
119 116
120 protected: 117 protected:
121 std::string SimulateTestUserSignin(ProfileSyncService* sync_service) { 118 std::string SimulateTestUserSignin(ProfileSyncService* sync_service) {
122 std::string account_id = 119 std::string account_id =
123 profile_sync_service_bundle_.account_tracker()->SeedAccountInfo(kGaiaId, 120 profile_sync_service_bundle_.account_tracker()->SeedAccountInfo(kGaiaId,
124 kEmail); 121 kEmail);
125 pref_service()->SetString(prefs::kGoogleServicesAccountId, account_id); 122 pref_service()->SetString(prefs::kGoogleServicesAccountId, account_id);
126 #if !defined(OS_CHROMEOS) 123 #if !defined(OS_CHROMEOS)
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 184
188 // Preferences should be back to defaults. 185 // Preferences should be back to defaults.
189 EXPECT_EQ(0, 186 EXPECT_EQ(0,
190 pref_service()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime)); 187 pref_service()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime));
191 EXPECT_FALSE( 188 EXPECT_FALSE(
192 pref_service()->GetBoolean(sync_driver::prefs::kSyncFirstSetupComplete)); 189 pref_service()->GetBoolean(sync_driver::prefs::kSyncFirstSetupComplete));
193 Mock::VerifyAndClearExpectations(data_type_manager); 190 Mock::VerifyAndClearExpectations(data_type_manager);
194 191
195 // Then start things up. 192 // Then start things up.
196 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 193 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
197 EXPECT_CALL(*data_type_manager, state()). 194 EXPECT_CALL(*data_type_manager, state())
198 WillOnce(Return(DataTypeManager::CONFIGURED)). 195 .WillOnce(Return(DataTypeManager::CONFIGURED))
199 WillOnce(Return(DataTypeManager::CONFIGURED)); 196 .WillOnce(Return(DataTypeManager::CONFIGURED));
200 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 197 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
201 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 198 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
202 199
203 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); 200 auto sync_blocker = sync_service_->GetSetupInProgressHandle();
204 201
205 // Simulate successful signin as test_user. 202 // Simulate successful signin as test_user.
206 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 203 std::string account_id = SimulateTestUserSignin(sync_service_.get());
207 // Create some tokens in the token service. 204 // Create some tokens in the token service.
208 IssueTestTokens(account_id); 205 IssueTestTokens(account_id);
209 206
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 258 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
262 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 259 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
263 260
264 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 261 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
265 sync_service_->Initialize(); 262 sync_service_->Initialize();
266 EXPECT_FALSE(sync_service_->IsSyncActive()); 263 EXPECT_FALSE(sync_service_->IsSyncActive());
267 Mock::VerifyAndClearExpectations(data_type_manager); 264 Mock::VerifyAndClearExpectations(data_type_manager);
268 265
269 // Update the credentials, unstalling the backend. 266 // Update the credentials, unstalling the backend.
270 EXPECT_CALL(*data_type_manager, Configure(_, _)); 267 EXPECT_CALL(*data_type_manager, Configure(_, _));
271 EXPECT_CALL(*data_type_manager, state()). 268 EXPECT_CALL(*data_type_manager, state())
272 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 269 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
273 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 270 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
274 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 271 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
275 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); 272 auto sync_blocker = sync_service_->GetSetupInProgressHandle();
276 273
277 // Simulate successful signin. 274 // Simulate successful signin.
278 SimulateTestUserSignin(sync_service_.get()); 275 SimulateTestUserSignin(sync_service_.get());
279 276
280 sync_blocker.reset(); 277 sync_blocker.reset();
281 278
282 // Verify we successfully finish startup and configuration. 279 // Verify we successfully finish startup and configuration.
(...skipping 14 matching lines...) Expand all
297 294
298 // Sync should not start because there are still no tokens. 295 // Sync should not start because there are still no tokens.
299 EXPECT_FALSE(sync_service_->IsSyncActive()); 296 EXPECT_FALSE(sync_service_->IsSyncActive());
300 } 297 }
301 298
302 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { 299 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) {
303 SetUpSyncBackendHost(); 300 SetUpSyncBackendHost();
304 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 301 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
305 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 302 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
306 EXPECT_CALL(*data_type_manager, Configure(_, _)); 303 EXPECT_CALL(*data_type_manager, Configure(_, _));
307 EXPECT_CALL(*data_type_manager, state()). 304 EXPECT_CALL(*data_type_manager, state())
308 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 305 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
309 EXPECT_CALL(*data_type_manager, Stop()); 306 EXPECT_CALL(*data_type_manager, Stop());
310 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 307 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
311 308
312 IssueTestTokens( 309 IssueTestTokens(
313 profile_sync_service_bundle_.account_tracker()->PickAccountIdForAccount( 310 profile_sync_service_bundle_.account_tracker()->PickAccountIdForAccount(
314 "12345", kEmail)); 311 "12345", kEmail));
315 sync_service_->Initialize(); 312 sync_service_->Initialize();
316 EXPECT_TRUE(sync_service_->IsSyncActive()); 313 EXPECT_TRUE(sync_service_->IsSyncActive());
317 } 314 }
318 315
319 TEST_F(ProfileSyncServiceStartupTest, StartNormal) { 316 TEST_F(ProfileSyncServiceStartupTest, StartNormal) {
320 // Pre load the tokens 317 // Pre load the tokens
321 CreateSyncService(ProfileSyncService::MANUAL_START); 318 CreateSyncService(ProfileSyncService::MANUAL_START);
322 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 319 std::string account_id = SimulateTestUserSignin(sync_service_.get());
323 sync_service_->SetFirstSetupComplete(); 320 sync_service_->SetFirstSetupComplete();
324 SetUpSyncBackendHost(); 321 SetUpSyncBackendHost();
325 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 322 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
326 EXPECT_CALL(*data_type_manager, Configure(_, _)); 323 EXPECT_CALL(*data_type_manager, Configure(_, _));
327 EXPECT_CALL(*data_type_manager, state()). 324 EXPECT_CALL(*data_type_manager, state())
328 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 325 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
329 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 326 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
330 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 327 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
331 328
332 IssueTestTokens(account_id); 329 IssueTestTokens(account_id);
333 330
334 sync_service_->Initialize(); 331 sync_service_->Initialize();
335 } 332 }
336 333
337 // Test that we can recover from a case where a bug in the code resulted in 334 // Test that we can recover from a case where a bug in the code resulted in
338 // OnUserChoseDatatypes not being properly called and datatype preferences 335 // OnUserChoseDatatypes not being properly called and datatype preferences
339 // therefore being left unset. 336 // therefore being left unset.
340 TEST_F(ProfileSyncServiceStartupTest, StartRecoverDatatypePrefs) { 337 TEST_F(ProfileSyncServiceStartupTest, StartRecoverDatatypePrefs) {
341 // Clear the datatype preference fields (simulating bug 154940). 338 // Clear the datatype preference fields (simulating bug 154940).
342 pref_service()->ClearPref(sync_driver::prefs::kSyncKeepEverythingSynced); 339 pref_service()->ClearPref(sync_driver::prefs::kSyncKeepEverythingSynced);
343 syncer::ModelTypeSet user_types = syncer::UserTypes(); 340 syncer::ModelTypeSet user_types = syncer::UserTypes();
344 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); 341 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); iter.Good();
345 iter.Good(); iter.Inc()) { 342 iter.Inc()) {
346 pref_service()->ClearPref( 343 pref_service()->ClearPref(
347 sync_driver::SyncPrefs::GetPrefNameForDataType(iter.Get())); 344 sync_driver::SyncPrefs::GetPrefNameForDataType(iter.Get()));
348 } 345 }
349 346
350 // Pre load the tokens 347 // Pre load the tokens
351 CreateSyncService(ProfileSyncService::MANUAL_START); 348 CreateSyncService(ProfileSyncService::MANUAL_START);
352 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 349 std::string account_id = SimulateTestUserSignin(sync_service_.get());
353 sync_service_->SetFirstSetupComplete(); 350 sync_service_->SetFirstSetupComplete();
354 SetUpSyncBackendHost(); 351 SetUpSyncBackendHost();
355 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 352 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
356 EXPECT_CALL(*data_type_manager, Configure(_, _)); 353 EXPECT_CALL(*data_type_manager, Configure(_, _));
357 EXPECT_CALL(*data_type_manager, state()). 354 EXPECT_CALL(*data_type_manager, state())
358 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 355 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
359 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 356 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
360 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 357 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
361 358
362 IssueTestTokens(account_id); 359 IssueTestTokens(account_id);
363 sync_service_->Initialize(); 360 sync_service_->Initialize();
364 361
365 EXPECT_TRUE(pref_service()->GetBoolean( 362 EXPECT_TRUE(pref_service()->GetBoolean(
366 sync_driver::prefs::kSyncKeepEverythingSynced)); 363 sync_driver::prefs::kSyncKeepEverythingSynced));
367 } 364 }
368 365
369 // Verify that the recovery of datatype preferences doesn't overwrite a valid 366 // Verify that the recovery of datatype preferences doesn't overwrite a valid
370 // case where only bookmarks are enabled. 367 // case where only bookmarks are enabled.
371 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) { 368 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) {
372 // Explicitly set Keep Everything Synced to false and have only bookmarks 369 // Explicitly set Keep Everything Synced to false and have only bookmarks
373 // enabled. 370 // enabled.
374 pref_service()->SetBoolean(sync_driver::prefs::kSyncKeepEverythingSynced, 371 pref_service()->SetBoolean(sync_driver::prefs::kSyncKeepEverythingSynced,
375 false); 372 false);
376 373
377 // Pre load the tokens 374 // Pre load the tokens
378 CreateSyncService(ProfileSyncService::MANUAL_START); 375 CreateSyncService(ProfileSyncService::MANUAL_START);
379 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 376 std::string account_id = SimulateTestUserSignin(sync_service_.get());
380 sync_service_->SetFirstSetupComplete(); 377 sync_service_->SetFirstSetupComplete();
381 SetUpSyncBackendHost(); 378 SetUpSyncBackendHost();
382 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 379 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
383 EXPECT_CALL(*data_type_manager, Configure(_, _)); 380 EXPECT_CALL(*data_type_manager, Configure(_, _));
384 EXPECT_CALL(*data_type_manager, state()). 381 EXPECT_CALL(*data_type_manager, state())
385 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 382 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
386 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 383 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
387 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 384 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
388 IssueTestTokens(account_id); 385 IssueTestTokens(account_id);
389 sync_service_->Initialize(); 386 sync_service_->Initialize();
390 387
391 EXPECT_FALSE(pref_service()->GetBoolean( 388 EXPECT_FALSE(pref_service()->GetBoolean(
392 sync_driver::prefs::kSyncKeepEverythingSynced)); 389 sync_driver::prefs::kSyncKeepEverythingSynced));
393 } 390 }
394 391
395 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { 392 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) {
(...skipping 20 matching lines...) Expand all
416 EXPECT_CALL(*data_type_manager, state()) 413 EXPECT_CALL(*data_type_manager, state())
417 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 414 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
418 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 415 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
419 IssueTestTokens(account_id); 416 IssueTestTokens(account_id);
420 sync_service_->Initialize(); 417 sync_service_->Initialize();
421 EXPECT_TRUE(sync_service_->IsBackendInitialized()); 418 EXPECT_TRUE(sync_service_->IsBackendInitialized());
422 EXPECT_TRUE(sync_service_->IsSyncActive()); 419 EXPECT_TRUE(sync_service_->IsSyncActive());
423 420
424 // The service should stop when switching to managed mode. 421 // The service should stop when switching to managed mode.
425 Mock::VerifyAndClearExpectations(data_type_manager); 422 Mock::VerifyAndClearExpectations(data_type_manager);
426 EXPECT_CALL(*data_type_manager, state()). 423 EXPECT_CALL(*data_type_manager, state())
427 WillOnce(Return(DataTypeManager::CONFIGURED)); 424 .WillOnce(Return(DataTypeManager::CONFIGURED));
428 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 425 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
429 pref_service()->SetBoolean(sync_driver::prefs::kSyncManaged, true); 426 pref_service()->SetBoolean(sync_driver::prefs::kSyncManaged, true);
430 EXPECT_FALSE(sync_service_->IsBackendInitialized()); 427 EXPECT_FALSE(sync_service_->IsBackendInitialized());
431 // Note that PSS no longer references |data_type_manager| after stopping. 428 // Note that PSS no longer references |data_type_manager| after stopping.
432 429
433 // When switching back to unmanaged, the state should change but sync should 430 // When switching back to unmanaged, the state should change but sync should
434 // not start automatically because IsFirstSetupComplete() will be false. 431 // not start automatically because IsFirstSetupComplete() will be false.
435 // A new DataTypeManager should not be created. 432 // A new DataTypeManager should not be created.
436 Mock::VerifyAndClearExpectations(data_type_manager); 433 Mock::VerifyAndClearExpectations(data_type_manager);
437 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) 434 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _))
438 .Times(0); 435 .Times(0);
439 pref_service()->ClearPref(sync_driver::prefs::kSyncManaged); 436 pref_service()->ClearPref(sync_driver::prefs::kSyncManaged);
440 EXPECT_FALSE(sync_service_->IsBackendInitialized()); 437 EXPECT_FALSE(sync_service_->IsBackendInitialized());
441 EXPECT_FALSE(sync_service_->IsSyncActive()); 438 EXPECT_FALSE(sync_service_->IsSyncActive());
442 } 439 }
443 440
444 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { 441 TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
445 CreateSyncService(ProfileSyncService::MANUAL_START); 442 CreateSyncService(ProfileSyncService::MANUAL_START);
446 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 443 std::string account_id = SimulateTestUserSignin(sync_service_.get());
447 sync_service_->SetFirstSetupComplete(); 444 sync_service_->SetFirstSetupComplete();
448 SetUpSyncBackendHost(); 445 SetUpSyncBackendHost();
449 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 446 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
450 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; 447 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED;
451 DataTypeManager::ConfigureResult result( 448 DataTypeManager::ConfigureResult result(status, syncer::ModelTypeSet());
452 status,
453 syncer::ModelTypeSet());
454 EXPECT_CALL(*data_type_manager, Configure(_, _)) 449 EXPECT_CALL(*data_type_manager, Configure(_, _))
455 .WillRepeatedly( 450 .WillRepeatedly(
456 DoAll(InvokeOnConfigureStart(sync_service_.get()), 451 DoAll(InvokeOnConfigureStart(sync_service_.get()),
457 InvokeOnConfigureDone( 452 InvokeOnConfigureDone(
458 sync_service_.get(), 453 sync_service_.get(),
459 base::Bind(&ProfileSyncServiceStartupTest::SetError, 454 base::Bind(&ProfileSyncServiceStartupTest::SetError,
460 base::Unretained(this)), 455 base::Unretained(this)),
461 result))); 456 result)));
462 EXPECT_CALL(*data_type_manager, state()). 457 EXPECT_CALL(*data_type_manager, state())
463 WillOnce(Return(DataTypeManager::STOPPED)); 458 .WillOnce(Return(DataTypeManager::STOPPED));
464 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 459 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
465 IssueTestTokens(account_id); 460 IssueTestTokens(account_id);
466 sync_service_->Initialize(); 461 sync_service_->Initialize();
467 EXPECT_TRUE(sync_service_->HasUnrecoverableError()); 462 EXPECT_TRUE(sync_service_->HasUnrecoverableError());
468 } 463 }
469 464
470 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { 465 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) {
471 // Pre load the tokens 466 // Pre load the tokens
472 CreateSyncService(ProfileSyncService::MANUAL_START); 467 CreateSyncService(ProfileSyncService::MANUAL_START);
473 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 468 std::string account_id = SimulateTestUserSignin(sync_service_.get());
474 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); 469 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost();
475 mock_sbh->set_fail_initial_download(true); 470 mock_sbh->set_fail_initial_download(true);
476 471
477 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 472 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
478 473
479 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 474 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
480 sync_service_->Initialize(); 475 sync_service_->Initialize();
481 476
482 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); 477 auto sync_blocker = sync_service_->GetSetupInProgressHandle();
483 IssueTestTokens(account_id); 478 IssueTestTokens(account_id);
484 sync_blocker.reset(); 479 sync_blocker.reset();
485 EXPECT_FALSE(sync_service_->IsSyncActive()); 480 EXPECT_FALSE(sync_service_->IsSyncActive());
486 } 481 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698