Index: trunk/src/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc |
=================================================================== |
--- trunk/src/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc (revision 289111) |
+++ trunk/src/chrome/browser/sync/glue/frontend_data_type_controller_unittest.cc (working copy) |
@@ -255,3 +255,21 @@ |
frontend_dtc_->Stop(); |
EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); |
} |
+ |
+TEST_F(SyncFrontendDataTypeControllerTest, OnSingleDatatypeUnrecoverableError) { |
+ SetStartExpectations(); |
+ SetAssociateExpectations(); |
+ SetActivateExpectations(DataTypeController::OK); |
+ EXPECT_CALL(*dtc_mock_.get(), RecordUnrecoverableError(_, "Test")); |
+ EXPECT_CALL(service_, DisableDatatype(_)) |
+ .WillOnce(InvokeWithoutArgs(frontend_dtc_.get(), |
+ &FrontendDataTypeController::Stop)); |
+ SetStopExpectations(); |
+ EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); |
+ Start(); |
+ EXPECT_EQ(DataTypeController::RUNNING, frontend_dtc_->state()); |
+ // This should cause frontend_dtc_->Stop() to be called. |
+ frontend_dtc_->OnSingleDatatypeUnrecoverableError(FROM_HERE, "Test"); |
+ PumpLoop(); |
+ EXPECT_EQ(DataTypeController::NOT_RUNNING, frontend_dtc_->state()); |
+} |