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

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

Issue 10534075: [sync] Make SetSetupInProgress kick sync engine when needed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove call to SetSyncSetupCompleted, and change kick-mechanism Created 8 years, 6 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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 // Then start things up. 145 // Then start things up.
146 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 146 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
147 EXPECT_CALL(*data_type_manager, state()). 147 EXPECT_CALL(*data_type_manager, state()).
148 WillOnce(Return(DataTypeManager::CONFIGURED)). 148 WillOnce(Return(DataTypeManager::CONFIGURED)).
149 WillOnce(Return(DataTypeManager::CONFIGURED)); 149 WillOnce(Return(DataTypeManager::CONFIGURED));
150 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 150 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
151 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 151 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
152 152
153 // Create some tokens in the token service; the service will startup when 153 // Create some tokens in the token service; the service will startup when
154 // it is notified that tokens are available. 154 // it is notified that tokens are available.
155 service_->set_setup_in_progress(true); 155 service_->SetSetupInProgress(true);
156 service_->signin()->StartSignIn("test_user", "", "", ""); 156 service_->signin()->StartSignIn("test_user", "", "", "");
157 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 157 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
158 GaiaConstants::kSyncService, "sync_token"); 158 GaiaConstants::kSyncService, "sync_token");
159 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 159 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
160 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token"); 160 GaiaConstants::kGaiaOAuth2LoginRefreshToken, "oauth2_login_token");
161 service_->set_setup_in_progress(false); 161 service_->SetSetupInProgress(false);
162 service_->OnUserChoseDatatypes(
163 false, syncable::ModelTypeSet(syncable::BOOKMARKS));
164 EXPECT_TRUE(service_->ShouldPushChanges()); 162 EXPECT_TRUE(service_->ShouldPushChanges());
165 } 163 }
166 164
167 TEST_F(ProfileSyncServiceStartupTest, StartNoCredentials) { 165 TEST_F(ProfileSyncServiceStartupTest, StartNoCredentials) {
168 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 166 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
169 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0); 167 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(0);
170 168
171 // We've never completed startup. 169 // We've never completed startup.
172 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 170 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
173 // Make sure SigninManager doesn't think we're signed in (undoes the call to 171 // Make sure SigninManager doesn't think we're signed in (undoes the call to
(...skipping 12 matching lines...) Expand all
186 Mock::VerifyAndClearExpectations(data_type_manager); 184 Mock::VerifyAndClearExpectations(data_type_manager);
187 185
188 // Then start things up. 186 // Then start things up.
189 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 187 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
190 EXPECT_CALL(*data_type_manager, state()). 188 EXPECT_CALL(*data_type_manager, state()).
191 WillOnce(Return(DataTypeManager::CONFIGURED)). 189 WillOnce(Return(DataTypeManager::CONFIGURED)).
192 WillOnce(Return(DataTypeManager::CONFIGURED)); 190 WillOnce(Return(DataTypeManager::CONFIGURED));
193 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 191 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
194 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 192 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
195 193
196 service_->set_setup_in_progress(true); 194 service_->SetSetupInProgress(true);
197 service_->signin()->StartSignIn("test_user", "", "", ""); 195 service_->signin()->StartSignIn("test_user", "", "", "");
198 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens. 196 // NOTE: Unlike StartFirstTime, this test does not issue any auth tokens.
199 content::NotificationService::current()->Notify( 197 content::NotificationService::current()->Notify(
200 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, 198 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED,
201 content::Source<TokenService>( 199 content::Source<TokenService>(
202 TokenServiceFactory::GetForProfile(profile_.get())), 200 TokenServiceFactory::GetForProfile(profile_.get())),
203 content::NotificationService::NoDetails()); 201 content::NotificationService::NoDetails());
204 service_->set_setup_in_progress(false); 202 service_->SetSetupInProgress(false);
205 service_->OnUserChoseDatatypes(
206 false, syncable::ModelTypeSet(syncable::BOOKMARKS));
207 // Backend should initialize using a bogus GAIA token for credentials. 203 // Backend should initialize using a bogus GAIA token for credentials.
208 EXPECT_TRUE(service_->ShouldPushChanges()); 204 EXPECT_TRUE(service_->ShouldPushChanges());
209 } 205 }
210 206
211 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { 207 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) {
212 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0); 208 EXPECT_CALL(*factory_mock(), CreateDataTypeManager(_, _)).Times(0);
213 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 209 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
214 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 210 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
215 211
216 service_->Initialize(); 212 service_->Initialize();
217 // Sync should not start because there are no tokens yet. 213 // Sync should not start because there are no tokens yet.
218 EXPECT_FALSE(service_->ShouldPushChanges()); 214 EXPECT_FALSE(service_->ShouldPushChanges());
219 EXPECT_FALSE(service_->GetBackendForTest()); 215 EXPECT_FALSE(service_->GetBackendForTest());
220 content::NotificationService::current()->Notify( 216 content::NotificationService::current()->Notify(
221 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED, 217 chrome::NOTIFICATION_TOKEN_LOADING_FINISHED,
222 content::Source<TokenService>( 218 content::Source<TokenService>(
223 TokenServiceFactory::GetForProfile(profile_.get())), 219 TokenServiceFactory::GetForProfile(profile_.get())),
224 content::NotificationService::NoDetails()); 220 content::NotificationService::NoDetails());
225 service_->set_setup_in_progress(false); 221 service_->SetSetupInProgress(false);
226 // Sync should not start because there are still no tokens. 222 // Sync should not start because there are still no tokens.
227 EXPECT_FALSE(service_->ShouldPushChanges()); 223 EXPECT_FALSE(service_->ShouldPushChanges());
228 EXPECT_FALSE(service_->GetBackendForTest()); 224 EXPECT_FALSE(service_->GetBackendForTest());
229 } 225 }
230 226
231 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { 227 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) {
232 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 228 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
233 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted); 229 profile_->GetPrefs()->ClearPref(prefs::kSyncHasSetupCompleted);
234 EXPECT_CALL(*data_type_manager, Configure(_, _)); 230 EXPECT_CALL(*data_type_manager, Configure(_, _));
235 EXPECT_CALL(*data_type_manager, state()). 231 EXPECT_CALL(*data_type_manager, state()).
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 399
404 // Preload the tokens. 400 // Preload the tokens.
405 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest( 401 TokenServiceFactory::GetForProfile(profile_.get())->IssueAuthTokenForTest(
406 GaiaConstants::kSyncService, "sync_token"); 402 GaiaConstants::kSyncService, "sync_token");
407 service_->fail_initial_download(); 403 service_->fail_initial_download();
408 404
409 service_->Initialize(); 405 service_->Initialize();
410 EXPECT_FALSE(service_->sync_initialized()); 406 EXPECT_FALSE(service_->sync_initialized());
411 EXPECT_FALSE(service_->GetBackendForTest()); 407 EXPECT_FALSE(service_->GetBackendForTest());
412 } 408 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_service_harness.cc ('k') | chrome/browser/ui/sync/one_click_signin_sync_starter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698