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

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

Issue 7669073: [Sync] Add support for enabling session sync remotely. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DOUBLE R..ebase Created 9 years, 4 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/sync/glue/data_type_manager_impl.h" 5 #include "chrome/browser/sync/glue/data_type_manager_impl.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 MessageLoopForUI message_loop_; 160 MessageLoopForUI message_loop_;
161 BrowserThread ui_thread_; 161 BrowserThread ui_thread_;
162 DataTypeController::TypeMap controllers_; 162 DataTypeController::TypeMap controllers_;
163 SyncBackendHostMock backend_; 163 SyncBackendHostMock backend_;
164 NotificationObserverMock observer_; 164 NotificationObserverMock observer_;
165 NotificationRegistrar registrar_; 165 NotificationRegistrar registrar_;
166 std::set<syncable::ModelType> types_; 166 std::set<syncable::ModelType> types_;
167 }; 167 };
168 168
169 TEST_F(DataTypeManagerImplTest, NoControllers) { 169 TEST_F(DataTypeManagerImplTest, NoControllers) {
170 DataTypeManagerImpl dtm(&backend_, controllers_); 170 DataTypeManagerImpl dtm(&backend_, &controllers_);
171 SetConfigureStartExpectation(); 171 SetConfigureStartExpectation();
172 SetConfigureDoneExpectation(DataTypeManager::OK); 172 SetConfigureDoneExpectation(DataTypeManager::OK);
173 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 173 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
174 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 174 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
175 dtm.Stop(); 175 dtm.Stop();
176 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 176 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
177 } 177 }
178 178
179 TEST_F(DataTypeManagerImplTest, ConfigureOne) { 179 TEST_F(DataTypeManagerImplTest, ConfigureOne) {
180 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 180 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
181 SetStartStopExpectations(bookmark_dtc); 181 SetStartStopExpectations(bookmark_dtc);
182 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 182 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
183 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 183 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
184 DataTypeManagerImpl dtm(&backend_, controllers_); 184 DataTypeManagerImpl dtm(&backend_, &controllers_);
185 types_.insert(syncable::BOOKMARKS); 185 types_.insert(syncable::BOOKMARKS);
186 SetConfigureStartExpectation(); 186 SetConfigureStartExpectation();
187 SetConfigureDoneExpectation(DataTypeManager::OK); 187 SetConfigureDoneExpectation(DataTypeManager::OK);
188 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 188 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
189 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 189 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
190 dtm.Stop(); 190 dtm.Stop();
191 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 191 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
192 } 192 }
193 193
194 TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileStarting) { 194 TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileStarting) {
195 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 195 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
196 SetBusyStartStopExpectations(bookmark_dtc, 196 SetBusyStartStopExpectations(bookmark_dtc,
197 DataTypeController::MODEL_STARTING); 197 DataTypeController::MODEL_STARTING);
198 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 198 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
199 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 199 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
200 DataTypeManagerImpl dtm(&backend_, controllers_); 200 DataTypeManagerImpl dtm(&backend_, &controllers_);
201 types_.insert(syncable::BOOKMARKS); 201 types_.insert(syncable::BOOKMARKS);
202 SetConfigureStartExpectation(); 202 SetConfigureStartExpectation();
203 SetConfigureDoneExpectation(DataTypeManager::OK); 203 SetConfigureDoneExpectation(DataTypeManager::OK);
204 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 204 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
205 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 205 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
206 dtm.Stop(); 206 dtm.Stop();
207 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 207 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
208 } 208 }
209 209
210 TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileAssociating) { 210 TEST_F(DataTypeManagerImplTest, ConfigureOneStopWhileAssociating) {
211 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 211 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
212 SetBusyStartStopExpectations(bookmark_dtc, DataTypeController::ASSOCIATING); 212 SetBusyStartStopExpectations(bookmark_dtc, DataTypeController::ASSOCIATING);
213 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 213 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
214 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 214 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
215 DataTypeManagerImpl dtm(&backend_, controllers_); 215 DataTypeManagerImpl dtm(&backend_, &controllers_);
216 types_.insert(syncable::BOOKMARKS); 216 types_.insert(syncable::BOOKMARKS);
217 SetConfigureStartExpectation(); 217 SetConfigureStartExpectation();
218 SetConfigureDoneExpectation(DataTypeManager::OK); 218 SetConfigureDoneExpectation(DataTypeManager::OK);
219 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 219 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
220 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 220 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
221 dtm.Stop(); 221 dtm.Stop();
222 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 222 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
223 } 223 }
224 224
225 TEST_F(DataTypeManagerImplTest, OneWaitingForCrypto) { 225 TEST_F(DataTypeManagerImplTest, OneWaitingForCrypto) {
226 DataTypeControllerMock* password_dtc = MakePasswordDTC(); 226 DataTypeControllerMock* password_dtc = MakePasswordDTC();
227 EXPECT_CALL(*password_dtc, state()).Times(AtLeast(2)). 227 EXPECT_CALL(*password_dtc, state()).Times(AtLeast(2)).
228 WillRepeatedly(Return(DataTypeController::NOT_RUNNING)); 228 WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
229 EXPECT_CALL(*password_dtc, Start(_)). 229 EXPECT_CALL(*password_dtc, Start(_)).
230 WillOnce(InvokeCallback((DataTypeController::NEEDS_CRYPTO))); 230 WillOnce(InvokeCallback((DataTypeController::NEEDS_CRYPTO)));
231 231
232 controllers_[syncable::PASSWORDS] = password_dtc; 232 controllers_[syncable::PASSWORDS] = password_dtc;
233 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 233 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
234 234
235 DataTypeManagerImpl dtm(&backend_, controllers_); 235 DataTypeManagerImpl dtm(&backend_, &controllers_);
236 types_.insert(syncable::PASSWORDS); 236 types_.insert(syncable::PASSWORDS);
237 SetConfigureStartExpectation(); 237 SetConfigureStartExpectation();
238 238
239 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 239 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
240 EXPECT_EQ(DataTypeManager::BLOCKED, dtm.state()); 240 EXPECT_EQ(DataTypeManager::BLOCKED, dtm.state());
241 241
242 Mock::VerifyAndClearExpectations(&backend_); 242 Mock::VerifyAndClearExpectations(&backend_);
243 Mock::VerifyAndClearExpectations(&observer_); 243 Mock::VerifyAndClearExpectations(&observer_);
244 Mock::VerifyAndClearExpectations(password_dtc); 244 Mock::VerifyAndClearExpectations(password_dtc);
245 245
(...skipping 15 matching lines...) Expand all
261 261
262 TEST_F(DataTypeManagerImplTest, ConfigureOneThenAnother) { 262 TEST_F(DataTypeManagerImplTest, ConfigureOneThenAnother) {
263 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 263 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
264 SetStartStopExpectations(bookmark_dtc); 264 SetStartStopExpectations(bookmark_dtc);
265 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 265 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
266 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 266 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
267 SetStartStopExpectations(preference_dtc); 267 SetStartStopExpectations(preference_dtc);
268 controllers_[syncable::PREFERENCES] = preference_dtc; 268 controllers_[syncable::PREFERENCES] = preference_dtc;
269 269
270 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(2); 270 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(2);
271 DataTypeManagerImpl dtm(&backend_, controllers_); 271 DataTypeManagerImpl dtm(&backend_, &controllers_);
272 types_.insert(syncable::BOOKMARKS); 272 types_.insert(syncable::BOOKMARKS);
273 273
274 SetConfigureStartExpectation(); 274 SetConfigureStartExpectation();
275 SetConfigureDoneExpectation(DataTypeManager::OK); 275 SetConfigureDoneExpectation(DataTypeManager::OK);
276 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 276 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
277 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 277 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
278 278
279 types_.insert(syncable::PREFERENCES); 279 types_.insert(syncable::PREFERENCES);
280 SetConfigureStartExpectation(); 280 SetConfigureStartExpectation();
281 SetConfigureDoneExpectation(DataTypeManager::OK); 281 SetConfigureDoneExpectation(DataTypeManager::OK);
282 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 282 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
283 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 283 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
284 284
285 dtm.Stop(); 285 dtm.Stop();
286 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 286 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
287 } 287 }
288 288
289 TEST_F(DataTypeManagerImplTest, ConfigureOneThenSwitch) { 289 TEST_F(DataTypeManagerImplTest, ConfigureOneThenSwitch) {
290 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 290 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
291 SetStartStopExpectations(bookmark_dtc); 291 SetStartStopExpectations(bookmark_dtc);
292 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 292 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
293 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 293 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
294 SetStartStopExpectations(preference_dtc); 294 SetStartStopExpectations(preference_dtc);
295 controllers_[syncable::PREFERENCES] = preference_dtc; 295 controllers_[syncable::PREFERENCES] = preference_dtc;
296 296
297 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(2); 297 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(2);
298 DataTypeManagerImpl dtm(&backend_, controllers_); 298 DataTypeManagerImpl dtm(&backend_, &controllers_);
299 types_.insert(syncable::BOOKMARKS); 299 types_.insert(syncable::BOOKMARKS);
300 300
301 SetConfigureStartExpectation(); 301 SetConfigureStartExpectation();
302 SetConfigureDoneExpectation(DataTypeManager::OK); 302 SetConfigureDoneExpectation(DataTypeManager::OK);
303 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 303 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
304 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state()); 304 EXPECT_EQ(DataTypeManager::CONFIGURED, dtm.state());
305 305
306 types_.clear(); 306 types_.clear();
307 types_.insert(syncable::PREFERENCES); 307 types_.insert(syncable::PREFERENCES);
308 SetConfigureStartExpectation(); 308 SetConfigureStartExpectation();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 EXPECT_CALL(*bookmark_dtc, Stop()).Times(1); 342 EXPECT_CALL(*bookmark_dtc, Stop()).Times(1);
343 EXPECT_CALL(*bookmark_dtc, state()). 343 EXPECT_CALL(*bookmark_dtc, state()).
344 WillRepeatedly(Return(DataTypeController::NOT_RUNNING)); 344 WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
345 } 345 }
346 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 346 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
347 347
348 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 348 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
349 SetStartStopExpectations(preference_dtc); 349 SetStartStopExpectations(preference_dtc);
350 controllers_[syncable::PREFERENCES] = preference_dtc; 350 controllers_[syncable::PREFERENCES] = preference_dtc;
351 351
352 DataTypeManagerImpl dtm(&backend_, controllers_); 352 DataTypeManagerImpl dtm(&backend_, &controllers_);
353 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)) 353 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _))
354 .WillOnce(Invoke(DoConfigureDataTypes)) 354 .WillOnce(Invoke(DoConfigureDataTypes))
355 .WillOnce(DoAll(Invoke(DoConfigureDataTypes), 355 .WillOnce(DoAll(Invoke(DoConfigureDataTypes),
356 InvokeWithoutArgs(QuitMessageLoop))); 356 InvokeWithoutArgs(QuitMessageLoop)));
357 357
358 types_.insert(syncable::BOOKMARKS); 358 types_.insert(syncable::BOOKMARKS);
359 359
360 SetConfigureStartExpectation(); 360 SetConfigureStartExpectation();
361 SetConfigureDoneExpectation(DataTypeManager::OK); 361 SetConfigureDoneExpectation(DataTypeManager::OK);
362 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 362 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
(...skipping 15 matching lines...) Expand all
378 378
379 TEST_F(DataTypeManagerImplTest, OneFailingController) { 379 TEST_F(DataTypeManagerImplTest, OneFailingController) {
380 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 380 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
381 EXPECT_CALL(*bookmark_dtc, Start(_)). 381 EXPECT_CALL(*bookmark_dtc, Start(_)).
382 WillOnce(InvokeCallback((DataTypeController::ASSOCIATION_FAILED))); 382 WillOnce(InvokeCallback((DataTypeController::ASSOCIATION_FAILED)));
383 EXPECT_CALL(*bookmark_dtc, Stop()).Times(0); 383 EXPECT_CALL(*bookmark_dtc, Stop()).Times(0);
384 EXPECT_CALL(*bookmark_dtc, state()). 384 EXPECT_CALL(*bookmark_dtc, state()).
385 WillRepeatedly(Return(DataTypeController::NOT_RUNNING)); 385 WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
386 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 386 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
387 387
388 DataTypeManagerImpl dtm(&backend_, controllers_); 388 DataTypeManagerImpl dtm(&backend_, &controllers_);
389 SetConfigureStartExpectation(); 389 SetConfigureStartExpectation();
390 SetConfigureDoneExpectation(DataTypeManager::ASSOCIATION_FAILED); 390 SetConfigureDoneExpectation(DataTypeManager::ASSOCIATION_FAILED);
391 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 391 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
392 392
393 types_.insert(syncable::BOOKMARKS); 393 types_.insert(syncable::BOOKMARKS);
394 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 394 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
395 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 395 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
396 } 396 }
397 397
398 TEST_F(DataTypeManagerImplTest, StopWhileInFlight) { 398 TEST_F(DataTypeManagerImplTest, StopWhileInFlight) {
399 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 399 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
400 SetStartStopExpectations(bookmark_dtc); 400 SetStartStopExpectations(bookmark_dtc);
401 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 401 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
402 402
403 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 403 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
404 // Save the callback here so we can interrupt startup. 404 // Save the callback here so we can interrupt startup.
405 DataTypeController::StartCallback* callback; 405 DataTypeController::StartCallback* callback;
406 EXPECT_CALL(*preference_dtc, Start(_)). 406 EXPECT_CALL(*preference_dtc, Start(_)).
407 WillOnce(SaveArg<0>(&callback)); 407 WillOnce(SaveArg<0>(&callback));
408 EXPECT_CALL(*preference_dtc, state()). 408 EXPECT_CALL(*preference_dtc, state()).
409 WillRepeatedly(Return(DataTypeController::NOT_RUNNING)); 409 WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
410 controllers_[syncable::PREFERENCES] = preference_dtc; 410 controllers_[syncable::PREFERENCES] = preference_dtc;
411 411
412 DataTypeManagerImpl dtm(&backend_, controllers_); 412 DataTypeManagerImpl dtm(&backend_, &controllers_);
413 SetConfigureStartExpectation(); 413 SetConfigureStartExpectation();
414 SetConfigureDoneExpectation(DataTypeManager::ABORTED); 414 SetConfigureDoneExpectation(DataTypeManager::ABORTED);
415 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 415 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
416 416
417 types_.insert(syncable::BOOKMARKS); 417 types_.insert(syncable::BOOKMARKS);
418 types_.insert(syncable::PREFERENCES); 418 types_.insert(syncable::PREFERENCES);
419 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 419 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
420 // Configure should stop in the CONFIGURING state because we are 420 // Configure should stop in the CONFIGURING state because we are
421 // waiting for the preferences callback to be invoked. 421 // waiting for the preferences callback to be invoked.
422 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm.state()); 422 EXPECT_EQ(DataTypeManager::CONFIGURING, dtm.state());
(...skipping 11 matching lines...) Expand all
434 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 434 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
435 435
436 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 436 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
437 EXPECT_CALL(*preference_dtc, Start(_)). 437 EXPECT_CALL(*preference_dtc, Start(_)).
438 WillOnce(InvokeCallback((DataTypeController::ASSOCIATION_FAILED))); 438 WillOnce(InvokeCallback((DataTypeController::ASSOCIATION_FAILED)));
439 EXPECT_CALL(*preference_dtc, Stop()).Times(0); 439 EXPECT_CALL(*preference_dtc, Stop()).Times(0);
440 EXPECT_CALL(*preference_dtc, state()). 440 EXPECT_CALL(*preference_dtc, state()).
441 WillRepeatedly(Return(DataTypeController::NOT_RUNNING)); 441 WillRepeatedly(Return(DataTypeController::NOT_RUNNING));
442 controllers_[syncable::PREFERENCES] = preference_dtc; 442 controllers_[syncable::PREFERENCES] = preference_dtc;
443 443
444 DataTypeManagerImpl dtm(&backend_, controllers_); 444 DataTypeManagerImpl dtm(&backend_, &controllers_);
445 SetConfigureStartExpectation(); 445 SetConfigureStartExpectation();
446 SetConfigureDoneExpectation(DataTypeManager::ASSOCIATION_FAILED); 446 SetConfigureDoneExpectation(DataTypeManager::ASSOCIATION_FAILED);
447 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1); 447 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).Times(1);
448 448
449 types_.insert(syncable::BOOKMARKS); 449 types_.insert(syncable::BOOKMARKS);
450 types_.insert(syncable::PREFERENCES); 450 types_.insert(syncable::PREFERENCES);
451 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 451 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
452 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 452 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
453 } 453 }
454 454
455 TEST_F(DataTypeManagerImplTest, ConfigureWhileDownloadPending) { 455 TEST_F(DataTypeManagerImplTest, ConfigureWhileDownloadPending) {
456 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 456 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
457 SetStartStopExpectations(bookmark_dtc); 457 SetStartStopExpectations(bookmark_dtc);
458 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 458 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
459 459
460 DataTypeControllerMock* preference_dtc = MakePreferenceDTC(); 460 DataTypeControllerMock* preference_dtc = MakePreferenceDTC();
461 SetStartStopExpectations(preference_dtc); 461 SetStartStopExpectations(preference_dtc);
462 controllers_[syncable::PREFERENCES] = preference_dtc; 462 controllers_[syncable::PREFERENCES] = preference_dtc;
463 463
464 DataTypeManagerImpl dtm(&backend_, controllers_); 464 DataTypeManagerImpl dtm(&backend_, &controllers_);
465 SetConfigureStartExpectation(); 465 SetConfigureStartExpectation();
466 SetConfigureDoneExpectation(DataTypeManager::OK); 466 SetConfigureDoneExpectation(DataTypeManager::OK);
467 base::Callback<void(bool)> task; 467 base::Callback<void(bool)> task;
468 // Grab the task the first time this is called so we can configure 468 // Grab the task the first time this is called so we can configure
469 // before it is finished. 469 // before it is finished.
470 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)). 470 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).
471 WillOnce(SaveArg<3>(&task)). 471 WillOnce(SaveArg<3>(&task)).
472 WillOnce(DoDefault()); 472 WillOnce(DoDefault());
473 473
474 types_.insert(syncable::BOOKMARKS); 474 types_.insert(syncable::BOOKMARKS);
(...skipping 13 matching lines...) Expand all
488 488
489 dtm.Stop(); 489 dtm.Stop();
490 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 490 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
491 } 491 }
492 492
493 TEST_F(DataTypeManagerImplTest, StopWhileDownloadPending) { 493 TEST_F(DataTypeManagerImplTest, StopWhileDownloadPending) {
494 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC(); 494 DataTypeControllerMock* bookmark_dtc = MakeBookmarkDTC();
495 SetNotUsedExpectations(bookmark_dtc); 495 SetNotUsedExpectations(bookmark_dtc);
496 controllers_[syncable::BOOKMARKS] = bookmark_dtc; 496 controllers_[syncable::BOOKMARKS] = bookmark_dtc;
497 497
498 DataTypeManagerImpl dtm(&backend_, controllers_); 498 DataTypeManagerImpl dtm(&backend_, &controllers_);
499 SetConfigureStartExpectation(); 499 SetConfigureStartExpectation();
500 SetConfigureDoneExpectation(DataTypeManager::ABORTED); 500 SetConfigureDoneExpectation(DataTypeManager::ABORTED);
501 base::Callback<void(bool)> task; 501 base::Callback<void(bool)> task;
502 // Grab the task the first time this is called so we can stop 502 // Grab the task the first time this is called so we can stop
503 // before it is finished. 503 // before it is finished.
504 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)). 504 EXPECT_CALL(backend_, ConfigureDataTypes(_, _, _, _, _)).
505 WillOnce(SaveArg<3>(&task)); 505 WillOnce(SaveArg<3>(&task));
506 506
507 types_.insert(syncable::BOOKMARKS); 507 types_.insert(syncable::BOOKMARKS);
508 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION); 508 dtm.Configure(types_, sync_api::CONFIGURE_REASON_RECONFIGURATION);
509 // Configure should stop in the DOWNLOAD_PENDING state because we 509 // Configure should stop in the DOWNLOAD_PENDING state because we
510 // are waiting for the download ready task to be run. 510 // are waiting for the download ready task to be run.
511 EXPECT_EQ(DataTypeManager::DOWNLOAD_PENDING, dtm.state()); 511 EXPECT_EQ(DataTypeManager::DOWNLOAD_PENDING, dtm.state());
512 512
513 dtm.Stop(); 513 dtm.Stop();
514 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state()); 514 EXPECT_EQ(DataTypeManager::STOPPED, dtm.state());
515 515
516 // It should be perfectly safe to run this task even though the DTM 516 // It should be perfectly safe to run this task even though the DTM
517 // has been stopped. 517 // has been stopped.
518 task.Run(true); 518 task.Run(true);
519 } 519 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/data_type_manager_impl.cc ('k') | chrome/browser/sync/glue/sync_backend_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698