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

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

Issue 9232011: sync: Make ProfileSyncService a ProfileKeyedService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: init Created 8 years, 11 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 | Annotate | Revision Log
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 "chrome/browser/prefs/pref_service.h" 9 #include "chrome/browser/prefs/pref_service.h"
10 #include "chrome/browser/signin/signin_manager.h" 10 #include "chrome/browser/signin/signin_manager.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 file_thread_.Stop(); 66 file_thread_.Stop();
67 ui_loop_.RunAllPending(); 67 ui_loop_.RunAllPending();
68 } 68 }
69 69
70 protected: 70 protected:
71 // Overridden below by ProfileSyncServiceStartupCrosTest. 71 // Overridden below by ProfileSyncServiceStartupCrosTest.
72 virtual void CreateSyncService() { 72 virtual void CreateSyncService() {
73 SigninManager* signin = new FakeSigninManager(); 73 SigninManager* signin = new FakeSigninManager();
74 signin->SetAuthenticatedUsername("test_user"); 74 signin->SetAuthenticatedUsername("test_user");
75 profile_->SetSigninManager(signin); 75 profile_->SetSigninManager(signin);
76 service_.reset(new TestProfileSyncService(&factory_, 76 service_.reset(new TestProfileSyncService(
77 profile_.get(), 77 new ProfileSyncComponentsFactoryMock(),
78 signin, 78 profile_.get(),
79 ProfileSyncService::MANUAL_START, 79 signin,
80 true, 80 ProfileSyncService::MANUAL_START,
81 base::Closure())); 81 true,
82 base::Closure()));
82 } 83 }
83 84
84 DataTypeManagerMock* SetUpDataTypeManager() { 85 DataTypeManagerMock* SetUpDataTypeManager() {
85 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); 86 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
86 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)). 87 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).
87 WillOnce(Return(data_type_manager)); 88 WillOnce(Return(data_type_manager));
88 return data_type_manager; 89 return data_type_manager;
89 } 90 }
90 91
92 ProfileSyncComponentsFactoryMock* factory_mock() {
93 return static_cast<ProfileSyncComponentsFactoryMock*>(service_->factory());
94 }
95
91 MessageLoop ui_loop_; 96 MessageLoop ui_loop_;
92 content::TestBrowserThread ui_thread_; 97 content::TestBrowserThread ui_thread_;
93 content::TestBrowserThread file_thread_; 98 content::TestBrowserThread file_thread_;
94 content::TestBrowserThread io_thread_; 99 content::TestBrowserThread io_thread_;
95 scoped_ptr<TestingProfile> profile_; 100 scoped_ptr<TestingProfile> profile_;
96 ProfileSyncComponentsFactoryMock factory_;
97 scoped_ptr<TestProfileSyncService> service_; 101 scoped_ptr<TestProfileSyncService> service_;
98 ProfileSyncServiceObserverMock observer_; 102 ProfileSyncServiceObserverMock observer_;
99 }; 103 };
100 104
101 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest { 105 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest {
102 protected: 106 protected:
103 virtual void CreateSyncService() { 107 virtual void CreateSyncService() {
104 SigninManager* signin = profile_->GetSigninManager(); 108 SigninManager* signin = profile_->GetSigninManager();
105 signin->SetAuthenticatedUsername("test_user"); 109 signin->SetAuthenticatedUsername("test_user");
106 service_.reset(new TestProfileSyncService(&factory_, 110 service_.reset(new TestProfileSyncService(
107 profile_.get(), 111 new ProfileSyncComponentsFactoryMock(),
108 signin, 112 profile_.get(),
109 ProfileSyncService::AUTO_START, 113 signin,
110 true, 114 ProfileSyncService::AUTO_START,
111 base::Closure())); 115 true,
116 base::Closure()));
112 } 117 }
113 }; 118 };
114 119
115 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) { 120 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) {
116 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 121 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
117 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 122 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
118 123
119 // We've never completed startup. 124 // We've never completed startup.
120 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 125 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
121 // Make sure SigninManager doesn't think we're signed in (undoes the call to 126 // Make sure SigninManager doesn't think we're signed in (undoes the call to
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 profile_->GetTokenService()->IssueAuthTokenForTest( 186 profile_->GetTokenService()->IssueAuthTokenForTest(
182 GaiaConstants::kSyncService, "sync_token"); 187 GaiaConstants::kSyncService, "sync_token");
183 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 188 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user");
184 service_->Initialize(); 189 service_->Initialize();
185 } 190 }
186 191
187 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { 192 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) {
188 // Disable sync through policy. 193 // Disable sync through policy.
189 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 194 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
190 195
191 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); 196 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0);
192 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 197 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
193 198
194 // Service should not be started by Initialize() since it's managed. 199 // Service should not be started by Initialize() since it's managed.
195 profile_->GetTokenService()->IssueAuthTokenForTest( 200 profile_->GetTokenService()->IssueAuthTokenForTest(
196 GaiaConstants::kSyncService, "sync_token"); 201 GaiaConstants::kSyncService, "sync_token");
197 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 202 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user");
198 service_->Initialize(); 203 service_->Initialize();
199 } 204 }
200 205
201 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { 206 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) {
(...skipping 10 matching lines...) Expand all
212 Mock::VerifyAndClearExpectations(data_type_manager); 217 Mock::VerifyAndClearExpectations(data_type_manager);
213 EXPECT_CALL(*data_type_manager, state()). 218 EXPECT_CALL(*data_type_manager, state()).
214 WillOnce(Return(DataTypeManager::CONFIGURED)); 219 WillOnce(Return(DataTypeManager::CONFIGURED));
215 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 220 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
216 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 221 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
217 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 222 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
218 223
219 // When switching back to unmanaged, the state should change, but the service 224 // When switching back to unmanaged, the state should change, but the service
220 // should not start up automatically (kSyncSetupCompleted will be false). 225 // should not start up automatically (kSyncSetupCompleted will be false).
221 Mock::VerifyAndClearExpectations(data_type_manager); 226 Mock::VerifyAndClearExpectations(data_type_manager);
222 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); 227 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0);
223 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 228 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
224 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); 229 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged);
225 } 230 }
226 231
227 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) { 232 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) {
228 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 233 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
229 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 234 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
230 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 235 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
231 236
232 profile_->GetTokenService()->IssueAuthTokenForTest( 237 profile_->GetTokenService()->IssueAuthTokenForTest(
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 332
328 // Preload the tokens. 333 // Preload the tokens.
329 profile_->GetTokenService()->IssueAuthTokenForTest( 334 profile_->GetTokenService()->IssueAuthTokenForTest(
330 GaiaConstants::kSyncService, "sync_token"); 335 GaiaConstants::kSyncService, "sync_token");
331 service_->fail_initial_download(); 336 service_->fail_initial_download();
332 337
333 service_->Initialize(); 338 service_->Initialize();
334 EXPECT_FALSE(service_->sync_initialized()); 339 EXPECT_FALSE(service_->sync_initialized());
335 EXPECT_FALSE(service_->GetBackendForTest()); 340 EXPECT_FALSE(service_->GetBackendForTest());
336 } 341 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698