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

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

Issue 2388673002: Revert of [Sync] Move //components/sync to the syncer namespace. (patchset #5 id:40001 of https://co (Closed)
Patch Set: Created 4 years, 2 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/non_ui_data_type_controller.h" 5 #include "components/sync/driver/non_ui_data_type_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "components/sync/api/fake_syncable_service.h" 24 #include "components/sync/api/fake_syncable_service.h"
25 #include "components/sync/api/sync_change.h" 25 #include "components/sync/api/sync_change.h"
26 #include "components/sync/driver/data_type_controller_mock.h" 26 #include "components/sync/driver/data_type_controller_mock.h"
27 #include "components/sync/driver/fake_sync_client.h" 27 #include "components/sync/driver/fake_sync_client.h"
28 #include "components/sync/driver/generic_change_processor_factory.h" 28 #include "components/sync/driver/generic_change_processor_factory.h"
29 #include "components/sync/driver/non_ui_data_type_controller_mock.h" 29 #include "components/sync/driver/non_ui_data_type_controller_mock.h"
30 #include "components/sync/engine/model_safe_worker.h" 30 #include "components/sync/engine/model_safe_worker.h"
31 #include "testing/gmock/include/gmock/gmock.h" 31 #include "testing/gmock/include/gmock/gmock.h"
32 #include "testing/gtest/include/gtest/gtest.h" 32 #include "testing/gtest/include/gtest/gtest.h"
33 33
34 namespace syncer { 34 namespace sync_driver {
35 35
36 class SyncClient; 36 class SyncClient;
37 37
38 namespace { 38 namespace {
39 39
40 using base::WaitableEvent; 40 using base::WaitableEvent;
41 using syncer::AUTOFILL_PROFILE;
41 using testing::_; 42 using testing::_;
42 using testing::AtLeast; 43 using testing::AtLeast;
43 using testing::DoAll; 44 using testing::DoAll;
44 using testing::InvokeWithoutArgs; 45 using testing::InvokeWithoutArgs;
45 using testing::Mock; 46 using testing::Mock;
46 using testing::Return; 47 using testing::Return;
47 using testing::SetArgumentPointee; 48 using testing::SetArgumentPointee;
48 using testing::StrictMock; 49 using testing::StrictMock;
49 50
50 const ModelType kType = AUTOFILL_PROFILE; 51 const syncer::ModelType kType = AUTOFILL_PROFILE;
51 52
52 ACTION_P(WaitOnEvent, event) { 53 ACTION_P(WaitOnEvent, event) {
53 event->Wait(); 54 event->Wait();
54 } 55 }
55 56
56 ACTION_P(SignalEvent, event) { 57 ACTION_P(SignalEvent, event) {
57 event->Signal(); 58 event->Signal();
58 } 59 }
59 60
60 ACTION_P(SaveChangeProcessor, scoped_change_processor) { 61 ACTION_P(SaveChangeProcessor, scoped_change_processor) {
61 scoped_change_processor->reset(arg2); 62 scoped_change_processor->reset(arg2);
62 } 63 }
63 64
64 class SharedChangeProcessorMock : public SharedChangeProcessor { 65 class SharedChangeProcessorMock : public SharedChangeProcessor {
65 public: 66 public:
66 explicit SharedChangeProcessorMock(ModelType type) 67 explicit SharedChangeProcessorMock(syncer::ModelType type)
67 : SharedChangeProcessor(type) {} 68 : SharedChangeProcessor(type) {}
68 69
69 base::WeakPtr<SyncableService> Connect( 70 base::WeakPtr<syncer::SyncableService> Connect(
70 SyncClient*, 71 SyncClient*,
71 GenericChangeProcessorFactory*, 72 GenericChangeProcessorFactory*,
72 UserShare*, 73 syncer::UserShare*,
73 std::unique_ptr<DataTypeErrorHandler>, 74 std::unique_ptr<syncer::DataTypeErrorHandler>,
74 const base::WeakPtr<SyncMergeResult>&) { 75 const base::WeakPtr<syncer::SyncMergeResult>&) {
75 return std::move(connect_return_); 76 return std::move(connect_return_);
76 } 77 }
77 MOCK_METHOD0(Disconnect, bool()); 78 MOCK_METHOD0(Disconnect, bool());
78 MOCK_METHOD2(ProcessSyncChanges, 79 MOCK_METHOD2(ProcessSyncChanges,
79 SyncError(const tracked_objects::Location&, 80 syncer::SyncError(const tracked_objects::Location&,
80 const SyncChangeList&)); 81 const syncer::SyncChangeList&));
81 MOCK_CONST_METHOD2(GetAllSyncDataReturnError, 82 MOCK_CONST_METHOD2(GetAllSyncDataReturnError,
82 SyncError(ModelType, SyncDataList*)); 83 syncer::SyncError(syncer::ModelType,
84 syncer::SyncDataList*));
83 MOCK_METHOD0(GetSyncCount, int()); 85 MOCK_METHOD0(GetSyncCount, int());
84 MOCK_METHOD1(SyncModelHasUserCreatedNodes, bool(bool*)); 86 MOCK_METHOD1(SyncModelHasUserCreatedNodes, bool(bool*));
85 MOCK_METHOD0(CryptoReadyIfNecessary, bool()); 87 MOCK_METHOD0(CryptoReadyIfNecessary, bool());
86 MOCK_CONST_METHOD1(GetDataTypeContext, bool(std::string*)); 88 MOCK_CONST_METHOD1(GetDataTypeContext, bool(std::string*));
87 MOCK_METHOD1(RecordAssociationTime, void(base::TimeDelta time)); 89 MOCK_METHOD1(RecordAssociationTime, void(base::TimeDelta time));
88 90
89 void SetConnectReturn(base::WeakPtr<SyncableService> service) { 91 void SetConnectReturn(base::WeakPtr<syncer::SyncableService> service) {
90 connect_return_ = service; 92 connect_return_ = service;
91 } 93 }
92 94
93 protected: 95 protected:
94 virtual ~SharedChangeProcessorMock() { DCHECK(!connect_return_); } 96 virtual ~SharedChangeProcessorMock() { DCHECK(!connect_return_); }
95 MOCK_METHOD2(OnUnrecoverableError, 97 MOCK_METHOD2(OnUnrecoverableError,
96 void(const tracked_objects::Location&, const std::string&)); 98 void(const tracked_objects::Location&, const std::string&));
97 99
98 private: 100 private:
99 base::WeakPtr<SyncableService> connect_return_; 101 base::WeakPtr<syncer::SyncableService> connect_return_;
100 DISALLOW_COPY_AND_ASSIGN(SharedChangeProcessorMock); 102 DISALLOW_COPY_AND_ASSIGN(SharedChangeProcessorMock);
101 }; 103 };
102 104
103 class NonUIDataTypeControllerFake : public NonUIDataTypeController { 105 class NonUIDataTypeControllerFake : public NonUIDataTypeController {
104 public: 106 public:
105 NonUIDataTypeControllerFake( 107 NonUIDataTypeControllerFake(
106 SyncClient* sync_client, 108 SyncClient* sync_client,
107 NonUIDataTypeControllerMock* mock, 109 NonUIDataTypeControllerMock* mock,
108 SharedChangeProcessor* change_processor, 110 SharedChangeProcessor* change_processor,
109 scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner) 111 scoped_refptr<base::SingleThreadTaskRunner> backend_task_runner)
110 : NonUIDataTypeController(kType, base::Closure(), sync_client), 112 : NonUIDataTypeController(kType, base::Closure(), sync_client),
111 blocked_(false), 113 blocked_(false),
112 mock_(mock), 114 mock_(mock),
113 change_processor_(change_processor), 115 change_processor_(change_processor),
114 backend_task_runner_(backend_task_runner) {} 116 backend_task_runner_(backend_task_runner) {}
115 ~NonUIDataTypeControllerFake() override {} 117 ~NonUIDataTypeControllerFake() override {}
116 118
117 ModelSafeGroup model_safe_group() const override { return GROUP_DB; } 119 syncer::ModelSafeGroup model_safe_group() const override {
120 return syncer::GROUP_DB;
121 }
118 122
119 // Prevent tasks from being posted on the backend thread until 123 // Prevent tasks from being posted on the backend thread until
120 // UnblockBackendTasks() is called. 124 // UnblockBackendTasks() is called.
121 void BlockBackendTasks() { blocked_ = true; } 125 void BlockBackendTasks() { blocked_ = true; }
122 126
123 // Post pending tasks on the backend thread and start allowing tasks 127 // Post pending tasks on the backend thread and start allowing tasks
124 // to be posted on the backend thread again. 128 // to be posted on the backend thread again.
125 void UnblockBackendTasks() { 129 void UnblockBackendTasks() {
126 blocked_ = false; 130 blocked_ = false;
127 for (std::vector<PendingTask>::const_iterator it = pending_tasks_.begin(); 131 for (std::vector<PendingTask>::const_iterator it = pending_tasks_.begin();
128 it != pending_tasks_.end(); ++it) { 132 it != pending_tasks_.end(); ++it) {
129 PostTaskOnBackendThread(it->from_here, it->task); 133 PostTaskOnBackendThread(it->from_here, it->task);
130 } 134 }
131 pending_tasks_.clear(); 135 pending_tasks_.clear();
132 } 136 }
133 137
134 SharedChangeProcessor* CreateSharedChangeProcessor() override { 138 SharedChangeProcessor* CreateSharedChangeProcessor() override {
135 return change_processor_.get(); 139 return change_processor_.get();
136 } 140 }
137 141
138 std::unique_ptr<DataTypeErrorHandler> CreateErrorHandler() override { 142 std::unique_ptr<syncer::DataTypeErrorHandler> CreateErrorHandler() override {
139 return NonUIDataTypeController::CreateErrorHandler(); 143 return NonUIDataTypeController::CreateErrorHandler();
140 } 144 }
141 145
142 protected: 146 protected:
143 bool PostTaskOnBackendThread(const tracked_objects::Location& from_here, 147 bool PostTaskOnBackendThread(const tracked_objects::Location& from_here,
144 const base::Closure& task) override { 148 const base::Closure& task) override {
145 if (blocked_) { 149 if (blocked_) {
146 pending_tasks_.push_back(PendingTask(from_here, task)); 150 pending_tasks_.push_back(PendingTask(from_here, task));
147 return true; 151 return true;
148 } else { 152 } else {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 EXPECT_CALL(model_load_callback_, Run(_, _)); 223 EXPECT_CALL(model_load_callback_, Run(_, _));
220 } 224 }
221 225
222 void SetAssociateExpectations() { 226 void SetAssociateExpectations() {
223 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr()); 227 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr());
224 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary()) 228 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
225 .WillOnce(Return(true)); 229 .WillOnce(Return(true));
226 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_)) 230 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
227 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 231 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
228 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _)) 232 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
229 .WillOnce(Return(SyncError())); 233 .WillOnce(Return(syncer::SyncError()));
230 EXPECT_CALL(*change_processor_.get(), GetSyncCount()).WillOnce(Return(0)); 234 EXPECT_CALL(*change_processor_.get(), GetSyncCount()).WillOnce(Return(0));
231 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_)); 235 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_));
232 } 236 }
233 237
234 void SetActivateExpectations(DataTypeController::ConfigureResult result) { 238 void SetActivateExpectations(DataTypeController::ConfigureResult result) {
235 EXPECT_CALL(start_callback_, Run(result, _, _)); 239 EXPECT_CALL(start_callback_, Run(result, _, _));
236 } 240 }
237 241
238 void SetStopExpectations() { 242 void SetStopExpectations() {
239 EXPECT_CALL(*dtc_mock_.get(), StopModels()); 243 EXPECT_CALL(*dtc_mock_.get(), StopModels());
(...skipping 14 matching lines...) Expand all
254 } 258 }
255 259
256 static void SignalDone(WaitableEvent* done) { done->Signal(); } 260 static void SignalDone(WaitableEvent* done) { done->Signal(); }
257 261
258 base::MessageLoopForUI message_loop_; 262 base::MessageLoopForUI message_loop_;
259 base::Thread backend_thread_; 263 base::Thread backend_thread_;
260 264
261 StartCallbackMock start_callback_; 265 StartCallbackMock start_callback_;
262 ModelLoadCallbackMock model_load_callback_; 266 ModelLoadCallbackMock model_load_callback_;
263 // Must be destroyed after non_ui_dtc_. 267 // Must be destroyed after non_ui_dtc_.
264 FakeSyncableService syncable_service_; 268 syncer::FakeSyncableService syncable_service_;
265 std::unique_ptr<NonUIDataTypeControllerFake> non_ui_dtc_; 269 std::unique_ptr<NonUIDataTypeControllerFake> non_ui_dtc_;
266 std::unique_ptr<NonUIDataTypeControllerMock> dtc_mock_; 270 std::unique_ptr<NonUIDataTypeControllerMock> dtc_mock_;
267 scoped_refptr<SharedChangeProcessorMock> change_processor_; 271 scoped_refptr<SharedChangeProcessorMock> change_processor_;
268 std::unique_ptr<SyncChangeProcessor> saved_change_processor_; 272 std::unique_ptr<syncer::SyncChangeProcessor> saved_change_processor_;
269 }; 273 };
270 274
271 TEST_F(SyncNonUIDataTypeControllerTest, StartOk) { 275 TEST_F(SyncNonUIDataTypeControllerTest, StartOk) {
272 SetStartExpectations(); 276 SetStartExpectations();
273 SetAssociateExpectations(); 277 SetAssociateExpectations();
274 SetActivateExpectations(DataTypeController::OK); 278 SetActivateExpectations(DataTypeController::OK);
275 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 279 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
276 Start(); 280 Start();
277 WaitForDTC(); 281 WaitForDTC();
278 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state()); 282 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state());
279 } 283 }
280 284
281 TEST_F(SyncNonUIDataTypeControllerTest, StartFirstRun) { 285 TEST_F(SyncNonUIDataTypeControllerTest, StartFirstRun) {
282 SetStartExpectations(); 286 SetStartExpectations();
283 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr()); 287 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr());
284 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary()) 288 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
285 .WillOnce(Return(true)); 289 .WillOnce(Return(true));
286 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_)) 290 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
287 .WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true))); 291 .WillOnce(DoAll(SetArgumentPointee<0>(false), Return(true)));
288 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _)) 292 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
289 .WillOnce(Return(SyncError())); 293 .WillOnce(Return(syncer::SyncError()));
290 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_)); 294 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_));
291 SetActivateExpectations(DataTypeController::OK_FIRST_RUN); 295 SetActivateExpectations(DataTypeController::OK_FIRST_RUN);
292 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 296 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
293 Start(); 297 Start();
294 WaitForDTC(); 298 WaitForDTC();
295 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state()); 299 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state());
296 } 300 }
297 301
298 // Start the DTC and have StartModels() return false. Then, stop the 302 // Start the DTC and have StartModels() return false. Then, stop the
299 // DTC without finishing model startup. It should stop cleanly. 303 // DTC without finishing model startup. It should stop cleanly.
(...skipping 13 matching lines...) Expand all
313 // The DTC should become disabled, and the DTC should still stop 317 // The DTC should become disabled, and the DTC should still stop
314 // cleanly. 318 // cleanly.
315 TEST_F(SyncNonUIDataTypeControllerTest, StartAssociationFailed) { 319 TEST_F(SyncNonUIDataTypeControllerTest, StartAssociationFailed) {
316 SetStartExpectations(); 320 SetStartExpectations();
317 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr()); 321 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr());
318 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary()) 322 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
319 .WillOnce(Return(true)); 323 .WillOnce(Return(true));
320 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_)) 324 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
321 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true))); 325 .WillOnce(DoAll(SetArgumentPointee<0>(true), Return(true)));
322 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _)) 326 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
323 .WillOnce(Return(SyncError())); 327 .WillOnce(Return(syncer::SyncError()));
324 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_)); 328 EXPECT_CALL(*change_processor_.get(), RecordAssociationTime(_));
325 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED); 329 SetStartFailExpectations(DataTypeController::ASSOCIATION_FAILED);
326 // Set up association to fail with an association failed error. 330 // Set up association to fail with an association failed error.
327 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 331 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
328 syncable_service_.set_merge_data_and_start_syncing_error(SyncError( 332 syncable_service_.set_merge_data_and_start_syncing_error(
329 FROM_HERE, SyncError::DATATYPE_ERROR, "Sync Error", non_ui_dtc_->type())); 333 syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
334 "Sync Error", non_ui_dtc_->type()));
330 Start(); 335 Start();
331 WaitForDTC(); 336 WaitForDTC();
332 EXPECT_EQ(DataTypeController::DISABLED, non_ui_dtc_->state()); 337 EXPECT_EQ(DataTypeController::DISABLED, non_ui_dtc_->state());
333 non_ui_dtc_->Stop(); 338 non_ui_dtc_->Stop();
334 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 339 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
335 } 340 }
336 341
337 TEST_F(SyncNonUIDataTypeControllerTest, 342 TEST_F(SyncNonUIDataTypeControllerTest,
338 StartAssociationTriggersUnrecoverableError) { 343 StartAssociationTriggersUnrecoverableError) {
339 SetStartExpectations(); 344 SetStartExpectations();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 380
376 SetStartExpectations(); 381 SetStartExpectations();
377 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr()); 382 change_processor_->SetConnectReturn(syncable_service_.AsWeakPtr());
378 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary()) 383 EXPECT_CALL(*change_processor_.get(), CryptoReadyIfNecessary())
379 .WillOnce(Return(true)); 384 .WillOnce(Return(true));
380 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_)) 385 EXPECT_CALL(*change_processor_.get(), SyncModelHasUserCreatedNodes(_))
381 .WillOnce(DoAll(SignalEvent(&wait_for_db_thread_pause), 386 .WillOnce(DoAll(SignalEvent(&wait_for_db_thread_pause),
382 WaitOnEvent(&pause_db_thread), 387 WaitOnEvent(&pause_db_thread),
383 SetArgumentPointee<0>(true), Return(true))); 388 SetArgumentPointee<0>(true), Return(true)));
384 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _)) 389 EXPECT_CALL(*change_processor_.get(), GetAllSyncDataReturnError(_, _))
385 .WillOnce(Return(SyncError(FROM_HERE, SyncError::DATATYPE_ERROR, 390 .WillOnce(
386 "Disconnected.", kType))); 391 Return(syncer::SyncError(FROM_HERE, syncer::SyncError::DATATYPE_ERROR,
392 "Disconnected.", kType)));
387 EXPECT_CALL(*dtc_mock_.get(), StopModels()); 393 EXPECT_CALL(*dtc_mock_.get(), StopModels());
388 EXPECT_CALL(*change_processor_.get(), Disconnect()) 394 EXPECT_CALL(*change_processor_.get(), Disconnect())
389 .WillOnce(DoAll(SignalEvent(&pause_db_thread), Return(true))); 395 .WillOnce(DoAll(SignalEvent(&pause_db_thread), Return(true)));
390 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 396 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
391 Start(); 397 Start();
392 wait_for_db_thread_pause.Wait(); 398 wait_for_db_thread_pause.Wait();
393 non_ui_dtc_->Stop(); 399 non_ui_dtc_->Stop();
394 WaitForDTC(); 400 WaitForDTC();
395 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 401 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
396 } 402 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 SetStartExpectations(); 465 SetStartExpectations();
460 SetAssociateExpectations(); 466 SetAssociateExpectations();
461 SetActivateExpectations(DataTypeController::OK); 467 SetActivateExpectations(DataTypeController::OK);
462 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state()); 468 EXPECT_EQ(DataTypeController::NOT_RUNNING, non_ui_dtc_->state());
463 Start(); 469 Start();
464 WaitForDTC(); 470 WaitForDTC();
465 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state()); 471 EXPECT_EQ(DataTypeController::RUNNING, non_ui_dtc_->state());
466 472
467 testing::Mock::VerifyAndClearExpectations(&start_callback_); 473 testing::Mock::VerifyAndClearExpectations(&start_callback_);
468 EXPECT_CALL(model_load_callback_, Run(_, _)); 474 EXPECT_CALL(model_load_callback_, Run(_, _));
469 SyncError error(FROM_HERE, SyncError::DATATYPE_ERROR, "error", 475 syncer::SyncError error(FROM_HERE, syncer::SyncError::DATATYPE_ERROR, "error",
470 non_ui_dtc_->type()); 476 non_ui_dtc_->type());
471 backend_thread_.task_runner()->PostTask( 477 backend_thread_.task_runner()->PostTask(
472 FROM_HERE, 478 FROM_HERE,
473 base::Bind(&DataTypeErrorHandler::OnUnrecoverableError, 479 base::Bind(&syncer::DataTypeErrorHandler::OnUnrecoverableError,
474 base::Passed(non_ui_dtc_->CreateErrorHandler()), error)); 480 base::Passed(non_ui_dtc_->CreateErrorHandler()), error));
475 WaitForDTC(); 481 WaitForDTC();
476 } 482 }
477 483
478 } // namespace 484 } // namespace
479 485
480 } // namespace syncer 486 } // namespace sync_driver
OLDNEW
« no previous file with comments | « components/sync/driver/non_ui_data_type_controller_mock.cc ('k') | components/sync/driver/non_ui_model_type_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698