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

Side by Side Diff: components/sync/driver/model_association_manager_unittest.cc

Issue 2644373003: Revert of [Sync] Make directory types registration explicit in ModelTypeRegistry (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/sync/driver/model_association_manager.h" 5 #include "components/sync/driver/model_association_manager.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "components/sync/driver/fake_data_type_controller.h" 11 #include "components/sync/driver/fake_data_type_controller.h"
12 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 using ::testing::_; 15 using ::testing::_;
16 16
17 namespace syncer { 17 namespace syncer {
18 18
19 class MockModelAssociationManagerDelegate 19 class MockModelAssociationManagerDelegate
20 : public ModelAssociationManagerDelegate { 20 : public ModelAssociationManagerDelegate {
21 public: 21 public:
22 MockModelAssociationManagerDelegate() {} 22 MockModelAssociationManagerDelegate() {}
23 ~MockModelAssociationManagerDelegate() {} 23 ~MockModelAssociationManagerDelegate() {}
24 MOCK_METHOD0(OnAllDataTypesReadyForConfigure, void()); 24 MOCK_METHOD0(OnAllDataTypesReadyForConfigure, void());
25 MOCK_METHOD2(OnSingleDataTypeAssociationDone, 25 MOCK_METHOD2(OnSingleDataTypeAssociationDone,
26 void(ModelType type, 26 void(ModelType type,
27 const DataTypeAssociationStats& association_stats)); 27 const DataTypeAssociationStats& association_stats));
28 MOCK_METHOD1(OnSingleDataTypeWillStart, void(ModelType type));
29 MOCK_METHOD2(OnSingleDataTypeWillStop, 28 MOCK_METHOD2(OnSingleDataTypeWillStop,
30 void(ModelType, const SyncError& error)); 29 void(ModelType, const SyncError& error));
31 MOCK_METHOD1(OnModelAssociationDone, 30 MOCK_METHOD1(OnModelAssociationDone,
32 void(const DataTypeManager::ConfigureResult& result)); 31 void(const DataTypeManager::ConfigureResult& result));
33 }; 32 };
34 33
35 FakeDataTypeController* GetController( 34 FakeDataTypeController* GetController(
36 const DataTypeController::TypeMap& controllers, 35 const DataTypeController::TypeMap& controllers,
37 ModelType model_type) { 36 ModelType model_type) {
38 DataTypeController::TypeMap::const_iterator it = controllers.find(model_type); 37 DataTypeController::TypeMap::const_iterator it = controllers.find(model_type);
(...skipping 19 matching lines...) Expand all
58 }; 57 };
59 58
60 // Start a type and make sure ModelAssociationManager callst the |Start| 59 // Start a type and make sure ModelAssociationManager callst the |Start|
61 // method and calls the callback when it is done. 60 // method and calls the callback when it is done.
62 TEST_F(SyncModelAssociationManagerTest, SimpleModelStart) { 61 TEST_F(SyncModelAssociationManagerTest, SimpleModelStart) {
63 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 62 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
64 controllers_[APPS] = base::MakeUnique<FakeDataTypeController>(APPS); 63 controllers_[APPS] = base::MakeUnique<FakeDataTypeController>(APPS);
65 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 64 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
66 ModelTypeSet types(BOOKMARKS, APPS); 65 ModelTypeSet types(BOOKMARKS, APPS);
67 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 66 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
68 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
69 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
70 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()); 67 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
71 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 68 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
72 .WillOnce(VerifyResult(expected_result)); 69 .WillOnce(VerifyResult(expected_result));
73 70
74 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 71 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
75 DataTypeController::NOT_RUNNING); 72 DataTypeController::NOT_RUNNING);
76 EXPECT_EQ(GetController(controllers_, APPS)->state(), 73 EXPECT_EQ(GetController(controllers_, APPS)->state(),
77 DataTypeController::NOT_RUNNING); 74 DataTypeController::NOT_RUNNING);
78 75
79 // Initialize() kicks off model loading. 76 // Initialize() kicks off model loading.
(...skipping 15 matching lines...) Expand all
95 } 92 }
96 93
97 // Start a type and call stop before it finishes associating. 94 // Start a type and call stop before it finishes associating.
98 TEST_F(SyncModelAssociationManagerTest, StopModelBeforeFinish) { 95 TEST_F(SyncModelAssociationManagerTest, StopModelBeforeFinish) {
99 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 96 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
100 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 97 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
101 98
102 ModelTypeSet types; 99 ModelTypeSet types;
103 types.Put(BOOKMARKS); 100 types.Put(BOOKMARKS);
104 101
105 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
106 DataTypeManager::ConfigureResult expected_result(DataTypeManager::ABORTED, 102 DataTypeManager::ConfigureResult expected_result(DataTypeManager::ABORTED,
107 types); 103 types);
104
108 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 105 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
109 .WillOnce(VerifyResult(expected_result)); 106 .WillOnce(VerifyResult(expected_result));
110 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 107 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
111 108
112 model_association_manager.Initialize(types); 109 model_association_manager.Initialize(types);
113 model_association_manager.StartAssociationAsync(types); 110 model_association_manager.StartAssociationAsync(types);
114 111
115 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 112 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
116 DataTypeController::ASSOCIATING); 113 DataTypeController::ASSOCIATING);
117 model_association_manager.Stop(); 114 model_association_manager.Stop();
118 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 115 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
119 DataTypeController::NOT_RUNNING); 116 DataTypeController::NOT_RUNNING);
120 } 117 }
121 118
122 // Start a type, let it finish and then call stop. 119 // Start a type, let it finish and then call stop.
123 TEST_F(SyncModelAssociationManagerTest, StopAfterFinish) { 120 TEST_F(SyncModelAssociationManagerTest, StopAfterFinish) {
124 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 121 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
125 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 122 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
126 ModelTypeSet types; 123 ModelTypeSet types;
127 types.Put(BOOKMARKS); 124 types.Put(BOOKMARKS);
128 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
129 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 125 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
130 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 126 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
131 .WillOnce(VerifyResult(expected_result)); 127 .WillOnce(VerifyResult(expected_result));
132 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 128 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
133 129
134 model_association_manager.Initialize(types); 130 model_association_manager.Initialize(types);
135 model_association_manager.StartAssociationAsync(types); 131 model_association_manager.StartAssociationAsync(types);
136 132
137 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 133 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
138 DataTypeController::ASSOCIATING); 134 DataTypeController::ASSOCIATING);
139 GetController(controllers_, BOOKMARKS)->FinishStart(DataTypeController::OK); 135 GetController(controllers_, BOOKMARKS)->FinishStart(DataTypeController::OK);
140 136
141 model_association_manager.Stop(); 137 model_association_manager.Stop();
142 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 138 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
143 DataTypeController::NOT_RUNNING); 139 DataTypeController::NOT_RUNNING);
144 } 140 }
145 141
146 // Make a type fail model association and verify correctness. 142 // Make a type fail model association and verify correctness.
147 TEST_F(SyncModelAssociationManagerTest, TypeFailModelAssociation) { 143 TEST_F(SyncModelAssociationManagerTest, TypeFailModelAssociation) {
148 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 144 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
149 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 145 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
150 ModelTypeSet types; 146 ModelTypeSet types;
151 types.Put(BOOKMARKS); 147 types.Put(BOOKMARKS);
152 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
153 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 148 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
154 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 149 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
155 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 150 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
156 .WillOnce(VerifyResult(expected_result)); 151 .WillOnce(VerifyResult(expected_result));
157 152
158 model_association_manager.Initialize(types); 153 model_association_manager.Initialize(types);
159 model_association_manager.StartAssociationAsync(types); 154 model_association_manager.StartAssociationAsync(types);
160 155
161 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 156 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
162 DataTypeController::ASSOCIATING); 157 DataTypeController::ASSOCIATING);
163 GetController(controllers_, BOOKMARKS) 158 GetController(controllers_, BOOKMARKS)
164 ->FinishStart(DataTypeController::ASSOCIATION_FAILED); 159 ->FinishStart(DataTypeController::ASSOCIATION_FAILED);
165 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 160 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
166 DataTypeController::NOT_RUNNING); 161 DataTypeController::NOT_RUNNING);
167 } 162 }
168 163
169 // Ensure configuring stops when a type returns a unrecoverable error. 164 // Ensure configuring stops when a type returns a unrecoverable error.
170 TEST_F(SyncModelAssociationManagerTest, TypeReturnUnrecoverableError) { 165 TEST_F(SyncModelAssociationManagerTest, TypeReturnUnrecoverableError) {
171 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 166 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
172 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 167 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
173 ModelTypeSet types; 168 ModelTypeSet types;
174 types.Put(BOOKMARKS); 169 types.Put(BOOKMARKS);
175 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
176 DataTypeManager::ConfigureResult expected_result( 170 DataTypeManager::ConfigureResult expected_result(
177 DataTypeManager::UNRECOVERABLE_ERROR, types); 171 DataTypeManager::UNRECOVERABLE_ERROR, types);
178 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 172 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
179 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 173 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
180 .WillOnce(VerifyResult(expected_result)); 174 .WillOnce(VerifyResult(expected_result));
181 175
182 model_association_manager.Initialize(types); 176 model_association_manager.Initialize(types);
183 177
184 model_association_manager.StartAssociationAsync(types); 178 model_association_manager.StartAssociationAsync(types);
185 179
186 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 180 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
187 DataTypeController::ASSOCIATING); 181 DataTypeController::ASSOCIATING);
188 GetController(controllers_, BOOKMARKS) 182 GetController(controllers_, BOOKMARKS)
189 ->FinishStart(DataTypeController::UNRECOVERABLE_ERROR); 183 ->FinishStart(DataTypeController::UNRECOVERABLE_ERROR);
190 } 184 }
191 185
192 TEST_F(SyncModelAssociationManagerTest, SlowTypeAsFailedType) { 186 TEST_F(SyncModelAssociationManagerTest, SlowTypeAsFailedType) {
193 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 187 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
194 controllers_[APPS] = base::MakeUnique<FakeDataTypeController>(APPS); 188 controllers_[APPS] = base::MakeUnique<FakeDataTypeController>(APPS);
195 GetController(controllers_, BOOKMARKS)->SetDelayModelLoad(); 189 GetController(controllers_, BOOKMARKS)->SetDelayModelLoad();
196 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 190 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
197 ModelTypeSet types; 191 ModelTypeSet types;
198 types.Put(BOOKMARKS); 192 types.Put(BOOKMARKS);
199 types.Put(APPS); 193 types.Put(APPS);
200 194
201 DataTypeManager::ConfigureResult expected_result_partially_done( 195 DataTypeManager::ConfigureResult expected_result_partially_done(
202 DataTypeManager::OK, types); 196 DataTypeManager::OK, types);
203 197
204 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
205 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
206 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 198 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
207 .WillOnce(VerifyResult(expected_result_partially_done)); 199 .WillOnce(VerifyResult(expected_result_partially_done));
208 200
209 model_association_manager.Initialize(types); 201 model_association_manager.Initialize(types);
210 model_association_manager.StartAssociationAsync(types); 202 model_association_manager.StartAssociationAsync(types);
211 GetController(controllers_, APPS)->FinishStart(DataTypeController::OK); 203 GetController(controllers_, APPS)->FinishStart(DataTypeController::OK);
212 204
213 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 205 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
214 model_association_manager.GetTimerForTesting()->user_task().Run(); 206 model_association_manager.GetTimerForTesting()->user_task().Run();
215 207
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 // is reported and stopped properly. 255 // is reported and stopped properly.
264 TEST_F(SyncModelAssociationManagerTest, ModelLoadFailBeforeAssociationStart) { 256 TEST_F(SyncModelAssociationManagerTest, ModelLoadFailBeforeAssociationStart) {
265 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 257 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
266 GetController(controllers_, BOOKMARKS) 258 GetController(controllers_, BOOKMARKS)
267 ->SetModelLoadError( 259 ->SetModelLoadError(
268 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "", BOOKMARKS)); 260 SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, "", BOOKMARKS));
269 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 261 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
270 ModelTypeSet types; 262 ModelTypeSet types;
271 types.Put(BOOKMARKS); 263 types.Put(BOOKMARKS);
272 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 264 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
273 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
274 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _)); 265 EXPECT_CALL(delegate_, OnSingleDataTypeWillStop(BOOKMARKS, _));
275 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 266 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
276 .WillOnce(VerifyResult(expected_result)); 267 .WillOnce(VerifyResult(expected_result));
277 268
278 model_association_manager.Initialize(types); 269 model_association_manager.Initialize(types);
279 EXPECT_EQ(DataTypeController::NOT_RUNNING, 270 EXPECT_EQ(DataTypeController::NOT_RUNNING,
280 GetController(controllers_, BOOKMARKS)->state()); 271 GetController(controllers_, BOOKMARKS)->state());
281 model_association_manager.StartAssociationAsync(types); 272 model_association_manager.StartAssociationAsync(types);
282 EXPECT_EQ(DataTypeController::NOT_RUNNING, 273 EXPECT_EQ(DataTypeController::NOT_RUNNING,
283 GetController(controllers_, BOOKMARKS)->state()); 274 GetController(controllers_, BOOKMARKS)->state());
284 } 275 }
285 276
286 // Test that a runtime error is handled by stopping the type. 277 // Test that a runtime error is handled by stopping the type.
287 TEST_F(SyncModelAssociationManagerTest, StopAfterConfiguration) { 278 TEST_F(SyncModelAssociationManagerTest, StopAfterConfiguration) {
288 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS); 279 controllers_[BOOKMARKS] = base::MakeUnique<FakeDataTypeController>(BOOKMARKS);
289 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 280 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
290 ModelTypeSet types; 281 ModelTypeSet types;
291 types.Put(BOOKMARKS); 282 types.Put(BOOKMARKS);
292 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 283 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
293 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
294 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 284 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
295 .WillOnce(VerifyResult(expected_result)); 285 .WillOnce(VerifyResult(expected_result));
296 286
297 model_association_manager.Initialize(types); 287 model_association_manager.Initialize(types);
298 model_association_manager.StartAssociationAsync(types); 288 model_association_manager.StartAssociationAsync(types);
299 289
300 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 290 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
301 DataTypeController::ASSOCIATING); 291 DataTypeController::ASSOCIATING);
302 GetController(controllers_, BOOKMARKS)->FinishStart(DataTypeController::OK); 292 GetController(controllers_, BOOKMARKS)->FinishStart(DataTypeController::OK);
303 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 293 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
(...skipping 14 matching lines...) Expand all
318 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 308 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
319 ModelTypeSet types; 309 ModelTypeSet types;
320 types.Put(BOOKMARKS); 310 types.Put(BOOKMARKS);
321 types.Put(APPS); 311 types.Put(APPS);
322 312
323 ModelTypeSet expected_types_unfinished; 313 ModelTypeSet expected_types_unfinished;
324 expected_types_unfinished.Put(BOOKMARKS); 314 expected_types_unfinished.Put(BOOKMARKS);
325 DataTypeManager::ConfigureResult expected_result_partially_done( 315 DataTypeManager::ConfigureResult expected_result_partially_done(
326 DataTypeManager::OK, types); 316 DataTypeManager::OK, types);
327 317
328 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
329 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
330 EXPECT_CALL(delegate_, OnModelAssociationDone(_)) 318 EXPECT_CALL(delegate_, OnModelAssociationDone(_))
331 .WillOnce(VerifyResult(expected_result_partially_done)); 319 .WillOnce(VerifyResult(expected_result_partially_done));
332 320
333 model_association_manager.Initialize(types); 321 model_association_manager.Initialize(types);
334 model_association_manager.StartAssociationAsync(types); 322 model_association_manager.StartAssociationAsync(types);
335 GetController(controllers_, APPS)->FinishStart(DataTypeController::OK); 323 GetController(controllers_, APPS)->FinishStart(DataTypeController::OK);
336 EXPECT_EQ(GetController(controllers_, APPS)->state(), 324 EXPECT_EQ(GetController(controllers_, APPS)->state(),
337 DataTypeController::RUNNING); 325 DataTypeController::RUNNING);
338 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 326 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
339 DataTypeController::ASSOCIATING); 327 DataTypeController::ASSOCIATING);
(...skipping 15 matching lines...) Expand all
355 GetController(controllers_, APPS)->SetDelayModelLoad(); 343 GetController(controllers_, APPS)->SetDelayModelLoad();
356 344
357 // APPS controller requires LoadModels complete before configure. 345 // APPS controller requires LoadModels complete before configure.
358 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true); 346 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true);
359 347
360 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 348 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
361 ModelTypeSet types(BOOKMARKS, APPS); 349 ModelTypeSet types(BOOKMARKS, APPS);
362 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 350 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
363 // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not 351 // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not
364 // loaded yet. 352 // loaded yet.
365 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
366 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
367 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0); 353 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
368 354
369 model_association_manager.Initialize(types); 355 model_association_manager.Initialize(types);
370 356
371 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 357 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
372 DataTypeController::MODEL_STARTING); 358 DataTypeController::MODEL_STARTING);
373 EXPECT_EQ(GetController(controllers_, APPS)->state(), 359 EXPECT_EQ(GetController(controllers_, APPS)->state(),
374 DataTypeController::MODEL_STARTING); 360 DataTypeController::MODEL_STARTING);
375 361
376 testing::Mock::VerifyAndClearExpectations(&delegate_); 362 testing::Mock::VerifyAndClearExpectations(&delegate_);
(...skipping 25 matching lines...) Expand all
402 GetController(controllers_, APPS)->SetDelayModelLoad(); 388 GetController(controllers_, APPS)->SetDelayModelLoad();
403 389
404 // APPS controller requires LoadModels complete before configure. 390 // APPS controller requires LoadModels complete before configure.
405 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true); 391 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true);
406 392
407 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 393 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
408 ModelTypeSet types(APPS); 394 ModelTypeSet types(APPS);
409 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 395 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
410 // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not 396 // OnAllDataTypesReadyForConfigure shouldn't be called, APPS data type is not
411 // loaded yet. 397 // loaded yet.
412 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
413 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0); 398 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
414 399
415 model_association_manager.Initialize(types); 400 model_association_manager.Initialize(types);
416 401
417 EXPECT_EQ(GetController(controllers_, APPS)->state(), 402 EXPECT_EQ(GetController(controllers_, APPS)->state(),
418 DataTypeController::MODEL_STARTING); 403 DataTypeController::MODEL_STARTING);
419 404
420 testing::Mock::VerifyAndClearExpectations(&delegate_); 405 testing::Mock::VerifyAndClearExpectations(&delegate_);
421 406
422 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()); 407 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
(...skipping 21 matching lines...) Expand all
444 GetController(controllers_, BOOKMARKS) 429 GetController(controllers_, BOOKMARKS)
445 ->SetShouldLoadModelBeforeConfigure(true); 430 ->SetShouldLoadModelBeforeConfigure(true);
446 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true); 431 GetController(controllers_, APPS)->SetShouldLoadModelBeforeConfigure(true);
447 432
448 ModelAssociationManager model_association_manager(&controllers_, &delegate_); 433 ModelAssociationManager model_association_manager(&controllers_, &delegate_);
449 ModelTypeSet types(BOOKMARKS, APPS); 434 ModelTypeSet types(BOOKMARKS, APPS);
450 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types); 435 DataTypeManager::ConfigureResult expected_result(DataTypeManager::OK, types);
451 436
452 // Apps will finish loading but bookmarks won't. 437 // Apps will finish loading but bookmarks won't.
453 // OnAllDataTypesReadyForConfigure shouldn't be called. 438 // OnAllDataTypesReadyForConfigure shouldn't be called.
454 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS));
455 EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS));
456 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0); 439 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()).Times(0);
457 440
458 model_association_manager.Initialize(types); 441 model_association_manager.Initialize(types);
459 442
460 GetController(controllers_, APPS)->SimulateModelLoadFinishing(); 443 GetController(controllers_, APPS)->SimulateModelLoadFinishing();
461 444
462 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 445 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
463 DataTypeController::MODEL_STARTING); 446 DataTypeController::MODEL_STARTING);
464 EXPECT_EQ(GetController(controllers_, APPS)->state(), 447 EXPECT_EQ(GetController(controllers_, APPS)->state(),
465 DataTypeController::MODEL_LOADED); 448 DataTypeController::MODEL_LOADED);
(...skipping 14 matching lines...) Expand all
480 463
481 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure()); 464 EXPECT_CALL(delegate_, OnAllDataTypesReadyForConfigure());
482 // Finish loading BOOKMARKS. This should trigger 465 // Finish loading BOOKMARKS. This should trigger
483 // OnAllDataTypesReadyForConfigure(). 466 // OnAllDataTypesReadyForConfigure().
484 GetController(controllers_, BOOKMARKS)->SimulateModelLoadFinishing(); 467 GetController(controllers_, BOOKMARKS)->SimulateModelLoadFinishing();
485 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(), 468 EXPECT_EQ(GetController(controllers_, BOOKMARKS)->state(),
486 DataTypeController::MODEL_LOADED); 469 DataTypeController::MODEL_LOADED);
487 } 470 }
488 471
489 } // namespace syncer 472 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/driver/model_association_manager.cc ('k') | components/sync/driver/model_type_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698