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 |