| OLD | NEW |
| 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/device_info_sync_service.h" |
| 6 |
| 7 #include <string> |
| 8 |
| 5 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 6 #include "components/sync_driver/device_info_sync_service.h" | |
| 7 #include "components/sync_driver/local_device_info_provider_mock.h" | 10 #include "components/sync_driver/local_device_info_provider_mock.h" |
| 8 #include "sync/api/sync_change.h" | 11 #include "sync/api/sync_change.h" |
| 9 #include "sync/api/sync_change_processor.h" | 12 #include "sync/api/sync_change_processor.h" |
| 10 #include "sync/api/sync_change_processor_wrapper_for_test.h" | 13 #include "sync/api/sync_change_processor_wrapper_for_test.h" |
| 11 #include "sync/api/sync_error_factory_mock.h" | 14 #include "sync/api/sync_error_factory_mock.h" |
| 12 #include "sync/internal_api/public/attachments/attachment_service_proxy_for_test
.h" | 15 #include "sync/internal_api/public/attachments/attachment_service_proxy_for_test
.h" |
| 13 #include "sync/util/time.h" | 16 #include "sync/util/time.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 18 |
| 16 using syncer::AttachmentIdList; | 19 using syncer::AttachmentIdList; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 specifics.set_backup_timestamp(backup_timestamp); | 126 specifics.set_backup_timestamp(backup_timestamp); |
| 124 } | 127 } |
| 125 | 128 |
| 126 return SyncData::CreateRemoteData(1, | 129 return SyncData::CreateRemoteData(1, |
| 127 entity, | 130 entity, |
| 128 base::Time(), | 131 base::Time(), |
| 129 AttachmentIdList(), | 132 AttachmentIdList(), |
| 130 AttachmentServiceProxyForTest::Create()); | 133 AttachmentServiceProxyForTest::Create()); |
| 131 } | 134 } |
| 132 | 135 |
| 133 void AddInitialData(SyncDataList& sync_data_list, | 136 void AddInitialData(SyncDataList* sync_data_list, |
| 134 const std::string& client_id, | 137 const std::string& client_id, |
| 135 const std::string& client_name) { | 138 const std::string& client_name) { |
| 136 SyncData sync_data = CreateRemoteData(client_id, client_name); | 139 SyncData sync_data = CreateRemoteData(client_id, client_name); |
| 137 sync_data_list.push_back(sync_data); | 140 sync_data_list->push_back(sync_data); |
| 138 } | 141 } |
| 139 | 142 |
| 140 void AddChange(SyncChangeList& change_list, | 143 void AddChange(SyncChangeList* change_list, |
| 141 SyncChange::SyncChangeType change_type, | 144 SyncChange::SyncChangeType change_type, |
| 142 const std::string& client_id, | 145 const std::string& client_id, |
| 143 const std::string& client_name) { | 146 const std::string& client_name) { |
| 144 SyncData sync_data = CreateRemoteData(client_id, client_name); | 147 SyncData sync_data = CreateRemoteData(client_id, client_name); |
| 145 SyncChange sync_change(FROM_HERE, change_type, sync_data); | 148 SyncChange sync_change(FROM_HERE, change_type, sync_data); |
| 146 change_list.push_back(sync_change); | 149 change_list->push_back(sync_change); |
| 147 } | 150 } |
| 148 | 151 |
| 149 protected: | 152 protected: |
| 150 int num_device_info_changed_callbacks_; | 153 int num_device_info_changed_callbacks_; |
| 151 base::MessageLoopForUI message_loop_; | 154 base::MessageLoopForUI message_loop_; |
| 152 scoped_ptr<LocalDeviceInfoProviderMock> local_device_; | 155 scoped_ptr<LocalDeviceInfoProviderMock> local_device_; |
| 153 scoped_ptr<DeviceInfoSyncService> sync_service_; | 156 scoped_ptr<DeviceInfoSyncService> sync_service_; |
| 154 scoped_ptr<TestChangeProcessor> sync_processor_; | 157 scoped_ptr<TestChangeProcessor> sync_processor_; |
| 155 }; | 158 }; |
| 156 | 159 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 EXPECT_TRUE(sync_service_->IsSyncing()); | 192 EXPECT_TRUE(sync_service_->IsSyncing()); |
| 190 EXPECT_EQ(1, num_device_info_changed_callbacks_); | 193 EXPECT_EQ(1, num_device_info_changed_callbacks_); |
| 191 sync_service_->StopSyncing(syncer::DEVICE_INFO); | 194 sync_service_->StopSyncing(syncer::DEVICE_INFO); |
| 192 EXPECT_FALSE(sync_service_->IsSyncing()); | 195 EXPECT_FALSE(sync_service_->IsSyncing()); |
| 193 EXPECT_EQ(2, num_device_info_changed_callbacks_); | 196 EXPECT_EQ(2, num_device_info_changed_callbacks_); |
| 194 } | 197 } |
| 195 | 198 |
| 196 // Sync with initial data matching the local device data. | 199 // Sync with initial data matching the local device data. |
| 197 TEST_F(DeviceInfoSyncServiceTest, StartSyncMatchingInitialData) { | 200 TEST_F(DeviceInfoSyncServiceTest, StartSyncMatchingInitialData) { |
| 198 SyncDataList sync_data; | 201 SyncDataList sync_data; |
| 199 AddInitialData(sync_data, "guid_1", "client_1"); | 202 AddInitialData(&sync_data, "guid_1", "client_1"); |
| 200 | 203 |
| 201 SyncMergeResult merge_result = | 204 SyncMergeResult merge_result = |
| 202 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 205 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 203 sync_data, | 206 sync_data, |
| 204 PassProcessor(), | 207 PassProcessor(), |
| 205 CreateAndPassSyncErrorFactory()); | 208 CreateAndPassSyncErrorFactory()); |
| 206 EXPECT_EQ(0, merge_result.num_items_added()); | 209 EXPECT_EQ(0, merge_result.num_items_added()); |
| 207 EXPECT_EQ(0, merge_result.num_items_modified()); | 210 EXPECT_EQ(0, merge_result.num_items_modified()); |
| 208 EXPECT_EQ(0, merge_result.num_items_deleted()); | 211 EXPECT_EQ(0, merge_result.num_items_deleted()); |
| 209 EXPECT_EQ(1, merge_result.num_items_before_association()); | 212 EXPECT_EQ(1, merge_result.num_items_before_association()); |
| 210 EXPECT_EQ(1, merge_result.num_items_after_association()); | 213 EXPECT_EQ(1, merge_result.num_items_after_association()); |
| 211 | 214 |
| 212 // No changes expected because the device info matches. | 215 // No changes expected because the device info matches. |
| 213 EXPECT_EQ(0U, sync_processor_->change_list_size()); | 216 EXPECT_EQ(0U, sync_processor_->change_list_size()); |
| 214 | 217 |
| 215 EXPECT_EQ(1U, sync_service_->GetAllSyncData(syncer::DEVICE_INFO).size()); | 218 EXPECT_EQ(1U, sync_service_->GetAllSyncData(syncer::DEVICE_INFO).size()); |
| 216 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); | 219 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); |
| 217 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_1")); | 220 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_1")); |
| 218 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_0")); | 221 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_0")); |
| 219 } | 222 } |
| 220 | 223 |
| 221 // Sync with misc initial data. | 224 // Sync with misc initial data. |
| 222 TEST_F(DeviceInfoSyncServiceTest, StartSync) { | 225 TEST_F(DeviceInfoSyncServiceTest, StartSync) { |
| 223 SyncDataList sync_data; | 226 SyncDataList sync_data; |
| 224 AddInitialData(sync_data, "guid_2", "foo"); | 227 AddInitialData(&sync_data, "guid_2", "foo"); |
| 225 AddInitialData(sync_data, "guid_3", "bar"); | 228 AddInitialData(&sync_data, "guid_3", "bar"); |
| 226 // This guid matches the local device but the client name is different. | 229 // This guid matches the local device but the client name is different. |
| 227 AddInitialData(sync_data, "guid_1", "baz"); | 230 AddInitialData(&sync_data, "guid_1", "baz"); |
| 228 | 231 |
| 229 SyncMergeResult merge_result = | 232 SyncMergeResult merge_result = |
| 230 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 233 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 231 sync_data, | 234 sync_data, |
| 232 PassProcessor(), | 235 PassProcessor(), |
| 233 CreateAndPassSyncErrorFactory()); | 236 CreateAndPassSyncErrorFactory()); |
| 234 | 237 |
| 235 EXPECT_EQ(2, merge_result.num_items_added()); | 238 EXPECT_EQ(2, merge_result.num_items_added()); |
| 236 EXPECT_EQ(1, merge_result.num_items_modified()); | 239 EXPECT_EQ(1, merge_result.num_items_modified()); |
| 237 EXPECT_EQ(0, merge_result.num_items_deleted()); | 240 EXPECT_EQ(0, merge_result.num_items_deleted()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 260 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 263 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 261 SyncDataList(), | 264 SyncDataList(), |
| 262 PassProcessor(), | 265 PassProcessor(), |
| 263 CreateAndPassSyncErrorFactory()); | 266 CreateAndPassSyncErrorFactory()); |
| 264 // There should be only one item corresponding to the local device | 267 // There should be only one item corresponding to the local device |
| 265 EXPECT_EQ(1, merge_result.num_items_after_association()); | 268 EXPECT_EQ(1, merge_result.num_items_after_association()); |
| 266 EXPECT_EQ(1, num_device_info_changed_callbacks_); | 269 EXPECT_EQ(1, num_device_info_changed_callbacks_); |
| 267 | 270 |
| 268 // Add a new device info with a non-matching guid. | 271 // Add a new device info with a non-matching guid. |
| 269 SyncChangeList change_list; | 272 SyncChangeList change_list; |
| 270 AddChange(change_list, SyncChange::ACTION_ADD, "guid_2", "foo"); | 273 AddChange(&change_list, SyncChange::ACTION_ADD, "guid_2", "foo"); |
| 271 | 274 |
| 272 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 275 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 273 EXPECT_FALSE(error.IsSet()); | 276 EXPECT_FALSE(error.IsSet()); |
| 274 EXPECT_EQ(2, num_device_info_changed_callbacks_); | 277 EXPECT_EQ(2, num_device_info_changed_callbacks_); |
| 275 | 278 |
| 276 EXPECT_EQ(2U, sync_service_->GetAllDeviceInfo().size()); | 279 EXPECT_EQ(2U, sync_service_->GetAllDeviceInfo().size()); |
| 277 | 280 |
| 278 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_1")); | 281 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_1")); |
| 279 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_2")); | 282 EXPECT_TRUE(sync_service_->GetDeviceInfo("guid_2")); |
| 280 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_0")); | 283 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_0")); |
| 281 } | 284 } |
| 282 | 285 |
| 283 // Process multiple sync change with ACTION_UPDATE and ACTION_ADD. | 286 // Process multiple sync change with ACTION_UPDATE and ACTION_ADD. |
| 284 // Verify that callback is called multiple times. | 287 // Verify that callback is called multiple times. |
| 285 TEST_F(DeviceInfoSyncServiceTest, ProcessMultipleChanges) { | 288 TEST_F(DeviceInfoSyncServiceTest, ProcessMultipleChanges) { |
| 286 SyncDataList sync_data; | 289 SyncDataList sync_data; |
| 287 AddInitialData(sync_data, "guid_2", "foo"); | 290 AddInitialData(&sync_data, "guid_2", "foo"); |
| 288 AddInitialData(sync_data, "guid_3", "bar"); | 291 AddInitialData(&sync_data, "guid_3", "bar"); |
| 289 | 292 |
| 290 SyncMergeResult merge_result = | 293 SyncMergeResult merge_result = |
| 291 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 294 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 292 sync_data, | 295 sync_data, |
| 293 PassProcessor(), | 296 PassProcessor(), |
| 294 CreateAndPassSyncErrorFactory()); | 297 CreateAndPassSyncErrorFactory()); |
| 295 EXPECT_EQ(3, merge_result.num_items_after_association()); | 298 EXPECT_EQ(3, merge_result.num_items_after_association()); |
| 296 // reset callbacks counter | 299 // reset callbacks counter |
| 297 num_device_info_changed_callbacks_ = 0; | 300 num_device_info_changed_callbacks_ = 0; |
| 298 | 301 |
| 299 SyncChangeList change_list; | 302 SyncChangeList change_list; |
| 300 AddChange(change_list, SyncChange::ACTION_UPDATE, "guid_2", "foo_2"); | 303 AddChange(&change_list, SyncChange::ACTION_UPDATE, "guid_2", "foo_2"); |
| 301 | 304 |
| 302 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 305 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 303 EXPECT_FALSE(error.IsSet()); | 306 EXPECT_FALSE(error.IsSet()); |
| 304 | 307 |
| 305 EXPECT_EQ(1, num_device_info_changed_callbacks_); | 308 EXPECT_EQ(1, num_device_info_changed_callbacks_); |
| 306 EXPECT_EQ(3U, sync_service_->GetAllDeviceInfo().size()); | 309 EXPECT_EQ(3U, sync_service_->GetAllDeviceInfo().size()); |
| 307 EXPECT_EQ("foo_2", sync_service_->GetDeviceInfo("guid_2")->client_name()); | 310 EXPECT_EQ("foo_2", sync_service_->GetDeviceInfo("guid_2")->client_name()); |
| 308 | 311 |
| 309 change_list.clear(); | 312 change_list.clear(); |
| 310 AddChange(change_list, SyncChange::ACTION_UPDATE, "guid_3", "bar_3"); | 313 AddChange(&change_list, SyncChange::ACTION_UPDATE, "guid_3", "bar_3"); |
| 311 AddChange(change_list, SyncChange::ACTION_ADD, "guid_4", "baz_4"); | 314 AddChange(&change_list, SyncChange::ACTION_ADD, "guid_4", "baz_4"); |
| 312 | 315 |
| 313 error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 316 error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 314 EXPECT_FALSE(error.IsSet()); | 317 EXPECT_FALSE(error.IsSet()); |
| 315 | 318 |
| 316 EXPECT_EQ(2, num_device_info_changed_callbacks_); | 319 EXPECT_EQ(2, num_device_info_changed_callbacks_); |
| 317 EXPECT_EQ(4U, sync_service_->GetAllDeviceInfo().size()); | 320 EXPECT_EQ(4U, sync_service_->GetAllDeviceInfo().size()); |
| 318 EXPECT_EQ("bar_3", sync_service_->GetDeviceInfo("guid_3")->client_name()); | 321 EXPECT_EQ("bar_3", sync_service_->GetDeviceInfo("guid_3")->client_name()); |
| 319 EXPECT_EQ("baz_4", sync_service_->GetDeviceInfo("guid_4")->client_name()); | 322 EXPECT_EQ("baz_4", sync_service_->GetDeviceInfo("guid_4")->client_name()); |
| 320 } | 323 } |
| 321 | 324 |
| 322 // Process update to the local device info and verify that it is ignored. | 325 // Process update to the local device info and verify that it is ignored. |
| 323 TEST_F(DeviceInfoSyncServiceTest, ProcessUpdateChangeMatchingLocalDevice) { | 326 TEST_F(DeviceInfoSyncServiceTest, ProcessUpdateChangeMatchingLocalDevice) { |
| 324 SyncMergeResult merge_result = | 327 SyncMergeResult merge_result = |
| 325 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 328 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 326 SyncDataList(), | 329 SyncDataList(), |
| 327 PassProcessor(), | 330 PassProcessor(), |
| 328 CreateAndPassSyncErrorFactory()); | 331 CreateAndPassSyncErrorFactory()); |
| 329 EXPECT_EQ(1, merge_result.num_items_after_association()); | 332 EXPECT_EQ(1, merge_result.num_items_after_association()); |
| 330 // reset callbacks counter | 333 // reset callbacks counter |
| 331 num_device_info_changed_callbacks_ = 0; | 334 num_device_info_changed_callbacks_ = 0; |
| 332 | 335 |
| 333 SyncChangeList change_list; | 336 SyncChangeList change_list; |
| 334 AddChange(change_list, SyncChange::ACTION_UPDATE, "guid_1", "foo_1"); | 337 AddChange(&change_list, SyncChange::ACTION_UPDATE, "guid_1", "foo_1"); |
| 335 | 338 |
| 336 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 339 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 337 EXPECT_FALSE(error.IsSet()); | 340 EXPECT_FALSE(error.IsSet()); |
| 338 // Callback shouldn't be sent in this case. | 341 // Callback shouldn't be sent in this case. |
| 339 EXPECT_EQ(0, num_device_info_changed_callbacks_); | 342 EXPECT_EQ(0, num_device_info_changed_callbacks_); |
| 340 // Should still have the old local device Info. | 343 // Should still have the old local device Info. |
| 341 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); | 344 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); |
| 342 EXPECT_EQ("client_1", sync_service_->GetDeviceInfo("guid_1")->client_name()); | 345 EXPECT_EQ("client_1", sync_service_->GetDeviceInfo("guid_1")->client_name()); |
| 343 } | 346 } |
| 344 | 347 |
| 345 // Process sync change with ACTION_DELETE. | 348 // Process sync change with ACTION_DELETE. |
| 346 TEST_F(DeviceInfoSyncServiceTest, ProcessDeleteChange) { | 349 TEST_F(DeviceInfoSyncServiceTest, ProcessDeleteChange) { |
| 347 SyncDataList sync_data; | 350 SyncDataList sync_data; |
| 348 AddInitialData(sync_data, "guid_2", "foo"); | 351 AddInitialData(&sync_data, "guid_2", "foo"); |
| 349 AddInitialData(sync_data, "guid_3", "bar"); | 352 AddInitialData(&sync_data, "guid_3", "bar"); |
| 350 | 353 |
| 351 SyncMergeResult merge_result = | 354 SyncMergeResult merge_result = |
| 352 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 355 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 353 sync_data, | 356 sync_data, |
| 354 PassProcessor(), | 357 PassProcessor(), |
| 355 CreateAndPassSyncErrorFactory()); | 358 CreateAndPassSyncErrorFactory()); |
| 356 EXPECT_EQ(3, merge_result.num_items_after_association()); | 359 EXPECT_EQ(3, merge_result.num_items_after_association()); |
| 357 // reset callbacks counter | 360 // reset callbacks counter |
| 358 num_device_info_changed_callbacks_ = 0; | 361 num_device_info_changed_callbacks_ = 0; |
| 359 | 362 |
| 360 SyncChangeList change_list; | 363 SyncChangeList change_list; |
| 361 AddChange(change_list, SyncChange::ACTION_DELETE, "guid_2", "foo_2"); | 364 AddChange(&change_list, SyncChange::ACTION_DELETE, "guid_2", "foo_2"); |
| 362 | 365 |
| 363 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 366 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 364 EXPECT_FALSE(error.IsSet()); | 367 EXPECT_FALSE(error.IsSet()); |
| 365 | 368 |
| 366 EXPECT_EQ(1, num_device_info_changed_callbacks_); | 369 EXPECT_EQ(1, num_device_info_changed_callbacks_); |
| 367 EXPECT_EQ(2U, sync_service_->GetAllDeviceInfo().size()); | 370 EXPECT_EQ(2U, sync_service_->GetAllDeviceInfo().size()); |
| 368 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_2")); | 371 EXPECT_FALSE(sync_service_->GetDeviceInfo("guid_2")); |
| 369 } | 372 } |
| 370 | 373 |
| 371 // Process sync change with unexpected action. | 374 // Process sync change with unexpected action. |
| 372 TEST_F(DeviceInfoSyncServiceTest, ProcessInvalidChange) { | 375 TEST_F(DeviceInfoSyncServiceTest, ProcessInvalidChange) { |
| 373 SyncMergeResult merge_result = | 376 SyncMergeResult merge_result = |
| 374 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 377 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 375 SyncDataList(), | 378 SyncDataList(), |
| 376 PassProcessor(), | 379 PassProcessor(), |
| 377 CreateAndPassSyncErrorFactory()); | 380 CreateAndPassSyncErrorFactory()); |
| 378 EXPECT_EQ(1, merge_result.num_items_after_association()); | 381 EXPECT_EQ(1, merge_result.num_items_after_association()); |
| 379 // reset callbacks counter | 382 // reset callbacks counter |
| 380 num_device_info_changed_callbacks_ = 0; | 383 num_device_info_changed_callbacks_ = 0; |
| 381 | 384 |
| 382 SyncChangeList change_list; | 385 SyncChangeList change_list; |
| 383 AddChange(change_list, (SyncChange::SyncChangeType)100, "guid_2", "foo_2"); | 386 AddChange(&change_list, (SyncChange::SyncChangeType)100, "guid_2", "foo_2"); |
| 384 | 387 |
| 385 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 388 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 386 EXPECT_TRUE(error.IsSet()); | 389 EXPECT_TRUE(error.IsSet()); |
| 387 | 390 |
| 388 // The number of callback should still be zero. | 391 // The number of callback should still be zero. |
| 389 EXPECT_EQ(0, num_device_info_changed_callbacks_); | 392 EXPECT_EQ(0, num_device_info_changed_callbacks_); |
| 390 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); | 393 EXPECT_EQ(1U, sync_service_->GetAllDeviceInfo().size()); |
| 391 } | 394 } |
| 392 | 395 |
| 393 // Process sync change after unsubscribing from notifications. | 396 // Process sync change after unsubscribing from notifications. |
| 394 TEST_F(DeviceInfoSyncServiceTest, ProcessChangesAfterUnsubscribing) { | 397 TEST_F(DeviceInfoSyncServiceTest, ProcessChangesAfterUnsubscribing) { |
| 395 SyncMergeResult merge_result = | 398 SyncMergeResult merge_result = |
| 396 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, | 399 sync_service_->MergeDataAndStartSyncing(syncer::DEVICE_INFO, |
| 397 SyncDataList(), | 400 SyncDataList(), |
| 398 PassProcessor(), | 401 PassProcessor(), |
| 399 CreateAndPassSyncErrorFactory()); | 402 CreateAndPassSyncErrorFactory()); |
| 400 EXPECT_EQ(1, merge_result.num_items_after_association()); | 403 EXPECT_EQ(1, merge_result.num_items_after_association()); |
| 401 // reset callbacks counter | 404 // reset callbacks counter |
| 402 num_device_info_changed_callbacks_ = 0; | 405 num_device_info_changed_callbacks_ = 0; |
| 403 | 406 |
| 404 SyncChangeList change_list; | 407 SyncChangeList change_list; |
| 405 AddChange(change_list, SyncChange::ACTION_ADD, "guid_2", "foo_2"); | 408 AddChange(&change_list, SyncChange::ACTION_ADD, "guid_2", "foo_2"); |
| 406 | 409 |
| 407 // Unsubscribe observer before processing changes. | 410 // Unsubscribe observer before processing changes. |
| 408 sync_service_->RemoveObserver(this); | 411 sync_service_->RemoveObserver(this); |
| 409 | 412 |
| 410 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); | 413 SyncError error = sync_service_->ProcessSyncChanges(FROM_HERE, change_list); |
| 411 EXPECT_FALSE(error.IsSet()); | 414 EXPECT_FALSE(error.IsSet()); |
| 412 | 415 |
| 413 // The number of callback should still be zero. | 416 // The number of callback should still be zero. |
| 414 EXPECT_EQ(0, num_device_info_changed_callbacks_); | 417 EXPECT_EQ(0, num_device_info_changed_callbacks_); |
| 415 } | 418 } |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 EXPECT_EQ("client_1", sync_processor_->client_name_at(0)); | 559 EXPECT_EQ("client_1", sync_processor_->client_name_at(0)); |
| 557 | 560 |
| 558 backup_time = syncer::ProtoTimeToTime( | 561 backup_time = syncer::ProtoTimeToTime( |
| 559 sync_processor_->device_info_at(0).backup_timestamp()); | 562 sync_processor_->device_info_at(0).backup_timestamp()); |
| 560 EXPECT_EQ(6000, backup_time.ToTimeT()); | 563 EXPECT_EQ(6000, backup_time.ToTimeT()); |
| 561 } | 564 } |
| 562 | 565 |
| 563 } // namespace | 566 } // namespace |
| 564 | 567 |
| 565 } // namespace sync_driver | 568 } // namespace sync_driver |
| OLD | NEW |