Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(23)

Side by Side Diff: chrome/browser/sync/glue/fake_data_type_controller.cc

Issue 10387144: [Sync] - Implement isolated model association. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: For submitting. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "testing/gmock/include/gmock/gmock.h" 5 #include "testing/gmock/include/gmock/gmock.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 7
8 #include "chrome/browser/sync/glue/fake_data_type_controller.h" 8 #include "chrome/browser/sync/glue/fake_data_type_controller.h"
9 9
10 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 using syncable::ModelType; 13 using syncable::ModelType;
14 namespace browser_sync { 14 namespace browser_sync {
15 15
16 FakeDataTypeController::FakeDataTypeController(ModelType type) 16 FakeDataTypeController::FakeDataTypeController(ModelType type)
17 : state_(NOT_RUNNING), type_(type) {} 17 : state_(NOT_RUNNING), model_load_delayed_(false), type_(type) {}
18 18
19 FakeDataTypeController::~FakeDataTypeController() { 19 FakeDataTypeController::~FakeDataTypeController() {
20 } 20 }
21 21
22 // NOT_RUNNING ->MODEL_LOADED. 22 // NOT_RUNNING ->MODEL_LOADED |MODEL_STARTING.
23 void FakeDataTypeController::LoadModels( 23 void FakeDataTypeController::LoadModels(
24 const ModelLoadCallback& model_load_callback) { 24 const ModelLoadCallback& model_load_callback) {
25 if (state_ != NOT_RUNNING) { 25 if (state_ != NOT_RUNNING) {
26 ADD_FAILURE(); 26 ADD_FAILURE();
27 return; 27 return;
28 } 28 }
29 model_load_callback.Run(type(), SyncError()); 29
30 state_ = MODEL_LOADED; 30 if (model_load_delayed_ == false) {
31 model_load_callback.Run(type(), SyncError());
32 state_ = MODEL_LOADED;
33 } else {
34 model_load_callback_ = model_load_callback;
35 state_ = MODEL_STARTING;
36 }
31 } 37 }
32 38
33 void FakeDataTypeController::OnModelLoaded() { 39 void FakeDataTypeController::OnModelLoaded() {
34 NOTREACHED(); 40 NOTREACHED();
35 } 41 }
36 42
37 // MODEL_LOADED -> MODEL_STARTING. 43 // MODEL_LOADED -> MODEL_STARTING.
38 void FakeDataTypeController::StartAssociating( 44 void FakeDataTypeController::StartAssociating(
39 const StartCallback& start_callback) { 45 const StartCallback& start_callback) {
40 last_start_callback_ = start_callback; 46 last_start_callback_ = start_callback;
41 state_ = MODEL_STARTING; 47 state_ = ASSOCIATING;
42 } 48 }
43 49
44 // MODEL_STARTING | ASSOCIATING -> RUNNING | DISABLED | NOT_RUNNING 50 // MODEL_STARTING | ASSOCIATING -> RUNNING | DISABLED | NOT_RUNNING
45 // (depending on |result|) 51 // (depending on |result|)
46 void FakeDataTypeController::FinishStart(StartResult result) { 52 void FakeDataTypeController::FinishStart(StartResult result) {
47 // We should have a callback from Start(). 53 // We should have a callback from Start().
48 if (last_start_callback_.is_null()) { 54 if (last_start_callback_.is_null()) {
49 ADD_FAILURE(); 55 ADD_FAILURE();
50 return; 56 return;
51 } 57 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 const std::string& message) { 110 const std::string& message) {
105 ADD_FAILURE() << message; 111 ADD_FAILURE() << message;
106 } 112 }
107 113
108 void FakeDataTypeController::RecordUnrecoverableError( 114 void FakeDataTypeController::RecordUnrecoverableError(
109 const tracked_objects::Location& from_here, 115 const tracked_objects::Location& from_here,
110 const std::string& message) { 116 const std::string& message) {
111 ADD_FAILURE() << message; 117 ADD_FAILURE() << message;
112 } 118 }
113 119
120 void FakeDataTypeController::SetDelayModelLoad() {
121 model_load_delayed_ = true;
122 }
123
124 void FakeDataTypeController::SimulateModelLoadFinishing() {
125 ModelLoadCallback model_load_callback = model_load_callback_;
126 model_load_callback.Run(type(), SyncError());
127 }
128
114 } // namespace browser_sync 129 } // namespace browser_sync
115 130
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/fake_data_type_controller.h ('k') | chrome/browser/sync/glue/frontend_data_type_controller_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698