OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |