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

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

Issue 534733002: Revert "[Sync] Move DataTypeStatusTable ownership into DataTypeManager." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 "base/files/file_util.h" 5 #include "base/files/file_util.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/prefs/pref_service_syncable.h" 9 #include "chrome/browser/prefs/pref_service_syncable.h"
10 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" 10 #include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 static_cast<ProfileSyncService*>(pss); 52 static_cast<ProfileSyncService*>(pss);
53 service->OnConfigureStart(); 53 service->OnConfigureStart();
54 } 54 }
55 55
56 ACTION_P3(InvokeOnConfigureDone, pss, error_callback, result) { 56 ACTION_P3(InvokeOnConfigureDone, pss, error_callback, result) {
57 ProfileSyncService* service = 57 ProfileSyncService* service =
58 static_cast<ProfileSyncService*>(pss); 58 static_cast<ProfileSyncService*>(pss);
59 DataTypeManager::ConfigureResult configure_result = 59 DataTypeManager::ConfigureResult configure_result =
60 static_cast<DataTypeManager::ConfigureResult>(result); 60 static_cast<DataTypeManager::ConfigureResult>(result);
61 if (result.status == sync_driver::DataTypeManager::ABORTED) 61 if (result.status == sync_driver::DataTypeManager::ABORTED)
62 error_callback.Run(&configure_result); 62 error_callback.Run();
63 service->OnConfigureDone(configure_result); 63 service->OnConfigureDone(configure_result);
64 } 64 }
65 65
66 class TestProfileSyncServiceNoBackup : public ProfileSyncService { 66 class TestProfileSyncServiceNoBackup : public ProfileSyncService {
67 public: 67 public:
68 TestProfileSyncServiceNoBackup( 68 TestProfileSyncServiceNoBackup(
69 scoped_ptr<ProfileSyncComponentsFactory> factory, 69 scoped_ptr<ProfileSyncComponentsFactory> factory,
70 Profile* profile, 70 Profile* profile,
71 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper, 71 scoped_ptr<SupervisedUserSigninManagerWrapper> signin_wrapper,
72 ProfileOAuth2TokenService* oauth2_token_service, 72 ProfileOAuth2TokenService* oauth2_token_service,
73 browser_sync::ProfileSyncServiceStartBehavior start_behavior) 73 browser_sync::ProfileSyncServiceStartBehavior start_behavior)
74 : ProfileSyncService(factory.Pass(), profile, signin_wrapper.Pass(), 74 : ProfileSyncService(factory.Pass(), profile, signin_wrapper.Pass(),
75 oauth2_token_service, start_behavior) {} 75 oauth2_token_service, start_behavior) {}
76 76
77 protected: 77 protected:
78 virtual bool NeedBackup() const OVERRIDE { 78 virtual bool NeedBackup() const OVERRIDE {
79 return false; 79 return false;
80 } 80 }
81 }; 81 };
82 82
83 class ProfileSyncServiceStartupTest : public testing::Test { 83 class ProfileSyncServiceStartupTest : public testing::Test {
84 public: 84 public:
85 ProfileSyncServiceStartupTest() 85 ProfileSyncServiceStartupTest()
86 : thread_bundle_(content::TestBrowserThreadBundle::REAL_DB_THREAD | 86 : thread_bundle_(content::TestBrowserThreadBundle::REAL_DB_THREAD |
87 content::TestBrowserThreadBundle::REAL_FILE_THREAD | 87 content::TestBrowserThreadBundle::REAL_FILE_THREAD |
88 content::TestBrowserThreadBundle::REAL_IO_THREAD), 88 content::TestBrowserThreadBundle::REAL_IO_THREAD),
89 profile_manager_(TestingBrowserProcess::GetGlobal()), 89 profile_manager_(TestingBrowserProcess::GetGlobal()),
90 sync_(NULL) {} 90 sync_(NULL),
91 data_type_status_table_(NULL) {}
91 92
92 virtual ~ProfileSyncServiceStartupTest() { 93 virtual ~ProfileSyncServiceStartupTest() {
93 } 94 }
94 95
95 virtual void SetUp() { 96 virtual void SetUp() {
96 CHECK(profile_manager_.SetUp()); 97 CHECK(profile_manager_.SetUp());
97 98
98 TestingProfile::TestingFactories testing_facotries; 99 TestingProfile::TestingFactories testing_facotries;
99 testing_facotries.push_back( 100 testing_facotries.push_back(
100 std::make_pair(SigninManagerFactory::GetInstance(), 101 std::make_pair(SigninManagerFactory::GetInstance(),
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 } 141 }
141 142
142 ProfileSyncComponentsFactoryMock* components_factory_mock() { 143 ProfileSyncComponentsFactoryMock* components_factory_mock() {
143 return static_cast<ProfileSyncComponentsFactoryMock*>(sync_->factory()); 144 return static_cast<ProfileSyncComponentsFactoryMock*>(sync_->factory());
144 } 145 }
145 146
146 FakeSigninManagerForTesting* fake_signin() { 147 FakeSigninManagerForTesting* fake_signin() {
147 return static_cast<FakeSigninManagerForTesting*>(sync_->signin()); 148 return static_cast<FakeSigninManagerForTesting*>(sync_->signin());
148 } 149 }
149 150
150 void SetError(DataTypeManager::ConfigureResult* result) { 151 void SetError() {
151 sync_driver::DataTypeStatusTable::TypeErrorMap errors; 152 sync_driver::DataTypeStatusTable::TypeErrorMap errors;
152 errors[syncer::BOOKMARKS] = 153 errors[syncer::BOOKMARKS] =
153 syncer::SyncError(FROM_HERE, 154 syncer::SyncError(FROM_HERE,
154 syncer::SyncError::UNRECOVERABLE_ERROR, 155 syncer::SyncError::UNRECOVERABLE_ERROR,
155 "Error", 156 "Error",
156 syncer::BOOKMARKS); 157 syncer::BOOKMARKS);
157 result->data_type_status_table.UpdateFailedDataTypes(errors); 158 data_type_status_table_->UpdateFailedDataTypes(errors);
158 } 159 }
159 160
160 protected: 161 protected:
161 void SimulateTestUserSignin() { 162 void SimulateTestUserSignin() {
162 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 163 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
163 "test_user@gmail.com"); 164 "test_user@gmail.com");
164 #if !defined(OS_CHROMEOS) 165 #if !defined(OS_CHROMEOS)
165 fake_signin()->SignIn("test_user@gmail.com", ""); 166 fake_signin()->SignIn("test_user@gmail.com", "");
166 #else 167 #else
167 fake_signin()->SetAuthenticatedUsername("test_user@gmail.com"); 168 fake_signin()->SetAuthenticatedUsername("test_user@gmail.com");
168 sync_->GoogleSigninSucceeded("test_user@gmail.com", 169 sync_->GoogleSigninSucceeded("test_user@gmail.com",
169 "test_user@gmail.com", 170 "test_user@gmail.com",
170 ""); 171 "");
171 #endif 172 #endif
172 } 173 }
173 174
174 DataTypeManagerMock* SetUpDataTypeManager() { 175 DataTypeManagerMock* SetUpDataTypeManager() {
175 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); 176 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
176 EXPECT_CALL(*components_factory_mock(), 177 EXPECT_CALL(*components_factory_mock(),
177 CreateDataTypeManager(_, _, _, _, _)). 178 CreateDataTypeManager(_, _, _, _, _, _)).
178 WillOnce(Return(data_type_manager)); 179 WillOnce(DoAll(SaveArg<5>(&data_type_status_table_),
180 Return(data_type_manager)));
179 return data_type_manager; 181 return data_type_manager;
180 } 182 }
181 183
182 browser_sync::SyncBackendHostMock* SetUpSyncBackendHost() { 184 browser_sync::SyncBackendHostMock* SetUpSyncBackendHost() {
183 browser_sync::SyncBackendHostMock* sync_backend_host = 185 browser_sync::SyncBackendHostMock* sync_backend_host =
184 new browser_sync::SyncBackendHostMock(); 186 new browser_sync::SyncBackendHostMock();
185 EXPECT_CALL(*components_factory_mock(), 187 EXPECT_CALL(*components_factory_mock(),
186 CreateSyncBackendHost(_, _, _, _, _)). 188 CreateSyncBackendHost(_, _, _, _, _)).
187 WillOnce(Return(sync_backend_host)); 189 WillOnce(Return(sync_backend_host));
188 return sync_backend_host; 190 return sync_backend_host;
189 } 191 }
190 192
191 content::TestBrowserThreadBundle thread_bundle_; 193 content::TestBrowserThreadBundle thread_bundle_;
192 TestingProfileManager profile_manager_; 194 TestingProfileManager profile_manager_;
193 TestingProfile* profile_; 195 TestingProfile* profile_;
194 ProfileSyncService* sync_; 196 ProfileSyncService* sync_;
195 ProfileSyncServiceObserverMock observer_; 197 ProfileSyncServiceObserverMock observer_;
196 sync_driver::DataTypeStatusTable data_type_status_table_; 198 sync_driver::DataTypeStatusTable* data_type_status_table_;
197 }; 199 };
198 200
199 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest { 201 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest {
200 public: 202 public:
201 virtual void SetUp() { 203 virtual void SetUp() {
202 ProfileSyncServiceStartupTest::SetUp(); 204 ProfileSyncServiceStartupTest::SetUp();
203 sync_ = static_cast<ProfileSyncService*>( 205 sync_ = static_cast<ProfileSyncService*>(
204 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse( 206 ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
205 profile_, BuildCrosService)); 207 profile_, BuildCrosService));
206 sync_->AddObserver(&observer_); 208 sync_->AddObserver(&observer_);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 272
271 // TODO(pavely): Reenable test once android is switched to oauth2. 273 // TODO(pavely): Reenable test once android is switched to oauth2.
272 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) { 274 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) {
273 // We've never completed startup. 275 // We've never completed startup.
274 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted); 276 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted);
275 CreateSyncService(); 277 CreateSyncService();
276 278
277 // Should not actually start, rather just clean things up and wait 279 // Should not actually start, rather just clean things up and wait
278 // to be enabled. 280 // to be enabled.
279 EXPECT_CALL(*components_factory_mock(), 281 EXPECT_CALL(*components_factory_mock(),
280 CreateDataTypeManager(_, _, _, _, _)).Times(0); 282 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
281 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 283 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
282 sync_->Initialize(); 284 sync_->Initialize();
283 285
284 // Preferences should be back to defaults. 286 // Preferences should be back to defaults.
285 EXPECT_EQ( 287 EXPECT_EQ(
286 0, 288 0,
287 profile_->GetPrefs()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime)); 289 profile_->GetPrefs()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime));
288 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean( 290 EXPECT_FALSE(profile_->GetPrefs()->GetBoolean(
289 sync_driver::prefs::kSyncHasSetupCompleted)); 291 sync_driver::prefs::kSyncHasSetupCompleted));
290 292
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 } 346 }
345 347
346 #if defined(OS_WIN) 348 #if defined(OS_WIN)
347 // http://crbug.com/396402 349 // http://crbug.com/396402
348 #define MAYBE_StartCrosNoCredentials DISABLED_StartCrosNoCredentials 350 #define MAYBE_StartCrosNoCredentials DISABLED_StartCrosNoCredentials
349 #else 351 #else
350 #define MAYBE_StartCrosNoCredentials StartCrosNoCredentials 352 #define MAYBE_StartCrosNoCredentials StartCrosNoCredentials
351 #endif 353 #endif
352 TEST_F(ProfileSyncServiceStartupCrosTest, MAYBE_StartCrosNoCredentials) { 354 TEST_F(ProfileSyncServiceStartupCrosTest, MAYBE_StartCrosNoCredentials) {
353 EXPECT_CALL(*components_factory_mock(), 355 EXPECT_CALL(*components_factory_mock(),
354 CreateDataTypeManager(_, _, _, _, _)).Times(0); 356 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
355 EXPECT_CALL(*components_factory_mock(), 357 EXPECT_CALL(*components_factory_mock(),
356 CreateSyncBackendHost(_, _, _, _, _)).Times(0); 358 CreateSyncBackendHost(_, _, _, _, _)).Times(0);
357 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted); 359 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted);
358 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 360 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
359 361
360 sync_->Initialize(); 362 sync_->Initialize();
361 // Sync should not start because there are no tokens yet. 363 // Sync should not start because there are no tokens yet.
362 EXPECT_FALSE(sync_->ShouldPushChanges()); 364 EXPECT_FALSE(sync_->ShouldPushChanges());
363 sync_->SetSetupInProgress(false); 365 sync_->SetSetupInProgress(false);
364 366
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 #endif 489 #endif
488 TEST_F(ProfileSyncServiceStartupTest, MAYBE_ManagedStartup) { 490 TEST_F(ProfileSyncServiceStartupTest, MAYBE_ManagedStartup) {
489 // Service should not be started by Initialize() since it's managed. 491 // Service should not be started by Initialize() since it's managed.
490 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 492 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
491 "test_user@gmail.com"); 493 "test_user@gmail.com");
492 CreateSyncService(); 494 CreateSyncService();
493 495
494 // Disable sync through policy. 496 // Disable sync through policy.
495 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); 497 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true);
496 EXPECT_CALL(*components_factory_mock(), 498 EXPECT_CALL(*components_factory_mock(),
497 CreateDataTypeManager(_, _, _, _, _)).Times(0); 499 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
498 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 500 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
499 501
500 sync_->Initialize(); 502 sync_->Initialize();
501 } 503 }
502 504
503 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { 505 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) {
504 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 506 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
505 "test_user@gmail.com"); 507 "test_user@gmail.com");
506 SigninManagerFactory::GetForProfile(profile_) 508 SigninManagerFactory::GetForProfile(profile_)
507 ->SetAuthenticatedUsername("test_user@gmail.com"); 509 ->SetAuthenticatedUsername("test_user@gmail.com");
(...skipping 11 matching lines...) Expand all
519 EXPECT_CALL(*data_type_manager, state()). 521 EXPECT_CALL(*data_type_manager, state()).
520 WillOnce(Return(DataTypeManager::CONFIGURED)); 522 WillOnce(Return(DataTypeManager::CONFIGURED));
521 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 523 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
522 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 524 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
523 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true); 525 profile_->GetPrefs()->SetBoolean(sync_driver::prefs::kSyncManaged, true);
524 526
525 // When switching back to unmanaged, the state should change, but the service 527 // When switching back to unmanaged, the state should change, but the service
526 // should not start up automatically (kSyncSetupCompleted will be false). 528 // should not start up automatically (kSyncSetupCompleted will be false).
527 Mock::VerifyAndClearExpectations(data_type_manager); 529 Mock::VerifyAndClearExpectations(data_type_manager);
528 EXPECT_CALL(*components_factory_mock(), 530 EXPECT_CALL(*components_factory_mock(),
529 CreateDataTypeManager(_, _, _, _, _)).Times(0); 531 CreateDataTypeManager(_, _, _, _, _, _)).Times(0);
530 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 532 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
531 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncManaged); 533 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncManaged);
532 } 534 }
533 535
534 TEST_F(ProfileSyncServiceStartupTest, StartFailure) { 536 TEST_F(ProfileSyncServiceStartupTest, StartFailure) {
535 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 537 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
536 "test_user@gmail.com"); 538 "test_user@gmail.com");
537 SigninManagerFactory::GetForProfile(profile_) 539 SigninManagerFactory::GetForProfile(profile_)
538 ->SetAuthenticatedUsername("test_user@gmail.com"); 540 ->SetAuthenticatedUsername("test_user@gmail.com");
539 CreateSyncService(); 541 CreateSyncService();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted); 574 profile_->GetPrefs()->ClearPref(sync_driver::prefs::kSyncHasSetupCompleted);
573 575
574 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 576 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
575 sync_->Initialize(); 577 sync_->Initialize();
576 578
577 sync_->SetSetupInProgress(true); 579 sync_->SetSetupInProgress(true);
578 IssueTestTokens(); 580 IssueTestTokens();
579 sync_->SetSetupInProgress(false); 581 sync_->SetSetupInProgress(false);
580 EXPECT_FALSE(sync_->sync_initialized()); 582 EXPECT_FALSE(sync_->sync_initialized());
581 } 583 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698