Index: trunk/src/components/sync_driver/non_ui_data_type_controller_unittest.cc |
=================================================================== |
--- trunk/src/components/sync_driver/non_ui_data_type_controller_unittest.cc (revision 289111) |
+++ trunk/src/components/sync_driver/non_ui_data_type_controller_unittest.cc (working copy) |
@@ -96,10 +96,12 @@ |
SyncApiComponentFactory* sync_factory, |
NonUIDataTypeControllerMock* mock, |
SharedChangeProcessor* change_processor, |
+ const DisableTypeCallback& disable_callback, |
scoped_refptr<base::MessageLoopProxy> backend_loop) |
: NonUIDataTypeController( |
base::MessageLoopProxy::current(), |
base::Closure(), |
+ disable_callback, |
sync_factory), |
blocked_(false), |
mock_(mock), |
@@ -186,17 +188,22 @@ |
class SyncNonUIDataTypeControllerTest : public testing::Test { |
public: |
SyncNonUIDataTypeControllerTest() |
- : backend_thread_("dbthread") {} |
+ : backend_thread_("dbthread"), |
+ disable_callback_invoked_(false) {} |
virtual void SetUp() OVERRIDE { |
backend_thread_.Start(); |
change_processor_ = new SharedChangeProcessorMock(); |
// All of these are refcounted, so don't need to be released. |
dtc_mock_ = new StrictMock<NonUIDataTypeControllerMock>(); |
+ DataTypeController::DisableTypeCallback disable_callback = |
+ base::Bind(&SyncNonUIDataTypeControllerTest::DisableTypeCallback, |
+ base::Unretained(this)); |
non_ui_dtc_ = |
new NonUIDataTypeControllerFake(NULL, |
dtc_mock_.get(), |
change_processor_, |
+ disable_callback, |
backend_thread_.message_loop_proxy()); |
} |
@@ -264,6 +271,12 @@ |
done->Signal(); |
} |
+ void DisableTypeCallback(const tracked_objects::Location& location, |
+ const std::string& message) { |
+ disable_callback_invoked_ = true; |
+ non_ui_dtc_->Stop(); |
+ } |
+ |
base::MessageLoopForUI message_loop_; |
base::Thread backend_thread_; |
@@ -275,6 +288,8 @@ |
scoped_refptr<NonUIDataTypeControllerMock> dtc_mock_; |
scoped_refptr<SharedChangeProcessorMock> change_processor_; |
scoped_ptr<syncer::SyncChangeProcessor> saved_change_processor_; |
+ |
+ bool disable_callback_invoked_; |
}; |
TEST_F(SyncNonUIDataTypeControllerTest, StartOk) { |
@@ -481,7 +496,7 @@ |
EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state()); |
} |
-TEST_F(SyncNonUIDataTypeControllerTest, OnSingleDataTypeUnrecoverableError) { |
+TEST_F(SyncNonUIDataTypeControllerTest, OnSingleDatatypeUnrecoverableError) { |
SetStartExpectations(); |
SetAssociateExpectations(); |
SetActivateExpectations(DataTypeController::OK); |
@@ -492,15 +507,12 @@ |
testing::Mock::VerifyAndClearExpectations(&start_callback_); |
EXPECT_CALL(start_callback_, Run(DataTypeController::RUNTIME_ERROR, _, _)); |
- syncer::SyncError error(FROM_HERE, |
- syncer::SyncError::DATATYPE_ERROR, |
- "error", |
- non_ui_dtc_->type()); |
backend_thread_.message_loop_proxy()->PostTask(FROM_HERE, base::Bind( |
&NonUIDataTypeControllerFake:: |
- OnSingleDataTypeUnrecoverableError, |
+ OnSingleDatatypeUnrecoverableError, |
non_ui_dtc_.get(), |
- error)); |
+ FROM_HERE, |
+ std::string("Test"))); |
WaitForDTC(); |
} |