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

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

Issue 2533083002: [Sync] SyncEngine refactor part 1: interfaces. (Closed)
Patch Set: Rebase. Created 4 years 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 "components/browser_sync/profile_sync_service.h" 5 #include "components/browser_sync/profile_sync_service.h"
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
11 #include "components/browser_sync/profile_sync_test_util.h" 11 #include "components/browser_sync/profile_sync_test_util.h"
12 #include "components/prefs/pref_service.h" 12 #include "components/prefs/pref_service.h"
13 #include "components/signin/core/browser/account_tracker_service.h" 13 #include "components/signin/core/browser/account_tracker_service.h"
14 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h" 14 #include "components/signin/core/browser/fake_profile_oauth2_token_service.h"
15 #include "components/signin/core/browser/profile_oauth2_token_service.h" 15 #include "components/signin/core/browser/profile_oauth2_token_service.h"
16 #include "components/signin/core/browser/signin_manager.h" 16 #include "components/signin/core/browser/signin_manager.h"
17 #include "components/signin/core/common/signin_pref_names.h" 17 #include "components/signin/core/common/signin_pref_names.h"
18 #include "components/sync/base/pref_names.h" 18 #include "components/sync/base/pref_names.h"
19 #include "components/sync/driver/data_type_manager_mock.h" 19 #include "components/sync/driver/data_type_manager_mock.h"
20 #include "components/sync/driver/fake_data_type_controller.h" 20 #include "components/sync/driver/fake_data_type_controller.h"
21 #include "components/sync/driver/glue/sync_backend_host_mock.h"
22 #include "components/sync/driver/sync_api_component_factory_mock.h" 21 #include "components/sync/driver/sync_api_component_factory_mock.h"
23 #include "components/sync/driver/sync_service_observer.h" 22 #include "components/sync/driver/sync_service_observer.h"
23 #include "components/sync/engine/fake_sync_engine.h"
24 #include "components/sync_preferences/pref_service_syncable.h" 24 #include "components/sync_preferences/pref_service_syncable.h"
25 #include "google_apis/gaia/gaia_auth_consumer.h" 25 #include "google_apis/gaia/gaia_auth_consumer.h"
26 #include "google_apis/gaia/gaia_constants.h" 26 #include "google_apis/gaia/gaia_constants.h"
27 #include "net/url_request/url_request_test_util.h" 27 #include "net/url_request/url_request_test_util.h"
28 #include "testing/gmock/include/gmock/gmock.h" 28 #include "testing/gmock/include/gmock/gmock.h"
29 #include "testing/gtest/include/gtest/gtest.h" 29 #include "testing/gtest/include/gtest/gtest.h"
30 30
31 using syncer::DataTypeManager; 31 using syncer::DataTypeManager;
32 using syncer::DataTypeManagerMock; 32 using syncer::DataTypeManagerMock;
33 using syncer::SyncBackendHostMock; 33 using syncer::FakeSyncEngine;
34 using testing::_; 34 using testing::_;
35 using testing::AnyNumber; 35 using testing::AnyNumber;
36 using testing::DoAll; 36 using testing::DoAll;
37 using testing::Mock; 37 using testing::Mock;
38 using testing::Return; 38 using testing::Return;
39 39
40 namespace browser_sync { 40 namespace browser_sync {
41 41
42 namespace { 42 namespace {
43 43
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 return account_id; 129 return account_id;
130 } 130 }
131 131
132 DataTypeManagerMock* SetUpDataTypeManager() { 132 DataTypeManagerMock* SetUpDataTypeManager() {
133 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); 133 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
134 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) 134 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _))
135 .WillOnce(Return(data_type_manager)); 135 .WillOnce(Return(data_type_manager));
136 return data_type_manager; 136 return data_type_manager;
137 } 137 }
138 138
139 SyncBackendHostMock* SetUpSyncBackendHost() { 139 FakeSyncEngine* SetUpSyncEngine() {
140 SyncBackendHostMock* sync_backend_host = new SyncBackendHostMock(); 140 FakeSyncEngine* sync_backend_host = new FakeSyncEngine();
141 EXPECT_CALL(*component_factory_, CreateSyncBackendHost(_, _, _, _)) 141 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _))
142 .WillOnce(Return(sync_backend_host)); 142 .WillOnce(Return(sync_backend_host));
143 return sync_backend_host; 143 return sync_backend_host;
144 } 144 }
145 145
146 PrefService* pref_service() { 146 PrefService* pref_service() {
147 return profile_sync_service_bundle_.pref_service(); 147 return profile_sync_service_bundle_.pref_service();
148 } 148 }
149 149
150 base::MessageLoop message_loop_; 150 base::MessageLoop message_loop_;
151 ProfileSyncServiceBundle profile_sync_service_bundle_; 151 ProfileSyncServiceBundle profile_sync_service_bundle_;
(...skipping 10 matching lines...) Expand all
162 SimulateTestUserSignin(nullptr); 162 SimulateTestUserSignin(nullptr);
163 EXPECT_TRUE( 163 EXPECT_TRUE(
164 profile_sync_service_bundle_.signin_manager()->IsAuthenticated()); 164 profile_sync_service_bundle_.signin_manager()->IsAuthenticated());
165 } 165 }
166 }; 166 };
167 167
168 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) { 168 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) {
169 // We've never completed startup. 169 // We've never completed startup.
170 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); 170 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete);
171 CreateSyncService(ProfileSyncService::MANUAL_START); 171 CreateSyncService(ProfileSyncService::MANUAL_START);
172 SetUpSyncBackendHost(); 172 SetUpSyncEngine();
173 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 173 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
174 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 174 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
175 175
176 // Should not actually start, rather just clean things up and wait 176 // Should not actually start, rather just clean things up and wait
177 // to be enabled. 177 // to be enabled.
178 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 178 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
179 sync_service_->Initialize(); 179 sync_service_->Initialize();
180 180
181 // Preferences should be back to defaults. 181 // Preferences should be back to defaults.
182 EXPECT_EQ(0, pref_service()->GetInt64(syncer::prefs::kSyncLastSyncedTime)); 182 EXPECT_EQ(0, pref_service()->GetInt64(syncer::prefs::kSyncLastSyncedTime));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 // This request should fail as login token was not issued. 236 // This request should fail as login token was not issued.
237 EXPECT_FALSE(sync_service_->IsSyncActive()); 237 EXPECT_FALSE(sync_service_->IsSyncActive());
238 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, 238 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP,
239 sync_service_->GetAuthError().state()); 239 sync_service_->GetAuthError().state());
240 } 240 }
241 241
242 // TODO(pavely): Reenable test once android is switched to oauth2. 242 // TODO(pavely): Reenable test once android is switched to oauth2.
243 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { 243 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) {
244 CreateSyncService(ProfileSyncService::MANUAL_START); 244 CreateSyncService(ProfileSyncService::MANUAL_START);
245 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 245 std::string account_id = SimulateTestUserSignin(sync_service_.get());
246 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); 246 FakeSyncEngine* mock_sbh = SetUpSyncEngine();
247 247
248 // Tell the backend to stall while downloading control types (simulating an 248 // Tell the backend to stall while downloading control types (simulating an
249 // auth error). 249 // auth error).
250 mock_sbh->set_fail_initial_download(true); 250 mock_sbh->set_fail_initial_download(true);
251 251
252 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 252 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
253 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 253 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
254 254
255 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 255 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
256 sync_service_->Initialize(); 256 sync_service_->Initialize();
(...skipping 13 matching lines...) Expand all
270 270
271 sync_blocker.reset(); 271 sync_blocker.reset();
272 272
273 // Verify we successfully finish startup and configuration. 273 // Verify we successfully finish startup and configuration.
274 EXPECT_TRUE(sync_service_->IsSyncActive()); 274 EXPECT_TRUE(sync_service_->IsSyncActive());
275 } 275 }
276 276
277 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { 277 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) {
278 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) 278 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _))
279 .Times(0); 279 .Times(0);
280 EXPECT_CALL(*component_factory_, CreateSyncBackendHost(_, _, _, _)).Times(0); 280 EXPECT_CALL(*component_factory_, CreateSyncEngine(_, _, _, _)).Times(0);
281 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); 281 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete);
282 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 282 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
283 283
284 sync_service_->Initialize(); 284 sync_service_->Initialize();
285 // Sync should not start because there are no tokens yet. 285 // Sync should not start because there are no tokens yet.
286 EXPECT_FALSE(sync_service_->IsSyncActive()); 286 EXPECT_FALSE(sync_service_->IsSyncActive());
287 sync_service_->SetFirstSetupComplete(); 287 sync_service_->SetFirstSetupComplete();
288 288
289 // Sync should not start because there are still no tokens. 289 // Sync should not start because there are still no tokens.
290 EXPECT_FALSE(sync_service_->IsSyncActive()); 290 EXPECT_FALSE(sync_service_->IsSyncActive());
291 } 291 }
292 292
293 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { 293 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) {
294 SetUpSyncBackendHost(); 294 SetUpSyncEngine();
295 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 295 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
296 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); 296 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete);
297 EXPECT_CALL(*data_type_manager, Configure(_, _)); 297 EXPECT_CALL(*data_type_manager, Configure(_, _));
298 EXPECT_CALL(*data_type_manager, state()) 298 EXPECT_CALL(*data_type_manager, state())
299 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 299 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
300 EXPECT_CALL(*data_type_manager, Stop()); 300 EXPECT_CALL(*data_type_manager, Stop());
301 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 301 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
302 302
303 IssueTestTokens( 303 IssueTestTokens(
304 profile_sync_service_bundle_.account_tracker()->PickAccountIdForAccount( 304 profile_sync_service_bundle_.account_tracker()->PickAccountIdForAccount(
305 "12345", kEmail)); 305 "12345", kEmail));
306 sync_service_->Initialize(); 306 sync_service_->Initialize();
307 EXPECT_TRUE(sync_service_->IsSyncActive()); 307 EXPECT_TRUE(sync_service_->IsSyncActive());
308 } 308 }
309 309
310 TEST_F(ProfileSyncServiceStartupTest, StartNormal) { 310 TEST_F(ProfileSyncServiceStartupTest, StartNormal) {
311 // Pre load the tokens 311 // Pre load the tokens
312 CreateSyncService(ProfileSyncService::MANUAL_START); 312 CreateSyncService(ProfileSyncService::MANUAL_START);
313 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 313 std::string account_id = SimulateTestUserSignin(sync_service_.get());
314 sync_service_->SetFirstSetupComplete(); 314 sync_service_->SetFirstSetupComplete();
315 SetUpSyncBackendHost(); 315 SetUpSyncEngine();
316 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 316 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
317 EXPECT_CALL(*data_type_manager, Configure(_, _)); 317 EXPECT_CALL(*data_type_manager, Configure(_, _));
318 EXPECT_CALL(*data_type_manager, state()) 318 EXPECT_CALL(*data_type_manager, state())
319 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 319 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
320 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 320 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
321 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 321 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
322 322
323 IssueTestTokens(account_id); 323 IssueTestTokens(account_id);
324 324
325 sync_service_->Initialize(); 325 sync_service_->Initialize();
326 } 326 }
327 327
328 // Test that we can recover from a case where a bug in the code resulted in 328 // Test that we can recover from a case where a bug in the code resulted in
329 // OnUserChoseDatatypes not being properly called and datatype preferences 329 // OnUserChoseDatatypes not being properly called and datatype preferences
330 // therefore being left unset. 330 // therefore being left unset.
331 TEST_F(ProfileSyncServiceStartupTest, StartRecoverDatatypePrefs) { 331 TEST_F(ProfileSyncServiceStartupTest, StartRecoverDatatypePrefs) {
332 // Clear the datatype preference fields (simulating bug 154940). 332 // Clear the datatype preference fields (simulating bug 154940).
333 pref_service()->ClearPref(syncer::prefs::kSyncKeepEverythingSynced); 333 pref_service()->ClearPref(syncer::prefs::kSyncKeepEverythingSynced);
334 syncer::ModelTypeSet user_types = syncer::UserTypes(); 334 syncer::ModelTypeSet user_types = syncer::UserTypes();
335 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); iter.Good(); 335 for (syncer::ModelTypeSet::Iterator iter = user_types.First(); iter.Good();
336 iter.Inc()) { 336 iter.Inc()) {
337 pref_service()->ClearPref( 337 pref_service()->ClearPref(
338 syncer::SyncPrefs::GetPrefNameForDataType(iter.Get())); 338 syncer::SyncPrefs::GetPrefNameForDataType(iter.Get()));
339 } 339 }
340 340
341 // Pre load the tokens 341 // Pre load the tokens
342 CreateSyncService(ProfileSyncService::MANUAL_START); 342 CreateSyncService(ProfileSyncService::MANUAL_START);
343 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 343 std::string account_id = SimulateTestUserSignin(sync_service_.get());
344 sync_service_->SetFirstSetupComplete(); 344 sync_service_->SetFirstSetupComplete();
345 SetUpSyncBackendHost(); 345 SetUpSyncEngine();
346 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 346 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
347 EXPECT_CALL(*data_type_manager, Configure(_, _)); 347 EXPECT_CALL(*data_type_manager, Configure(_, _));
348 EXPECT_CALL(*data_type_manager, state()) 348 EXPECT_CALL(*data_type_manager, state())
349 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 349 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
350 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 350 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
351 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 351 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
352 352
353 IssueTestTokens(account_id); 353 IssueTestTokens(account_id);
354 sync_service_->Initialize(); 354 sync_service_->Initialize();
355 355
356 EXPECT_TRUE( 356 EXPECT_TRUE(
357 pref_service()->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced)); 357 pref_service()->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced));
358 } 358 }
359 359
360 // Verify that the recovery of datatype preferences doesn't overwrite a valid 360 // Verify that the recovery of datatype preferences doesn't overwrite a valid
361 // case where only bookmarks are enabled. 361 // case where only bookmarks are enabled.
362 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) { 362 TEST_F(ProfileSyncServiceStartupTest, StartDontRecoverDatatypePrefs) {
363 // Explicitly set Keep Everything Synced to false and have only bookmarks 363 // Explicitly set Keep Everything Synced to false and have only bookmarks
364 // enabled. 364 // enabled.
365 pref_service()->SetBoolean(syncer::prefs::kSyncKeepEverythingSynced, false); 365 pref_service()->SetBoolean(syncer::prefs::kSyncKeepEverythingSynced, false);
366 366
367 // Pre load the tokens 367 // Pre load the tokens
368 CreateSyncService(ProfileSyncService::MANUAL_START); 368 CreateSyncService(ProfileSyncService::MANUAL_START);
369 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 369 std::string account_id = SimulateTestUserSignin(sync_service_.get());
370 sync_service_->SetFirstSetupComplete(); 370 sync_service_->SetFirstSetupComplete();
371 SetUpSyncBackendHost(); 371 SetUpSyncEngine();
372 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 372 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
373 EXPECT_CALL(*data_type_manager, Configure(_, _)); 373 EXPECT_CALL(*data_type_manager, Configure(_, _));
374 EXPECT_CALL(*data_type_manager, state()) 374 EXPECT_CALL(*data_type_manager, state())
375 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 375 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
376 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 376 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
377 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 377 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
378 IssueTestTokens(account_id); 378 IssueTestTokens(account_id);
379 sync_service_->Initialize(); 379 sync_service_->Initialize();
380 380
381 EXPECT_FALSE( 381 EXPECT_FALSE(
(...skipping 11 matching lines...) Expand all
393 .Times(0); 393 .Times(0);
394 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 394 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
395 395
396 sync_service_->Initialize(); 396 sync_service_->Initialize();
397 } 397 }
398 398
399 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { 399 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) {
400 CreateSyncService(ProfileSyncService::MANUAL_START); 400 CreateSyncService(ProfileSyncService::MANUAL_START);
401 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 401 std::string account_id = SimulateTestUserSignin(sync_service_.get());
402 sync_service_->SetFirstSetupComplete(); 402 sync_service_->SetFirstSetupComplete();
403 SetUpSyncBackendHost(); 403 SetUpSyncEngine();
404 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 404 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
405 EXPECT_CALL(*data_type_manager, Configure(_, _)); 405 EXPECT_CALL(*data_type_manager, Configure(_, _));
406 EXPECT_CALL(*data_type_manager, state()) 406 EXPECT_CALL(*data_type_manager, state())
407 .WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 407 .WillRepeatedly(Return(DataTypeManager::CONFIGURED));
408 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 408 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
409 IssueTestTokens(account_id); 409 IssueTestTokens(account_id);
410 sync_service_->Initialize(); 410 sync_service_->Initialize();
411 EXPECT_TRUE(sync_service_->IsBackendInitialized()); 411 EXPECT_TRUE(sync_service_->IsBackendInitialized());
412 EXPECT_TRUE(sync_service_->IsSyncActive()); 412 EXPECT_TRUE(sync_service_->IsSyncActive());
413 413
(...skipping 14 matching lines...) Expand all
428 .Times(0); 428 .Times(0);
429 pref_service()->ClearPref(syncer::prefs::kSyncManaged); 429 pref_service()->ClearPref(syncer::prefs::kSyncManaged);
430 EXPECT_FALSE(sync_service_->IsBackendInitialized()); 430 EXPECT_FALSE(sync_service_->IsBackendInitialized());
431 EXPECT_FALSE(sync_service_->IsSyncActive()); 431 EXPECT_FALSE(sync_service_->IsSyncActive());
432 } 432 }
433 433
434 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { 434 TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
435 CreateSyncService(ProfileSyncService::MANUAL_START); 435 CreateSyncService(ProfileSyncService::MANUAL_START);
436 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 436 std::string account_id = SimulateTestUserSignin(sync_service_.get());
437 sync_service_->SetFirstSetupComplete(); 437 sync_service_->SetFirstSetupComplete();
438 SetUpSyncBackendHost(); 438 SetUpSyncEngine();
439 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 439 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
440 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED; 440 DataTypeManager::ConfigureStatus status = DataTypeManager::ABORTED;
441 DataTypeManager::ConfigureResult result(status, syncer::ModelTypeSet()); 441 DataTypeManager::ConfigureResult result(status, syncer::ModelTypeSet());
442 EXPECT_CALL(*data_type_manager, Configure(_, _)) 442 EXPECT_CALL(*data_type_manager, Configure(_, _))
443 .WillRepeatedly( 443 .WillRepeatedly(
444 DoAll(InvokeOnConfigureStart(sync_service_.get()), 444 DoAll(InvokeOnConfigureStart(sync_service_.get()),
445 InvokeOnConfigureDone( 445 InvokeOnConfigureDone(
446 sync_service_.get(), 446 sync_service_.get(),
447 base::Bind(&ProfileSyncServiceStartupTest::SetError, 447 base::Bind(&ProfileSyncServiceStartupTest::SetError,
448 base::Unretained(this)), 448 base::Unretained(this)),
449 result))); 449 result)));
450 EXPECT_CALL(*data_type_manager, state()) 450 EXPECT_CALL(*data_type_manager, state())
451 .WillOnce(Return(DataTypeManager::STOPPED)); 451 .WillOnce(Return(DataTypeManager::STOPPED));
452 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 452 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
453 IssueTestTokens(account_id); 453 IssueTestTokens(account_id);
454 sync_service_->Initialize(); 454 sync_service_->Initialize();
455 EXPECT_TRUE(sync_service_->HasUnrecoverableError()); 455 EXPECT_TRUE(sync_service_->HasUnrecoverableError());
456 } 456 }
457 457
458 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) { 458 TEST_F(ProfileSyncServiceStartupTest, StartDownloadFailed) {
459 // Pre load the tokens 459 // Pre load the tokens
460 CreateSyncService(ProfileSyncService::MANUAL_START); 460 CreateSyncService(ProfileSyncService::MANUAL_START);
461 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 461 std::string account_id = SimulateTestUserSignin(sync_service_.get());
462 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); 462 FakeSyncEngine* mock_sbh = SetUpSyncEngine();
463 mock_sbh->set_fail_initial_download(true); 463 mock_sbh->set_fail_initial_download(true);
464 464
465 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete); 465 pref_service()->ClearPref(syncer::prefs::kSyncFirstSetupComplete);
466 466
467 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 467 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
468 sync_service_->Initialize(); 468 sync_service_->Initialize();
469 469
470 auto sync_blocker = sync_service_->GetSetupInProgressHandle(); 470 auto sync_blocker = sync_service_->GetSetupInProgressHandle();
471 IssueTestTokens(account_id); 471 IssueTestTokens(account_id);
472 sync_blocker.reset(); 472 sync_blocker.reset();
473 EXPECT_FALSE(sync_service_->IsSyncActive()); 473 EXPECT_FALSE(sync_service_->IsSyncActive());
474 } 474 }
475 475
476 } // namespace browser_sync 476 } // namespace browser_sync
OLDNEW
« no previous file with comments | « components/browser_sync/profile_sync_service_mock.h ('k') | components/browser_sync/profile_sync_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698