Index: chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc |
diff --git a/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc b/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc |
index 7ab103da482cd963e873cfc1acb7d9c334e3c019..d2ef4618e54cc2f92b62749441c65a20cdab8848 100644 |
--- a/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc |
+++ b/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc |
@@ -140,6 +140,7 @@ class SyncFrontendDataTypeControllerTest : public testing::Test { |
frontend_dtc_->StartAssociating( |
base::Bind(&StartCallbackMock::Run, |
base::Unretained(&start_callback_))); |
+ PumpLoop(); |
} |
void PumpLoop() { base::MessageLoop::current()->RunUntilIdle(); } |
@@ -180,6 +181,17 @@ TEST_F(SyncFrontendDataTypeControllerTest, StartFirstRun) { |
EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state()); |
} |
+TEST_F(SyncFrontendDataTypeControllerTest, StartStopBeforeAssociation) { |
+ EXPECT_CALL(*dtc_mock_.get(), StartModels()).WillOnce(Return(true)); |
+ EXPECT_CALL(*dtc_mock_.get(), CleanUpState()); |
+ EXPECT_CALL(model_load_callback_, Run(_, _)); |
+ EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); |
+ base::MessageLoop::current()->PostTask( |
+ FROM_HERE, base::Bind(&FrontendDataTypeController::Stop, frontend_dtc_)); |
+ Start(); |
+ EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); |
+} |
+ |
TEST_F(SyncFrontendDataTypeControllerTest, AbortDuringStartModels) { |
EXPECT_CALL(*dtc_mock_.get(), StartModels()).WillOnce(Return(false)); |
EXPECT_CALL(*dtc_mock_.get(), CleanUpState()); |