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

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: rebase 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) 2011 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/net/gaia/token_service.h" 9 #include "chrome/browser/net/gaia/token_service.h"
10 #include "chrome/browser/prefs/pref_service.h" 10 #include "chrome/browser/prefs/pref_service.h"
11 #include "chrome/browser/sync/glue/data_type_manager.h" 11 #include "chrome/browser/sync/glue/data_type_manager.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 // posting on the IO thread). 62 // posting on the IO thread).
63 ui_loop_.RunAllPending(); 63 ui_loop_.RunAllPending();
64 io_thread_.Stop(); 64 io_thread_.Stop();
65 file_thread_.Stop(); 65 file_thread_.Stop();
66 ui_loop_.RunAllPending(); 66 ui_loop_.RunAllPending();
67 } 67 }
68 68
69 protected: 69 protected:
70 // Overridden below by ProfileSyncServiceStartupCrosTest. 70 // Overridden below by ProfileSyncServiceStartupCrosTest.
71 virtual void CreateSyncService() { 71 virtual void CreateSyncService() {
72 service_.reset(new TestProfileSyncService(&factory_, 72 service_.reset(new TestProfileSyncService(
73 profile_.get(), 73 new ProfileSyncComponentsFactoryMock(),
74 new FakeSigninManager(), 74 profile_.get(),
75 ProfileSyncService::MANUAL_START, 75 new FakeSigninManager(),
76 true, 76 ProfileSyncService::MANUAL_START,
77 base::Closure())); 77 true,
78 base::Closure()));
78 } 79 }
79 80
80 DataTypeManagerMock* SetUpDataTypeManager() { 81 DataTypeManagerMock* SetUpDataTypeManager() {
81 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock(); 82 DataTypeManagerMock* data_type_manager = new DataTypeManagerMock();
82 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)). 83 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).
83 WillOnce(Return(data_type_manager)); 84 WillOnce(Return(data_type_manager));
84 return data_type_manager; 85 return data_type_manager;
85 } 86 }
86 87
88 ProfileSyncComponentsFactoryMock* factory_mock() {
89 return static_cast<ProfileSyncComponentsFactoryMock*>(service_->factory());
90 }
91
87 MessageLoop ui_loop_; 92 MessageLoop ui_loop_;
88 content::TestBrowserThread ui_thread_; 93 content::TestBrowserThread ui_thread_;
89 content::TestBrowserThread file_thread_; 94 content::TestBrowserThread file_thread_;
90 content::TestBrowserThread io_thread_; 95 content::TestBrowserThread io_thread_;
91 scoped_ptr<TestingProfile> profile_; 96 scoped_ptr<TestingProfile> profile_;
92 ProfileSyncComponentsFactoryMock factory_;
93 scoped_ptr<TestProfileSyncService> service_; 97 scoped_ptr<TestProfileSyncService> service_;
94 ProfileSyncServiceObserverMock observer_; 98 ProfileSyncServiceObserverMock observer_;
95 }; 99 };
96 100
97 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest { 101 class ProfileSyncServiceStartupCrosTest : public ProfileSyncServiceStartupTest {
98 protected: 102 protected:
99 virtual void CreateSyncService() { 103 virtual void CreateSyncService() {
100 SigninManager* signin = new SigninManager(); 104 SigninManager* signin = new SigninManager();
101 signin->SetAuthenticatedUsername("test_user"); 105 signin->SetAuthenticatedUsername("test_user");
102 service_.reset(new TestProfileSyncService(&factory_, 106 service_.reset(new TestProfileSyncService(
103 profile_.get(), 107 new ProfileSyncComponentsFactoryMock(),
104 signin, 108 profile_.get(),
105 ProfileSyncService::AUTO_START, 109 signin,
106 true, 110 ProfileSyncService::AUTO_START,
107 base::Closure())); 111 true,
112 base::Closure()));
108 } 113 }
109 }; 114 };
110 115
111 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) { 116 TEST_F(ProfileSyncServiceStartupTest, StartFirstTime) {
112 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 117 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
113 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 118 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
114 119
115 // We've never completed startup. 120 // We've never completed startup.
116 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 121 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
117 122
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 profile_->GetTokenService()->IssueAuthTokenForTest( 179 profile_->GetTokenService()->IssueAuthTokenForTest(
175 GaiaConstants::kSyncService, "sync_token"); 180 GaiaConstants::kSyncService, "sync_token");
176 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 181 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user");
177 service_->Initialize(); 182 service_->Initialize();
178 } 183 }
179 184
180 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) { 185 TEST_F(ProfileSyncServiceStartupTest, ManagedStartup) {
181 // Disable sync through policy. 186 // Disable sync through policy.
182 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 187 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
183 188
184 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); 189 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0);
185 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 190 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
186 191
187 // Service should not be started by Initialize() since it's managed. 192 // Service should not be started by Initialize() since it's managed.
188 profile_->GetTokenService()->IssueAuthTokenForTest( 193 profile_->GetTokenService()->IssueAuthTokenForTest(
189 GaiaConstants::kSyncService, "sync_token"); 194 GaiaConstants::kSyncService, "sync_token");
190 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user"); 195 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, "test_user");
191 service_->Initialize(); 196 service_->Initialize();
192 } 197 }
193 198
194 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) { 199 TEST_F(ProfileSyncServiceStartupTest, SwitchManaged) {
(...skipping 10 matching lines...) Expand all
205 Mock::VerifyAndClearExpectations(data_type_manager); 210 Mock::VerifyAndClearExpectations(data_type_manager);
206 EXPECT_CALL(*data_type_manager, state()). 211 EXPECT_CALL(*data_type_manager, state()).
207 WillOnce(Return(DataTypeManager::CONFIGURED)); 212 WillOnce(Return(DataTypeManager::CONFIGURED));
208 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 213 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
209 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 214 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
210 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true); 215 profile_->GetPrefs()->SetBoolean(prefs::kSyncManaged, true);
211 216
212 // When switching back to unmanaged, the state should change, but the service 217 // When switching back to unmanaged, the state should change, but the service
213 // should not start up automatically (kSyncSetupCompleted will be false). 218 // should not start up automatically (kSyncSetupCompleted will be false).
214 Mock::VerifyAndClearExpectations(data_type_manager); 219 Mock::VerifyAndClearExpectations(data_type_manager);
215 EXPECT_CALL(factory_, CreateDataTypeManager(_, _)).Times(0); 220 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0);
216 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 221 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
217 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged); 222 profile_->GetPrefs()->ClearPref(prefs::kSyncManaged);
218 } 223 }
219 224
220 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) { 225 TEST_F(ProfileSyncServiceStartupTest, ClearServerData) {
221 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 226 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
222 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 227 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
223 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 228 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
224 229
225 profile_->GetTokenService()->IssueAuthTokenForTest( 230 profile_->GetTokenService()->IssueAuthTokenForTest(
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 325
321 // Preload the tokens. 326 // Preload the tokens.
322 profile_->GetTokenService()->IssueAuthTokenForTest( 327 profile_->GetTokenService()->IssueAuthTokenForTest(
323 GaiaConstants::kSyncService, "sync_token"); 328 GaiaConstants::kSyncService, "sync_token");
324 service_->fail_initial_download(); 329 service_->fail_initial_download();
325 330
326 service_->Initialize(); 331 service_->Initialize();
327 EXPECT_FALSE(service_->sync_initialized()); 332 EXPECT_FALSE(service_->sync_initialized());
328 EXPECT_FALSE(service_->GetBackendForTest()); 333 EXPECT_FALSE(service_->GetBackendForTest());
329 } 334 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698