OLD | NEW |
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 "components/sync_bookmarks/bookmark_data_type_controller.h" | 5 #include "components/sync_bookmarks/bookmark_data_type_controller.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 using sync_bookmarks::BookmarkDataTypeController; | 32 using sync_bookmarks::BookmarkDataTypeController; |
33 using syncer::ChangeProcessorMock; | 33 using syncer::ChangeProcessorMock; |
34 using syncer::DataTypeController; | 34 using syncer::DataTypeController; |
35 using syncer::ModelAssociatorMock; | 35 using syncer::ModelAssociatorMock; |
36 using syncer::ModelLoadCallbackMock; | 36 using syncer::ModelLoadCallbackMock; |
37 using syncer::StartCallbackMock; | 37 using syncer::StartCallbackMock; |
38 using testing::_; | 38 using testing::_; |
39 using testing::DoAll; | 39 using testing::DoAll; |
40 using testing::InvokeWithoutArgs; | 40 using testing::InvokeWithoutArgs; |
41 using testing::Return; | 41 using testing::Return; |
42 using testing::SetArgumentPointee; | 42 using testing::SetArgPointee; |
43 | 43 |
44 namespace { | 44 namespace { |
45 | 45 |
46 class HistoryMock : public history::HistoryService { | 46 class HistoryMock : public history::HistoryService { |
47 public: | 47 public: |
48 HistoryMock() : history::HistoryService() {} | 48 HistoryMock() : history::HistoryService() {} |
49 MOCK_METHOD0(BackendLoaded, bool(void)); | 49 MOCK_METHOD0(BackendLoaded, bool(void)); |
50 | 50 |
51 ~HistoryMock() override {} | 51 ~HistoryMock() override {} |
52 }; | 52 }; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 99 |
100 void SetStartExpectations() { | 100 void SetStartExpectations() { |
101 EXPECT_CALL(*history_service_.get(), BackendLoaded()) | 101 EXPECT_CALL(*history_service_.get(), BackendLoaded()) |
102 .WillRepeatedly(Return(true)); | 102 .WillRepeatedly(Return(true)); |
103 EXPECT_CALL(model_load_callback_, Run(_, _)); | 103 EXPECT_CALL(model_load_callback_, Run(_, _)); |
104 } | 104 } |
105 | 105 |
106 void SetAssociateExpectations() { | 106 void SetAssociateExpectations() { |
107 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). | 107 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). |
108 WillRepeatedly(Return(true)); | 108 WillRepeatedly(Return(true)); |
109 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). | 109 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) |
110 WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true))); | 110 .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true))); |
111 EXPECT_CALL(*model_associator_, AssociateModels(_, _)). | 111 EXPECT_CALL(*model_associator_, AssociateModels(_, _)). |
112 WillRepeatedly(Return(syncer::SyncError())); | 112 WillRepeatedly(Return(syncer::SyncError())); |
113 } | 113 } |
114 | 114 |
115 void SetStopExpectations() { | 115 void SetStopExpectations() { |
116 EXPECT_CALL(*model_associator_, DisassociateModels()). | 116 EXPECT_CALL(*model_associator_, DisassociateModels()). |
117 WillOnce(Return(syncer::SyncError())); | 117 WillOnce(Return(syncer::SyncError())); |
118 } | 118 } |
119 | 119 |
120 void Start() { | 120 void Start() { |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 | 198 |
199 // Send the notification that the history service has finished loading the db. | 199 // Send the notification that the history service has finished loading the db. |
200 NotifyHistoryServiceLoaded(); | 200 NotifyHistoryServiceLoaded(); |
201 EXPECT_EQ(DataTypeController::MODEL_LOADED, bookmark_dtc_->state()); | 201 EXPECT_EQ(DataTypeController::MODEL_LOADED, bookmark_dtc_->state()); |
202 } | 202 } |
203 | 203 |
204 TEST_F(SyncBookmarkDataTypeControllerTest, StartFirstRun) { | 204 TEST_F(SyncBookmarkDataTypeControllerTest, StartFirstRun) { |
205 CreateBookmarkModel(LOAD_MODEL); | 205 CreateBookmarkModel(LOAD_MODEL); |
206 SetStartExpectations(); | 206 SetStartExpectations(); |
207 SetAssociateExpectations(); | 207 SetAssociateExpectations(); |
208 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). | 208 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) |
209 WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(true))); | 209 .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(true))); |
210 EXPECT_CALL(start_callback_, Run(DataTypeController::OK_FIRST_RUN, _, _)); | 210 EXPECT_CALL(start_callback_, Run(DataTypeController::OK_FIRST_RUN, _, _)); |
211 Start(); | 211 Start(); |
212 } | 212 } |
213 | 213 |
214 TEST_F(SyncBookmarkDataTypeControllerTest, StartBusy) { | 214 TEST_F(SyncBookmarkDataTypeControllerTest, StartBusy) { |
215 CreateBookmarkModel(LOAD_MODEL); | 215 CreateBookmarkModel(LOAD_MODEL); |
216 EXPECT_CALL(*history_service_.get(), BackendLoaded()) | 216 EXPECT_CALL(*history_service_.get(), BackendLoaded()) |
217 .WillRepeatedly(Return(false)); | 217 .WillRepeatedly(Return(false)); |
218 | 218 |
219 EXPECT_CALL(model_load_callback_, Run(_, _)); | 219 EXPECT_CALL(model_load_callback_, Run(_, _)); |
220 bookmark_dtc_->LoadModels( | 220 bookmark_dtc_->LoadModels( |
221 base::Bind(&ModelLoadCallbackMock::Run, | 221 base::Bind(&ModelLoadCallbackMock::Run, |
222 base::Unretained(&model_load_callback_))); | 222 base::Unretained(&model_load_callback_))); |
223 bookmark_dtc_->LoadModels( | 223 bookmark_dtc_->LoadModels( |
224 base::Bind(&ModelLoadCallbackMock::Run, | 224 base::Bind(&ModelLoadCallbackMock::Run, |
225 base::Unretained(&model_load_callback_))); | 225 base::Unretained(&model_load_callback_))); |
226 } | 226 } |
227 | 227 |
228 TEST_F(SyncBookmarkDataTypeControllerTest, StartOk) { | 228 TEST_F(SyncBookmarkDataTypeControllerTest, StartOk) { |
229 CreateBookmarkModel(LOAD_MODEL); | 229 CreateBookmarkModel(LOAD_MODEL); |
230 SetStartExpectations(); | 230 SetStartExpectations(); |
231 SetAssociateExpectations(); | 231 SetAssociateExpectations(); |
232 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). | 232 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) |
233 WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true))); | 233 .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true))); |
234 | 234 |
235 EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _)); | 235 EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _)); |
236 Start(); | 236 Start(); |
237 } | 237 } |
238 | 238 |
239 TEST_F(SyncBookmarkDataTypeControllerTest, StartAssociationFailed) { | 239 TEST_F(SyncBookmarkDataTypeControllerTest, StartAssociationFailed) { |
240 CreateBookmarkModel(LOAD_MODEL); | 240 CreateBookmarkModel(LOAD_MODEL); |
241 SetStartExpectations(); | 241 SetStartExpectations(); |
242 // Set up association to fail. | 242 // Set up association to fail. |
243 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). | 243 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). |
244 WillRepeatedly(Return(true)); | 244 WillRepeatedly(Return(true)); |
245 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). | 245 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) |
246 WillRepeatedly(DoAll(SetArgumentPointee<0>(true), Return(true))); | 246 .WillRepeatedly(DoAll(SetArgPointee<0>(true), Return(true))); |
247 EXPECT_CALL(*model_associator_, AssociateModels(_, _)). | 247 EXPECT_CALL(*model_associator_, AssociateModels(_, _)). |
248 WillRepeatedly(Return(syncer::SyncError(FROM_HERE, | 248 WillRepeatedly(Return(syncer::SyncError(FROM_HERE, |
249 syncer::SyncError::DATATYPE_ERROR, | 249 syncer::SyncError::DATATYPE_ERROR, |
250 "error", | 250 "error", |
251 syncer::BOOKMARKS))); | 251 syncer::BOOKMARKS))); |
252 | 252 |
253 EXPECT_CALL(start_callback_, | 253 EXPECT_CALL(start_callback_, |
254 Run(DataTypeController::ASSOCIATION_FAILED, _, _)); | 254 Run(DataTypeController::ASSOCIATION_FAILED, _, _)); |
255 Start(); | 255 Start(); |
256 EXPECT_EQ(DataTypeController::DISABLED, bookmark_dtc_->state()); | 256 EXPECT_EQ(DataTypeController::DISABLED, bookmark_dtc_->state()); |
257 } | 257 } |
258 | 258 |
259 TEST_F(SyncBookmarkDataTypeControllerTest, | 259 TEST_F(SyncBookmarkDataTypeControllerTest, |
260 StartAssociationTriggersUnrecoverableError) { | 260 StartAssociationTriggersUnrecoverableError) { |
261 CreateBookmarkModel(LOAD_MODEL); | 261 CreateBookmarkModel(LOAD_MODEL); |
262 SetStartExpectations(); | 262 SetStartExpectations(); |
263 // Set up association to fail with an unrecoverable error. | 263 // Set up association to fail with an unrecoverable error. |
264 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). | 264 EXPECT_CALL(*model_associator_, CryptoReadyIfNecessary()). |
265 WillRepeatedly(Return(true)); | 265 WillRepeatedly(Return(true)); |
266 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)). | 266 EXPECT_CALL(*model_associator_, SyncModelHasUserCreatedNodes(_)) |
267 WillRepeatedly(DoAll(SetArgumentPointee<0>(false), Return(false))); | 267 .WillRepeatedly(DoAll(SetArgPointee<0>(false), Return(false))); |
268 EXPECT_CALL(start_callback_, | 268 EXPECT_CALL(start_callback_, |
269 Run(DataTypeController::UNRECOVERABLE_ERROR, _, _)); | 269 Run(DataTypeController::UNRECOVERABLE_ERROR, _, _)); |
270 Start(); | 270 Start(); |
271 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); | 271 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); |
272 } | 272 } |
273 | 273 |
274 TEST_F(SyncBookmarkDataTypeControllerTest, StartAborted) { | 274 TEST_F(SyncBookmarkDataTypeControllerTest, StartAborted) { |
275 CreateBookmarkModel(LOAD_MODEL); | 275 CreateBookmarkModel(LOAD_MODEL); |
276 EXPECT_CALL(*history_service_.get(), BackendLoaded()) | 276 EXPECT_CALL(*history_service_.get(), BackendLoaded()) |
277 .WillRepeatedly(Return(false)); | 277 .WillRepeatedly(Return(false)); |
(...skipping 13 matching lines...) Expand all Loading... |
291 SetStopExpectations(); | 291 SetStopExpectations(); |
292 | 292 |
293 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); | 293 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); |
294 | 294 |
295 EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _)); | 295 EXPECT_CALL(start_callback_, Run(DataTypeController::OK, _, _)); |
296 Start(); | 296 Start(); |
297 EXPECT_EQ(DataTypeController::RUNNING, bookmark_dtc_->state()); | 297 EXPECT_EQ(DataTypeController::RUNNING, bookmark_dtc_->state()); |
298 bookmark_dtc_->Stop(); | 298 bookmark_dtc_->Stop(); |
299 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); | 299 EXPECT_EQ(DataTypeController::NOT_RUNNING, bookmark_dtc_->state()); |
300 } | 300 } |
OLD | NEW |