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 "chrome/browser/sync/glue/new_non_frontend_data_type_controller.h" | 5 #include "chrome/browser/sync/glue/new_non_frontend_data_type_controller.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 | 199 |
200 void SetAssociateExpectations() { | 200 void SetAssociateExpectations() { |
201 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). | 201 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). |
202 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); | 202 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); |
203 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). | 203 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). |
204 WillOnce(Return(true)); | 204 WillOnce(Return(true)); |
205 EXPECT_CALL(*change_processor_, ActivateDataType(_)); | 205 EXPECT_CALL(*change_processor_, ActivateDataType(_)); |
206 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). | 206 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). |
207 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); | 207 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); |
208 EXPECT_CALL(*change_processor_, GetSyncData(_)). | 208 EXPECT_CALL(*change_processor_, GetSyncData(_)). |
209 WillOnce(Return(SyncError())); | 209 WillOnce(Return(csync::SyncError())); |
210 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); | 210 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); |
211 } | 211 } |
212 | 212 |
213 void SetActivateExpectations(DataTypeController::StartResult result) { | 213 void SetActivateExpectations(DataTypeController::StartResult result) { |
214 EXPECT_CALL(start_callback_, Run(result,_)); | 214 EXPECT_CALL(start_callback_, Run(result,_)); |
215 } | 215 } |
216 | 216 |
217 void SetStopExpectations() { | 217 void SetStopExpectations() { |
218 EXPECT_CALL(*dtc_mock_, StopModels()); | 218 EXPECT_CALL(*dtc_mock_, StopModels()); |
219 EXPECT_CALL(*change_processor_, Disconnect()).WillOnce(Return(true)); | 219 EXPECT_CALL(*change_processor_, Disconnect()).WillOnce(Return(true)); |
(...skipping 23 matching lines...) Expand all Loading... |
243 | 243 |
244 MessageLoopForUI message_loop_; | 244 MessageLoopForUI message_loop_; |
245 content::TestBrowserThread ui_thread_; | 245 content::TestBrowserThread ui_thread_; |
246 content::TestBrowserThread db_thread_; | 246 content::TestBrowserThread db_thread_; |
247 ProfileMock profile_; | 247 ProfileMock profile_; |
248 scoped_ptr<ProfileSyncComponentsFactoryMock> profile_sync_factory_; | 248 scoped_ptr<ProfileSyncComponentsFactoryMock> profile_sync_factory_; |
249 StrictMock<ProfileSyncServiceMock> service_; | 249 StrictMock<ProfileSyncServiceMock> service_; |
250 StartCallbackMock start_callback_; | 250 StartCallbackMock start_callback_; |
251 ModelLoadCallbackMock model_load_callback_; | 251 ModelLoadCallbackMock model_load_callback_; |
252 // Must be destroyed after new_non_frontend_dtc_. | 252 // Must be destroyed after new_non_frontend_dtc_. |
253 FakeSyncableService syncable_service_; | 253 csync::FakeSyncableService syncable_service_; |
254 scoped_refptr<NewNonFrontendDataTypeControllerFake> new_non_frontend_dtc_; | 254 scoped_refptr<NewNonFrontendDataTypeControllerFake> new_non_frontend_dtc_; |
255 scoped_refptr<NewNonFrontendDataTypeControllerMock> dtc_mock_; | 255 scoped_refptr<NewNonFrontendDataTypeControllerMock> dtc_mock_; |
256 scoped_refptr<SharedChangeProcessorMock> change_processor_; | 256 scoped_refptr<SharedChangeProcessorMock> change_processor_; |
257 scoped_ptr<SyncChangeProcessor> saved_change_processor_; | 257 scoped_ptr<csync::SyncChangeProcessor> saved_change_processor_; |
258 }; | 258 }; |
259 | 259 |
260 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartOk) { | 260 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartOk) { |
261 SetStartExpectations(); | 261 SetStartExpectations(); |
262 SetAssociateExpectations(); | 262 SetAssociateExpectations(); |
263 SetActivateExpectations(DataTypeController::OK); | 263 SetActivateExpectations(DataTypeController::OK); |
264 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 264 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
265 Start(); | 265 Start(); |
266 WaitForDTC(); | 266 WaitForDTC(); |
267 EXPECT_EQ(DataTypeController::RUNNING, new_non_frontend_dtc_->state()); | 267 EXPECT_EQ(DataTypeController::RUNNING, new_non_frontend_dtc_->state()); |
268 } | 268 } |
269 | 269 |
270 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartFirstRun) { | 270 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartFirstRun) { |
271 SetStartExpectations(); | 271 SetStartExpectations(); |
272 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). | 272 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). |
273 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); | 273 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); |
274 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). | 274 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). |
275 WillOnce(Return(true)); | 275 WillOnce(Return(true)); |
276 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). | 276 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). |
277 WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true))); | 277 WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true))); |
278 EXPECT_CALL(*change_processor_, GetSyncData(_)). | 278 EXPECT_CALL(*change_processor_, GetSyncData(_)). |
279 WillOnce(Return(SyncError())); | 279 WillOnce(Return(csync::SyncError())); |
280 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); | 280 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); |
281 SetActivateExpectations(DataTypeController::OK_FIRST_RUN); | 281 SetActivateExpectations(DataTypeController::OK_FIRST_RUN); |
282 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 282 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
283 Start(); | 283 Start(); |
284 WaitForDTC(); | 284 WaitForDTC(); |
285 EXPECT_EQ(DataTypeController::RUNNING, new_non_frontend_dtc_->state()); | 285 EXPECT_EQ(DataTypeController::RUNNING, new_non_frontend_dtc_->state()); |
286 } | 286 } |
287 | 287 |
288 // Start the DTC and have StartModels() return false. Then, stop the | 288 // Start the DTC and have StartModels() return false. Then, stop the |
289 // DTC without finishing model startup. It should stop cleanly. | 289 // DTC without finishing model startup. It should stop cleanly. |
(...skipping 19 matching lines...) Expand all Loading... |
309 // cleanly. | 309 // cleanly. |
310 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartAssociationFailed) { | 310 TEST_F(SyncNewNonFrontendDataTypeControllerTest, StartAssociationFailed) { |
311 SetStartExpectations(); | 311 SetStartExpectations(); |
312 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). | 312 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). |
313 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); | 313 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); |
314 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). | 314 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). |
315 WillOnce(Return(true)); | 315 WillOnce(Return(true)); |
316 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). | 316 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). |
317 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); | 317 WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); |
318 EXPECT_CALL(*change_processor_, GetSyncData(_)). | 318 EXPECT_CALL(*change_processor_, GetSyncData(_)). |
319 WillOnce(Return(SyncError())); | 319 WillOnce(Return(csync::SyncError())); |
320 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); | 320 EXPECT_CALL(*dtc_mock_, RecordAssociationTime(_)); |
321 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED); | 321 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED); |
322 // Set up association to fail with an association failed error. | 322 // Set up association to fail with an association failed error. |
323 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 323 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
324 syncable_service_.set_merge_data_and_start_syncing_error( | 324 syncable_service_.set_merge_data_and_start_syncing_error( |
325 SyncError(FROM_HERE, "Sync Error", new_non_frontend_dtc_->type())); | 325 csync::SyncError(FROM_HERE, "Sync Error", new_non_frontend_dtc_->type())); |
326 Start(); | 326 Start(); |
327 WaitForDTC(); | 327 WaitForDTC(); |
328 EXPECT_EQ(DataTypeController::DISABLED, new_non_frontend_dtc_->state()); | 328 EXPECT_EQ(DataTypeController::DISABLED, new_non_frontend_dtc_->state()); |
329 new_non_frontend_dtc_->Stop(); | 329 new_non_frontend_dtc_->Stop(); |
330 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 330 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
331 } | 331 } |
332 | 332 |
333 TEST_F(SyncNewNonFrontendDataTypeControllerTest, | 333 TEST_F(SyncNewNonFrontendDataTypeControllerTest, |
334 StartAssociationTriggersUnrecoverableError) { | 334 StartAssociationTriggersUnrecoverableError) { |
335 SetStartExpectations(); | 335 SetStartExpectations(); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); | 374 WillOnce(GetWeakPtrToSyncableService(&syncable_service_)); |
375 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). | 375 EXPECT_CALL(*change_processor_, CryptoReadyIfNecessary()). |
376 WillOnce(Return(true)); | 376 WillOnce(Return(true)); |
377 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). | 377 EXPECT_CALL(*change_processor_, SyncModelHasUserCreatedNodes(_)). |
378 WillOnce(DoAll( | 378 WillOnce(DoAll( |
379 SignalEvent(&wait_for_db_thread_pause), | 379 SignalEvent(&wait_for_db_thread_pause), |
380 WaitOnEvent(&pause_db_thread), | 380 WaitOnEvent(&pause_db_thread), |
381 SetArgumentPointee<0>(true), | 381 SetArgumentPointee<0>(true), |
382 Return(true))); | 382 Return(true))); |
383 EXPECT_CALL(*change_processor_, GetSyncData(_)). | 383 EXPECT_CALL(*change_processor_, GetSyncData(_)). |
384 WillOnce(Return(SyncError(FROM_HERE, "Disconnected.", AUTOFILL_PROFILE))); | 384 WillOnce( |
| 385 Return( |
| 386 csync::SyncError(FROM_HERE, "Disconnected.", AUTOFILL_PROFILE))); |
385 EXPECT_CALL(*change_processor_, Disconnect()). | 387 EXPECT_CALL(*change_processor_, Disconnect()). |
386 WillOnce(DoAll(SignalEvent(&pause_db_thread), Return(true))); | 388 WillOnce(DoAll(SignalEvent(&pause_db_thread), Return(true))); |
387 EXPECT_CALL(service_, DeactivateDataType(_)); | 389 EXPECT_CALL(service_, DeactivateDataType(_)); |
388 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 390 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
389 Start(); | 391 Start(); |
390 wait_for_db_thread_pause.Wait(); | 392 wait_for_db_thread_pause.Wait(); |
391 new_non_frontend_dtc_->Stop(); | 393 new_non_frontend_dtc_->Stop(); |
392 WaitForDTC(); | 394 WaitForDTC(); |
393 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 395 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
394 } | 396 } |
(...skipping 16 matching lines...) Expand all Loading... |
411 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 413 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
412 Start(); | 414 Start(); |
413 new_non_frontend_dtc_->Stop(); | 415 new_non_frontend_dtc_->Stop(); |
414 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 416 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
415 Mock::VerifyAndClearExpectations(&profile_sync_factory_); | 417 Mock::VerifyAndClearExpectations(&profile_sync_factory_); |
416 Mock::VerifyAndClearExpectations(&service_); | 418 Mock::VerifyAndClearExpectations(&service_); |
417 Mock::VerifyAndClearExpectations(change_processor_); | 419 Mock::VerifyAndClearExpectations(change_processor_); |
418 Mock::VerifyAndClearExpectations(dtc_mock_); | 420 Mock::VerifyAndClearExpectations(dtc_mock_); |
419 | 421 |
420 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). | 422 EXPECT_CALL(*change_processor_, Connect(_,_,_,_)). |
421 WillOnce(Return(base::WeakPtr<SyncableService>())); | 423 WillOnce(Return(base::WeakPtr<csync::SyncableService>())); |
422 new_non_frontend_dtc_->UnblockBackendTasks(); | 424 new_non_frontend_dtc_->UnblockBackendTasks(); |
423 EXPECT_CALL(*dtc_mock_, RecordUnrecoverableError(_, _)); | 425 EXPECT_CALL(*dtc_mock_, RecordUnrecoverableError(_, _)); |
424 WaitForDTC(); | 426 WaitForDTC(); |
425 } | 427 } |
426 | 428 |
427 TEST_F(SyncNewNonFrontendDataTypeControllerTest, Stop) { | 429 TEST_F(SyncNewNonFrontendDataTypeControllerTest, Stop) { |
428 SetStartExpectations(); | 430 SetStartExpectations(); |
429 SetAssociateExpectations(); | 431 SetAssociateExpectations(); |
430 SetActivateExpectations(DataTypeController::OK); | 432 SetActivateExpectations(DataTypeController::OK); |
431 SetStopExpectations(); | 433 SetStopExpectations(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 new_non_frontend_dtc_.get(), | 488 new_non_frontend_dtc_.get(), |
487 FROM_HERE, | 489 FROM_HERE, |
488 std::string("Test"))); | 490 std::string("Test"))); |
489 WaitForDTC(); | 491 WaitForDTC(); |
490 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); | 492 EXPECT_EQ(DataTypeController::NOT_RUNNING, new_non_frontend_dtc_->state()); |
491 } | 493 } |
492 | 494 |
493 } // namespace | 495 } // namespace |
494 | 496 |
495 } // namespace browser_sync | 497 } // namespace browser_sync |
OLD | NEW |