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

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

Issue 2044303004: Sync: Support multiple setup UIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix android Created 4 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
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 <memory> 5 #include <memory>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/files/file_util.h" 8 #include "base/files/file_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"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 Mock::VerifyAndClearExpectations(data_type_manager); 192 Mock::VerifyAndClearExpectations(data_type_manager);
193 193
194 // Then start things up. 194 // Then start things up.
195 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1); 195 EXPECT_CALL(*data_type_manager, Configure(_, _)).Times(1);
196 EXPECT_CALL(*data_type_manager, state()). 196 EXPECT_CALL(*data_type_manager, state()).
197 WillOnce(Return(DataTypeManager::CONFIGURED)). 197 WillOnce(Return(DataTypeManager::CONFIGURED)).
198 WillOnce(Return(DataTypeManager::CONFIGURED)); 198 WillOnce(Return(DataTypeManager::CONFIGURED));
199 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 199 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
200 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 200 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
201 201
202 sync_service_->SetSetupInProgress(true); 202 auto setup_handle = sync_service_->GetSetupInProgressHandle();
203 203
204 // Simulate successful signin as test_user. 204 // Simulate successful signin as test_user.
205 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 205 std::string account_id = SimulateTestUserSignin(sync_service_.get());
206 // Create some tokens in the token service. 206 // Create some tokens in the token service.
207 IssueTestTokens(account_id); 207 IssueTestTokens(account_id);
208 208
209 // Simulate the UI telling sync it has finished setting up. 209 // Simulate the UI telling sync it has finished setting up.
210 sync_service_->SetSetupInProgress(false); 210 setup_handle.reset();
211 sync_service_->SetFirstSetupComplete(); 211 sync_service_->SetFirstSetupComplete();
212 EXPECT_TRUE(sync_service_->IsSyncActive()); 212 EXPECT_TRUE(sync_service_->IsSyncActive());
213 } 213 }
214 214
215 // TODO(pavely): Reenable test once android is switched to oauth2. 215 // TODO(pavely): Reenable test once android is switched to oauth2.
216 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) { 216 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartNoCredentials) {
217 // We've never completed startup. 217 // We've never completed startup.
218 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 218 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
219 CreateSyncService(ProfileSyncService::MANUAL_START); 219 CreateSyncService(ProfileSyncService::MANUAL_START);
220 220
221 // Should not actually start, rather just clean things up and wait 221 // Should not actually start, rather just clean things up and wait
222 // to be enabled. 222 // to be enabled.
223 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) 223 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _))
224 .Times(0); 224 .Times(0);
225 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 225 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
226 sync_service_->Initialize(); 226 sync_service_->Initialize();
227 227
228 // Preferences should be back to defaults. 228 // Preferences should be back to defaults.
229 EXPECT_EQ(0, 229 EXPECT_EQ(0,
230 pref_service()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime)); 230 pref_service()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime));
231 EXPECT_FALSE( 231 EXPECT_FALSE(
232 pref_service()->GetBoolean(sync_driver::prefs::kSyncFirstSetupComplete)); 232 pref_service()->GetBoolean(sync_driver::prefs::kSyncFirstSetupComplete));
233 233
234 // Then start things up. 234 // Then start things up.
235 sync_service_->SetSetupInProgress(true); 235 auto setup_handle = sync_service_->GetSetupInProgressHandle();
236 236
237 // Simulate successful signin as test_user. 237 // Simulate successful signin as test_user.
238 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 238 std::string account_id = SimulateTestUserSignin(sync_service_.get());
239 239
240 profile_sync_service_bundle_.auth_service()->LoadCredentials(account_id); 240 profile_sync_service_bundle_.auth_service()->LoadCredentials(account_id);
241 241
242 sync_service_->SetSetupInProgress(false); 242 setup_handle.reset();
243 // ProfileSyncService should try to start by requesting access token. 243 // ProfileSyncService should try to start by requesting access token.
244 // This request should fail as login token was not issued. 244 // This request should fail as login token was not issued.
245 EXPECT_FALSE(sync_service_->IsSyncActive()); 245 EXPECT_FALSE(sync_service_->IsSyncActive());
246 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP, 246 EXPECT_EQ(GoogleServiceAuthError::USER_NOT_SIGNED_UP,
247 sync_service_->GetAuthError().state()); 247 sync_service_->GetAuthError().state());
248 } 248 }
249 249
250 // TODO(pavely): Reenable test once android is switched to oauth2. 250 // TODO(pavely): Reenable test once android is switched to oauth2.
251 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) { 251 TEST_F(ProfileSyncServiceStartupTest, DISABLED_StartInvalidCredentials) {
252 CreateSyncService(ProfileSyncService::MANUAL_START); 252 CreateSyncService(ProfileSyncService::MANUAL_START);
(...skipping 11 matching lines...) Expand all
264 sync_service_->Initialize(); 264 sync_service_->Initialize();
265 EXPECT_FALSE(sync_service_->IsSyncActive()); 265 EXPECT_FALSE(sync_service_->IsSyncActive());
266 Mock::VerifyAndClearExpectations(data_type_manager); 266 Mock::VerifyAndClearExpectations(data_type_manager);
267 267
268 // Update the credentials, unstalling the backend. 268 // Update the credentials, unstalling the backend.
269 EXPECT_CALL(*data_type_manager, Configure(_, _)); 269 EXPECT_CALL(*data_type_manager, Configure(_, _));
270 EXPECT_CALL(*data_type_manager, state()). 270 EXPECT_CALL(*data_type_manager, state()).
271 WillRepeatedly(Return(DataTypeManager::CONFIGURED)); 271 WillRepeatedly(Return(DataTypeManager::CONFIGURED));
272 EXPECT_CALL(*data_type_manager, Stop()).Times(1); 272 EXPECT_CALL(*data_type_manager, Stop()).Times(1);
273 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 273 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
274 sync_service_->SetSetupInProgress(true); 274 auto setup_handle = sync_service_->GetSetupInProgressHandle();
275 275
276 // Simulate successful signin. 276 // Simulate successful signin.
277 SimulateTestUserSignin(sync_service_.get()); 277 SimulateTestUserSignin(sync_service_.get());
278 278
279 sync_service_->SetSetupInProgress(false); 279 setup_handle.reset();
280 280
281 // Verify we successfully finish startup and configuration. 281 // Verify we successfully finish startup and configuration.
282 EXPECT_TRUE(sync_service_->IsSyncActive()); 282 EXPECT_TRUE(sync_service_->IsSyncActive());
283 } 283 }
284 284
285 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) { 285 TEST_F(ProfileSyncServiceStartupCrosTest, StartCrosNoCredentials) {
286 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _)) 286 EXPECT_CALL(*component_factory_, CreateDataTypeManager(_, _, _, _, _))
287 .Times(0); 287 .Times(0);
288 EXPECT_CALL(*component_factory_, CreateSyncBackendHost(_, _, _, _)).Times(0); 288 EXPECT_CALL(*component_factory_, CreateSyncBackendHost(_, _, _, _)).Times(0);
289 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 289 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
290 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 290 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
291 291
292 sync_service_->Initialize(); 292 sync_service_->Initialize();
293 // Sync should not start because there are no tokens yet. 293 // Sync should not start because there are no tokens yet.
294 EXPECT_FALSE(sync_service_->IsSyncActive()); 294 EXPECT_FALSE(sync_service_->IsSyncActive());
295 sync_service_->SetSetupInProgress(false); 295 sync_service_->SetFirstSetupComplete();
maxbogue 2016/06/09 20:04:13 +1, good change.
tommycli 2016/06/10 00:04:15 Acknowledged.
296 296
297 // Sync should not start because there are still no tokens. 297 // Sync should not start because there are still no tokens.
298 EXPECT_FALSE(sync_service_->IsSyncActive()); 298 EXPECT_FALSE(sync_service_->IsSyncActive());
299 } 299 }
300 300
301 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) { 301 TEST_F(ProfileSyncServiceStartupCrosTest, StartFirstTime) {
302 SetUpSyncBackendHost(); 302 SetUpSyncBackendHost();
303 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager(); 303 DataTypeManagerMock* data_type_manager = SetUpDataTypeManager();
304 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 304 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
305 EXPECT_CALL(*data_type_manager, Configure(_, _)); 305 EXPECT_CALL(*data_type_manager, Configure(_, _));
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 CreateSyncService(ProfileSyncService::MANUAL_START); 471 CreateSyncService(ProfileSyncService::MANUAL_START);
472 std::string account_id = SimulateTestUserSignin(sync_service_.get()); 472 std::string account_id = SimulateTestUserSignin(sync_service_.get());
473 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost(); 473 SyncBackendHostMock* mock_sbh = SetUpSyncBackendHost();
474 mock_sbh->set_fail_initial_download(true); 474 mock_sbh->set_fail_initial_download(true);
475 475
476 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete); 476 pref_service()->ClearPref(sync_driver::prefs::kSyncFirstSetupComplete);
477 477
478 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber()); 478 EXPECT_CALL(observer_, OnStateChanged()).Times(AnyNumber());
479 sync_service_->Initialize(); 479 sync_service_->Initialize();
480 480
481 sync_service_->SetSetupInProgress(true); 481 auto setup_handle = sync_service_->GetSetupInProgressHandle();
482 IssueTestTokens(account_id); 482 IssueTestTokens(account_id);
483 sync_service_->SetSetupInProgress(false); 483 setup_handle.reset();
484 EXPECT_FALSE(sync_service_->IsSyncActive()); 484 EXPECT_FALSE(sync_service_->IsSyncActive());
485 } 485 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698