| Index: chrome/browser/sync/glue/fake_data_type_controller.cc
|
| diff --git a/chrome/browser/sync/glue/fake_data_type_controller.cc b/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| index d58b3e1596c2a33fa2bbd62051afa6f2934563d9..1f837a299d8cbbb2b892fba67e63c48cef2a0ac4 100644
|
| --- a/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| +++ b/chrome/browser/sync/glue/fake_data_type_controller.cc
|
| @@ -14,20 +14,26 @@ using syncable::ModelType;
|
| namespace browser_sync {
|
|
|
| FakeDataTypeController::FakeDataTypeController(ModelType type)
|
| - : state_(NOT_RUNNING), type_(type) {}
|
| + : state_(NOT_RUNNING), model_load_delayed_(false), type_(type) {}
|
|
|
| FakeDataTypeController::~FakeDataTypeController() {
|
| }
|
|
|
| -// NOT_RUNNING ->MODEL_LOADED.
|
| +// NOT_RUNNING ->MODEL_LOADED |MODEL_STARTING.
|
| void FakeDataTypeController::LoadModels(
|
| const ModelLoadCallback& model_load_callback) {
|
| if (state_ != NOT_RUNNING) {
|
| ADD_FAILURE();
|
| return;
|
| }
|
| - model_load_callback.Run(type(), SyncError());
|
| - state_ = MODEL_LOADED;
|
| +
|
| + if (model_load_delayed_ == false) {
|
| + model_load_callback.Run(type(), SyncError());
|
| + state_ = MODEL_LOADED;
|
| + } else {
|
| + model_load_callback_ = model_load_callback;
|
| + state_ = MODEL_STARTING;
|
| + }
|
| }
|
|
|
| void FakeDataTypeController::OnModelLoaded() {
|
| @@ -38,7 +44,7 @@ void FakeDataTypeController::OnModelLoaded() {
|
| void FakeDataTypeController::StartAssociating(
|
| const StartCallback& start_callback) {
|
| last_start_callback_ = start_callback;
|
| - state_ = MODEL_STARTING;
|
| + state_ = ASSOCIATING;
|
| }
|
|
|
| // MODEL_STARTING | ASSOCIATING -> RUNNING | DISABLED | NOT_RUNNING
|
| @@ -111,5 +117,14 @@ void FakeDataTypeController::RecordUnrecoverableError(
|
| ADD_FAILURE() << message;
|
| }
|
|
|
| +void FakeDataTypeController::SetDelayModelLoad() {
|
| + model_load_delayed_ = true;
|
| +}
|
| +
|
| +void FakeDataTypeController::SimulateModelLoadFinishing() {
|
| + ModelLoadCallback model_load_callback = model_load_callback_;
|
| + model_load_callback.Run(type(), SyncError());
|
| +}
|
| +
|
| } // namespace browser_sync
|
|
|
|
|