| Index: chrome/browser/sync/glue/data_type_manager_impl_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/sync/glue/data_type_manager_impl_unittest.cc (revision 72487)
|
| +++ chrome/browser/sync/glue/data_type_manager_impl_unittest.cc (working copy)
|
| @@ -97,6 +97,20 @@
|
| WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
|
| }
|
|
|
| + void SetBusyStartStopExpectations(DataTypeControllerMock* mock_dtc,
|
| + DataTypeController::State busy_state) {
|
| + InSequence seq;
|
| + EXPECT_CALL(*mock_dtc, state()).
|
| + WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
|
| + EXPECT_CALL(*mock_dtc, Start(_)).
|
| + WillOnce(InvokeCallback((DataTypeController::OK)));
|
| + EXPECT_CALL(*mock_dtc, state()).
|
| + WillRepeatedly(Return(busy_state));
|
| + EXPECT_CALL(*mock_dtc, Stop()).Times(1);
|
| + EXPECT_CALL(*mock_dtc, state()).
|
| + WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
|
| + }
|
| +
|
| void SetNotUsedExpectations(DataTypeControllerMock* mock_dtc) {
|
| EXPECT_CALL(*mock_dtc, Start(_)).Times(0);
|
| EXPECT_CALL(*mock_dtc, Stop()).Times(0);
|
| @@ -160,6 +174,37 @@
|
| EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
|
| }
|
|
|
| +TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileStarting) {
|
| + DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
|
| + SetBusyStartStopExpectations(bookmark_dtc,
|
| + DataTypeController::MODEL_STARTING);
|
| + controllers_[syncable::BOOKMARKS] = bookmark_dtc;
|
| + SetBackendExpectations(1);
|
| + DataTypeManagerImpl dtm(&backend_, controllers_);
|
| + types_.insert(syncable::BOOKMARKS);
|
| + SetConfigureStartExpectation();
|
| + SetConfigureDoneExpectation(DataTypeManager::OK);
|
| + dtm.Configure(types_);
|
| + EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
|
| + dtm.Stop();
|
| + EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
|
| +}
|
| +
|
| +TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileAssociating) {
|
| + DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
|
| + SetBusyStartStopExpectations(bookmark_dtc, DataTypeController::ASSOCIATING);
|
| + controllers_[syncable::BOOKMARKS] = bookmark_dtc;
|
| + SetBackendExpectations(1);
|
| + DataTypeManagerImpl dtm(&backend_, controllers_);
|
| + types_.insert(syncable::BOOKMARKS);
|
| + SetConfigureStartExpectation();
|
| + SetConfigureDoneExpectation(DataTypeManager::OK);
|
| + dtm.Configure(types_);
|
| + EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
|
| + dtm.Stop();
|
| + EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
|
| +}
|
| +
|
| TEST_F(DataTypeManagerImplTest, OneWaitingForCrypto) {
|
| DataTypeControllerMock* password_dtc = MakePasswordDTC();
|
| EXPECT_CALL(*password_dtc, state()).
|
|
|