| 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(); |
| 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 |