| 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 // TODO(akalin): This file is basically just a unit test for | 5 // TODO(akalin): This file is basically just a unit test for |
| 6 // BookmarkChangeProcessor. Write unit tests for | 6 // BookmarkChangeProcessor. Write unit tests for |
| 7 // BookmarkModelAssociator separately. | 7 // BookmarkModelAssociator separately. |
| 8 | 8 |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| 11 | 11 |
| 12 #include <map> | 12 #include <map> |
| 13 #include <memory> | 13 #include <memory> |
| 14 #include <queue> | 14 #include <queue> |
| 15 #include <stack> | 15 #include <stack> |
| 16 #include <utility> | 16 #include <utility> |
| 17 | 17 |
| 18 #include "base/bind.h" | 18 #include "base/bind.h" |
| 19 #include "base/bind_helpers.h" | 19 #include "base/bind_helpers.h" |
| 20 #include "base/files/file_util.h" | 20 #include "base/files/file_util.h" |
| 21 #include "base/location.h" | 21 #include "base/location.h" |
| 22 #include "base/macros.h" | 22 #include "base/macros.h" |
| 23 #include "base/memory/ptr_util.h" | 23 #include "base/memory/ptr_util.h" |
| 24 #include "base/run_loop.h" | 24 #include "base/run_loop.h" |
| 25 #include "base/strings/string16.h" | 25 #include "base/strings/string16.h" |
| 26 #include "base/strings/string_number_conversions.h" | 26 #include "base/strings/string_number_conversions.h" |
| 27 #include "base/strings/string_util.h" | 27 #include "base/strings/string_util.h" |
| 28 #include "base/strings/stringprintf.h" | 28 #include "base/strings/stringprintf.h" |
| 29 #include "base/strings/utf_string_conversions.h" | 29 #include "base/strings/utf_string_conversions.h" |
| 30 #include "base/test/test_message_loop.h" |
| 30 #include "base/time/time.h" | 31 #include "base/time/time.h" |
| 31 #include "build/build_config.h" | 32 #include "build/build_config.h" |
| 32 #include "components/bookmarks/browser/base_bookmark_model_observer.h" | 33 #include "components/bookmarks/browser/base_bookmark_model_observer.h" |
| 33 #include "components/bookmarks/browser/bookmark_model.h" | 34 #include "components/bookmarks/browser/bookmark_model.h" |
| 34 #include "components/bookmarks/browser/bookmark_utils.h" | 35 #include "components/bookmarks/browser/bookmark_utils.h" |
| 35 #include "components/bookmarks/managed/managed_bookmark_service.h" | 36 #include "components/bookmarks/managed/managed_bookmark_service.h" |
| 36 #include "components/bookmarks/test/bookmark_test_helpers.h" | 37 #include "components/bookmarks/test/bookmark_test_helpers.h" |
| 37 #include "components/bookmarks/test/test_bookmark_client.h" | 38 #include "components/bookmarks/test/test_bookmark_client.h" |
| 38 #include "components/browser_sync/browser/profile_sync_test_util.h" | 39 #include "components/browser_sync/browser/profile_sync_test_util.h" |
| 40 #include "components/sync/api/data_type_error_handler.h" |
| 41 #include "components/sync/api/data_type_error_handler_mock.h" |
| 39 #include "components/sync/api/sync_error.h" | 42 #include "components/sync/api/sync_error.h" |
| 40 #include "components/sync/api/sync_merge_result.h" | 43 #include "components/sync/api/sync_merge_result.h" |
| 41 #include "components/sync/core/change_record.h" | 44 #include "components/sync/core/change_record.h" |
| 42 #include "components/sync/core/data_type_error_handler.h" | |
| 43 #include "components/sync/core/read_node.h" | 45 #include "components/sync/core/read_node.h" |
| 44 #include "components/sync/core/read_transaction.h" | 46 #include "components/sync/core/read_transaction.h" |
| 45 #include "components/sync/core/test/data_type_error_handler_mock.h" | |
| 46 #include "components/sync/core/test/test_user_share.h" | 47 #include "components/sync/core/test/test_user_share.h" |
| 47 #include "components/sync/core/write_node.h" | 48 #include "components/sync/core/write_node.h" |
| 48 #include "components/sync/core/write_transaction.h" | 49 #include "components/sync/core/write_transaction.h" |
| 49 #include "components/sync/core_impl/syncapi_internal.h" | 50 #include "components/sync/core_impl/syncapi_internal.h" |
| 50 #include "components/sync/driver/fake_sync_client.h" | 51 #include "components/sync/driver/fake_sync_client.h" |
| 51 #include "components/sync/syncable/mutable_entry.h" | 52 #include "components/sync/syncable/mutable_entry.h" |
| 52 #include "components/sync/syncable/syncable_id.h" | 53 #include "components/sync/syncable/syncable_id.h" |
| 53 #include "components/sync/syncable/syncable_util.h" | 54 #include "components/sync/syncable/syncable_util.h" |
| 54 #include "components/sync/syncable/syncable_write_transaction.h" | 55 #include "components/sync/syncable/syncable_write_transaction.h" |
| 55 #include "components/sync_bookmarks/bookmark_change_processor.h" | 56 #include "components/sync_bookmarks/bookmark_change_processor.h" |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 } | 539 } |
| 539 return true; | 540 return true; |
| 540 } | 541 } |
| 541 | 542 |
| 542 bool AssociateModels() { | 543 bool AssociateModels() { |
| 543 DCHECK(!model_associator_); | 544 DCHECK(!model_associator_); |
| 544 | 545 |
| 545 // Set up model associator. | 546 // Set up model associator. |
| 546 model_associator_.reset(new BookmarkModelAssociator( | 547 model_associator_.reset(new BookmarkModelAssociator( |
| 547 model_.get(), sync_client_.get(), test_user_share_.user_share(), | 548 model_.get(), sync_client_.get(), test_user_share_.user_share(), |
| 548 &mock_error_handler_, kExpectMobileBookmarks)); | 549 base::MakeUnique<syncer::DataTypeErrorHandlerMock>(), |
| 550 kExpectMobileBookmarks)); |
| 549 | 551 |
| 550 local_merge_result_ = syncer::SyncMergeResult(syncer::BOOKMARKS); | 552 local_merge_result_ = syncer::SyncMergeResult(syncer::BOOKMARKS); |
| 551 syncer_merge_result_ = syncer::SyncMergeResult(syncer::BOOKMARKS); | 553 syncer_merge_result_ = syncer::SyncMergeResult(syncer::BOOKMARKS); |
| 552 int local_count_before = model_->root_node()->GetTotalNodeCount(); | 554 int local_count_before = model_->root_node()->GetTotalNodeCount(); |
| 553 int syncer_count_before = GetSyncBookmarkCount(); | 555 int syncer_count_before = GetSyncBookmarkCount(); |
| 554 | 556 |
| 555 syncer::SyncError error = model_associator_->AssociateModels( | 557 syncer::SyncError error = model_associator_->AssociateModels( |
| 556 &local_merge_result_, &syncer_merge_result_); | 558 &local_merge_result_, &syncer_merge_result_); |
| 557 if (error.IsSet()) | 559 if (error.IsSet()) |
| 558 return false; | 560 return false; |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 | 782 |
| 781 syncer::TestUserShare* test_user_share() { return &test_user_share_; } | 783 syncer::TestUserShare* test_user_share() { return &test_user_share_; } |
| 782 | 784 |
| 783 BookmarkChangeProcessor* change_processor() { | 785 BookmarkChangeProcessor* change_processor() { |
| 784 return change_processor_.get(); | 786 return change_processor_.get(); |
| 785 } | 787 } |
| 786 | 788 |
| 787 void delete_change_processor() { change_processor_.reset(); } | 789 void delete_change_processor() { change_processor_.reset(); } |
| 788 | 790 |
| 789 void ResetChangeProcessor() { | 791 void ResetChangeProcessor() { |
| 792 std::unique_ptr<syncer::DataTypeErrorHandlerMock> error_handler = |
| 793 base::MakeUnique<syncer::DataTypeErrorHandlerMock>(); |
| 794 mock_error_handler_ = error_handler.get(); |
| 790 change_processor_ = base::MakeUnique<BookmarkChangeProcessor>( | 795 change_processor_ = base::MakeUnique<BookmarkChangeProcessor>( |
| 791 sync_client_.get(), model_associator_.get(), &mock_error_handler_); | 796 sync_client_.get(), model_associator_.get(), std::move(error_handler)); |
| 792 } | 797 } |
| 793 | 798 |
| 794 syncer::DataTypeErrorHandlerMock* mock_error_handler() { | 799 syncer::DataTypeErrorHandlerMock* mock_error_handler() { |
| 795 return &mock_error_handler_; | 800 return mock_error_handler_; |
| 796 } | 801 } |
| 797 | 802 |
| 798 void delete_model_associator() { model_associator_.reset(); } | 803 void delete_model_associator() { model_associator_.reset(); } |
| 799 | 804 |
| 800 BookmarkModelAssociator* model_associator() { | 805 BookmarkModelAssociator* model_associator() { |
| 801 return model_associator_.get(); | 806 return model_associator_.get(); |
| 802 } | 807 } |
| 803 | 808 |
| 804 bookmarks::ManagedBookmarkService* managed_bookmark_service() { | 809 bookmarks::ManagedBookmarkService* managed_bookmark_service() { |
| 805 return managed_bookmark_service_.get(); | 810 return managed_bookmark_service_.get(); |
| 806 } | 811 } |
| 807 | 812 |
| 808 private: | 813 private: |
| 814 base::TestMessageLoop message_loop_; |
| 809 base::ScopedTempDir data_dir_; | 815 base::ScopedTempDir data_dir_; |
| 810 base::MessageLoop message_loop_; | |
| 811 browser_sync::ProfileSyncServiceBundle profile_sync_service_bundle_; | 816 browser_sync::ProfileSyncServiceBundle profile_sync_service_bundle_; |
| 812 | 817 |
| 813 std::unique_ptr<sync_driver::FakeSyncClient> sync_client_; | 818 std::unique_ptr<sync_driver::FakeSyncClient> sync_client_; |
| 814 std::unique_ptr<BookmarkModel> model_; | 819 std::unique_ptr<BookmarkModel> model_; |
| 815 syncer::TestUserShare test_user_share_; | 820 syncer::TestUserShare test_user_share_; |
| 816 std::unique_ptr<BookmarkChangeProcessor> change_processor_; | 821 std::unique_ptr<BookmarkChangeProcessor> change_processor_; |
| 817 StrictMock<syncer::DataTypeErrorHandlerMock> mock_error_handler_; | 822 syncer::DataTypeErrorHandlerMock* mock_error_handler_; |
| 818 std::unique_ptr<BookmarkModelAssociator> model_associator_; | 823 std::unique_ptr<BookmarkModelAssociator> model_associator_; |
| 819 std::unique_ptr<bookmarks::ManagedBookmarkService> managed_bookmark_service_; | 824 std::unique_ptr<bookmarks::ManagedBookmarkService> managed_bookmark_service_; |
| 820 | 825 |
| 821 syncer::SyncMergeResult local_merge_result_; | 826 syncer::SyncMergeResult local_merge_result_; |
| 822 syncer::SyncMergeResult syncer_merge_result_; | 827 syncer::SyncMergeResult syncer_merge_result_; |
| 823 | 828 |
| 824 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceBookmarkTest); | 829 DISALLOW_COPY_AND_ASSIGN(ProfileSyncServiceBookmarkTest); |
| 825 }; | 830 }; |
| 826 | 831 |
| 827 TEST_F(ProfileSyncServiceBookmarkTest, InitialState) { | 832 TEST_F(ProfileSyncServiceBookmarkTest, InitialState) { |
| (...skipping 1757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2585 EXPECT_EQ(syncer::kInvalidId, sync_id); | 2590 EXPECT_EQ(syncer::kInvalidId, sync_id); |
| 2586 | 2591 |
| 2587 // Verify that Sync ignores deleting this node. | 2592 // Verify that Sync ignores deleting this node. |
| 2588 model()->Remove(node); | 2593 model()->Remove(node); |
| 2589 EXPECT_EQ(sync_bookmark_count, GetSyncBookmarkCount()); | 2594 EXPECT_EQ(sync_bookmark_count, GetSyncBookmarkCount()); |
| 2590 } | 2595 } |
| 2591 | 2596 |
| 2592 } // namespace | 2597 } // namespace |
| 2593 | 2598 |
| 2594 } // namespace browser_sync | 2599 } // namespace browser_sync |
| OLD | NEW |