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

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

Issue 213003004: Replace calls to 3-arg SyncData::CreateLocalData with 5-arg version. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@syncapi
Patch Set: Apply feedback from review Created 6 years, 8 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/favicon_cache.h" 5 #include "chrome/browser/sync/glue/favicon_cache.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "chrome/browser/chrome_notification_types.h" 11 #include "chrome/browser/chrome_notification_types.h"
12 #include "chrome/browser/history/history_notifications.h" 12 #include "chrome/browser/history/history_notifications.h"
13 #include "content/public/browser/notification_service.h" 13 #include "content/public/browser/notification_service.h"
14 #include "sync/api/attachments/attachment_id.h"
15 #include "sync/api/attachments/attachment_service_proxy_for_test.h"
14 #include "sync/api/sync_change_processor_wrapper_for_test.h" 16 #include "sync/api/sync_change_processor_wrapper_for_test.h"
15 #include "sync/api/sync_error_factory_mock.h" 17 #include "sync/api/sync_error_factory_mock.h"
16 #include "sync/api/time.h" 18 #include "sync/api/time.h"
17 #include "sync/protocol/favicon_image_specifics.pb.h" 19 #include "sync/protocol/favicon_image_specifics.pb.h"
18 #include "sync/protocol/favicon_tracking_specifics.pb.h" 20 #include "sync/protocol/favicon_tracking_specifics.pb.h"
19 #include "sync/protocol/sync.pb.h" 21 #include "sync/protocol/sync.pb.h"
20 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
21 23
22 namespace browser_sync { 24 namespace browser_sync {
23 25
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 // Setting up sync with existing sync data should load that data into the local 609 // Setting up sync with existing sync data should load that data into the local
608 // cache. 610 // cache.
609 TEST_F(SyncFaviconCacheTest, SyncExistingRemote) { 611 TEST_F(SyncFaviconCacheTest, SyncExistingRemote) {
610 syncer::SyncDataList initial_image_data, initial_tracking_data; 612 syncer::SyncDataList initial_image_data, initial_tracking_data;
611 std::vector<int> expected_icons; 613 std::vector<int> expected_icons;
612 for (int i = 0; i < kFaviconBatchSize; ++i) { 614 for (int i = 0; i < kFaviconBatchSize; ++i) {
613 expected_icons.push_back(i); 615 expected_icons.push_back(i);
614 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 616 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
615 FillImageSpecifics(BuildFaviconData(i), 617 FillImageSpecifics(BuildFaviconData(i),
616 image_specifics.mutable_favicon_image()); 618 image_specifics.mutable_favicon_image());
617 initial_image_data.push_back( 619 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
618 syncer::SyncData::CreateRemoteData(1, 620 1,
619 image_specifics, 621 image_specifics,
620 base::Time())); 622 base::Time(),
623 syncer::AttachmentIdList(),
624 syncer::AttachmentServiceProxyForTest::Create()));
621 FillTrackingSpecifics(BuildFaviconData(i), 625 FillTrackingSpecifics(BuildFaviconData(i),
622 tracking_specifics.mutable_favicon_tracking()); 626 tracking_specifics.mutable_favicon_tracking());
623 initial_tracking_data.push_back( 627 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
624 syncer::SyncData::CreateRemoteData(1, 628 1,
625 tracking_specifics, 629 tracking_specifics,
626 base::Time())); 630 base::Time(),
631 syncer::AttachmentIdList(),
632 syncer::AttachmentServiceProxyForTest::Create()));
627 } 633 }
628 634
629 syncer::SyncMergeResult merge_result = 635 syncer::SyncMergeResult merge_result =
630 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES, 636 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES,
631 initial_image_data, 637 initial_image_data,
632 CreateAndPassProcessor(), 638 CreateAndPassProcessor(),
633 CreateAndPassSyncErrorFactory()); 639 CreateAndPassSyncErrorFactory());
634 EXPECT_EQ((unsigned long)kFaviconBatchSize, 640 EXPECT_EQ((unsigned long)kFaviconBatchSize,
635 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size()); 641 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size());
636 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 642 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 test_data.image_16 = std::string(); 688 test_data.image_16 = std::string();
683 expected_icons.push_back(i); 689 expected_icons.push_back(i);
684 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE); 690 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE);
685 } else { 691 } else {
686 test_data.image_16 += "custom"; 692 test_data.image_16 += "custom";
687 expected_data.push_back(test_data); 693 expected_data.push_back(test_data);
688 } 694 }
689 FillImageSpecifics(test_data, 695 FillImageSpecifics(test_data,
690 image_specifics.mutable_favicon_image()); 696 image_specifics.mutable_favicon_image());
691 697
692 initial_image_data.push_back( 698 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
693 syncer::SyncData::CreateRemoteData(1, 699 1,
694 image_specifics, 700 image_specifics,
695 base::Time())); 701 base::Time(),
702 syncer::AttachmentIdList(),
703 syncer::AttachmentServiceProxyForTest::Create()));
696 FillTrackingSpecifics(test_data, 704 FillTrackingSpecifics(test_data,
697 tracking_specifics.mutable_favicon_tracking()); 705 tracking_specifics.mutable_favicon_tracking());
698 initial_tracking_data.push_back( 706 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
699 syncer::SyncData::CreateRemoteData(1, 707 1,
700 tracking_specifics, 708 tracking_specifics,
701 base::Time())); 709 base::Time(),
710 syncer::AttachmentIdList(),
711 syncer::AttachmentServiceProxyForTest::Create()));
702 } 712 }
703 713
704 syncer::SyncMergeResult merge_result = 714 syncer::SyncMergeResult merge_result =
705 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES, 715 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES,
706 initial_image_data, 716 initial_image_data,
707 CreateAndPassProcessor(), 717 CreateAndPassProcessor(),
708 CreateAndPassSyncErrorFactory()); 718 CreateAndPassSyncErrorFactory());
709 EXPECT_EQ((unsigned long)kFaviconBatchSize, 719 EXPECT_EQ((unsigned long)kFaviconBatchSize,
710 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size()); 720 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size());
711 syncer::SyncChangeList changes = processor()->GetAndResetChangeList(); 721 syncer::SyncChangeList changes = processor()->GetAndResetChangeList();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 test_data.last_visit_time = i-1; 773 test_data.last_visit_time = i-1;
764 expected_icons.push_back(i); 774 expected_icons.push_back(i);
765 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE); 775 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE);
766 } else { 776 } else {
767 test_data.last_visit_time = i+1; 777 test_data.last_visit_time = i+1;
768 expected_data.push_back(test_data); 778 expected_data.push_back(test_data);
769 } 779 }
770 FillImageSpecifics(test_data, 780 FillImageSpecifics(test_data,
771 image_specifics.mutable_favicon_image()); 781 image_specifics.mutable_favicon_image());
772 782
773 initial_image_data.push_back( 783 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
774 syncer::SyncData::CreateRemoteData(1, 784 1,
775 image_specifics, 785 image_specifics,
776 base::Time())); 786 base::Time(),
787 syncer::AttachmentIdList(),
788 syncer::AttachmentServiceProxyForTest::Create()));
777 FillTrackingSpecifics(test_data, 789 FillTrackingSpecifics(test_data,
778 tracking_specifics.mutable_favicon_tracking()); 790 tracking_specifics.mutable_favicon_tracking());
779 initial_tracking_data.push_back( 791 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
780 syncer::SyncData::CreateRemoteData(1, 792 1,
781 tracking_specifics, 793 tracking_specifics,
782 base::Time())); 794 base::Time(),
795 syncer::AttachmentIdList(),
796 syncer::AttachmentServiceProxyForTest::Create()));
783 } 797 }
784 798
785 syncer::SyncMergeResult merge_result = 799 syncer::SyncMergeResult merge_result =
786 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES, 800 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES,
787 initial_image_data, 801 initial_image_data,
788 CreateAndPassProcessor(), 802 CreateAndPassProcessor(),
789 CreateAndPassSyncErrorFactory()); 803 CreateAndPassSyncErrorFactory());
790 EXPECT_EQ((unsigned long)kFaviconBatchSize, 804 EXPECT_EQ((unsigned long)kFaviconBatchSize,
791 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size()); 805 cache()->GetAllSyncData(syncer::FAVICON_IMAGES).size());
792 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 806 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 TEST_F(SyncFaviconCacheTest, ReceiveStaleImages) { 838 TEST_F(SyncFaviconCacheTest, ReceiveStaleImages) {
825 syncer::SyncDataList initial_image_data, initial_tracking_data; 839 syncer::SyncDataList initial_image_data, initial_tracking_data;
826 syncer::SyncChangeList stale_changes; 840 syncer::SyncChangeList stale_changes;
827 std::vector<int> expected_icons; 841 std::vector<int> expected_icons;
828 std::vector<syncer::SyncChange::SyncChangeType> expected_change_types; 842 std::vector<syncer::SyncChange::SyncChangeType> expected_change_types;
829 for (int i = 0; i < kFaviconBatchSize; ++i) { 843 for (int i = 0; i < kFaviconBatchSize; ++i) {
830 expected_icons.push_back(i); 844 expected_icons.push_back(i);
831 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 845 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
832 FillImageSpecifics(BuildFaviconData(i), 846 FillImageSpecifics(BuildFaviconData(i),
833 image_specifics.mutable_favicon_image()); 847 image_specifics.mutable_favicon_image());
834 initial_image_data.push_back( 848 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
835 syncer::SyncData::CreateRemoteData(1, 849 1,
836 image_specifics, 850 image_specifics,
837 base::Time())); 851 base::Time(),
852 syncer::AttachmentIdList(),
853 syncer::AttachmentServiceProxyForTest::Create()));
838 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE); 854 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE);
839 image_specifics.mutable_favicon_image()->clear_favicon_web(); 855 image_specifics.mutable_favicon_image()->clear_favicon_web();
840 stale_changes.push_back( 856 stale_changes.push_back(syncer::SyncChange(
841 syncer::SyncChange( 857 FROM_HERE,
842 FROM_HERE, 858 syncer::SyncChange::ACTION_UPDATE,
843 syncer::SyncChange::ACTION_UPDATE, 859 syncer::SyncData::CreateRemoteData(
844 syncer::SyncData::CreateRemoteData(1, 860 1,
845 image_specifics, 861 image_specifics,
846 base::Time()))); 862 base::Time(),
863 syncer::AttachmentIdList(),
864 syncer::AttachmentServiceProxyForTest::Create())));
847 FillTrackingSpecifics(BuildFaviconData(i), 865 FillTrackingSpecifics(BuildFaviconData(i),
848 tracking_specifics.mutable_favicon_tracking()); 866 tracking_specifics.mutable_favicon_tracking());
849 initial_tracking_data.push_back( 867 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
850 syncer::SyncData::CreateRemoteData(1, 868 1,
851 tracking_specifics, 869 tracking_specifics,
852 base::Time())); 870 base::Time(),
871 syncer::AttachmentIdList(),
872 syncer::AttachmentServiceProxyForTest::Create()));
853 } 873 }
854 874
855 SetUpInitialSync(initial_image_data, initial_tracking_data); 875 SetUpInitialSync(initial_image_data, initial_tracking_data);
856 876
857 // Now receive the same icons as an update, but with missing image data. 877 // Now receive the same icons as an update, but with missing image data.
858 cache()->ProcessSyncChanges(FROM_HERE, stale_changes); 878 cache()->ProcessSyncChanges(FROM_HERE, stale_changes);
859 syncer::SyncChangeList changes = processor()->GetAndResetChangeList(); 879 syncer::SyncChangeList changes = processor()->GetAndResetChangeList();
860 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 880 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
861 ASSERT_EQ((unsigned long)kFaviconBatchSize, changes.size()); 881 ASSERT_EQ((unsigned long)kFaviconBatchSize, changes.size());
862 ASSERT_TRUE(VerifyChanges(syncer::FAVICON_IMAGES, 882 ASSERT_TRUE(VerifyChanges(syncer::FAVICON_IMAGES,
863 expected_change_types, 883 expected_change_types,
864 expected_icons, 884 expected_icons,
865 changes)); 885 changes));
866 } 886 }
867 887
868 // New icons should be added locally without pushing anything back to the 888 // New icons should be added locally without pushing anything back to the
869 // remote syncer. 889 // remote syncer.
870 TEST_F(SyncFaviconCacheTest, ReceiveNewImages) { 890 TEST_F(SyncFaviconCacheTest, ReceiveNewImages) {
871 syncer::SyncDataList initial_image_data, initial_tracking_data; 891 syncer::SyncDataList initial_image_data, initial_tracking_data;
872 syncer::SyncChangeList new_changes; 892 syncer::SyncChangeList new_changes;
873 std::vector<int> expected_icons; 893 std::vector<int> expected_icons;
874 for (int i = 0; i < kFaviconBatchSize; ++i) { 894 for (int i = 0; i < kFaviconBatchSize; ++i) {
875 expected_icons.push_back(i); 895 expected_icons.push_back(i);
876 TestFaviconData test_data = BuildFaviconData(i); 896 TestFaviconData test_data = BuildFaviconData(i);
877 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 897 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
878 FillImageSpecifics(test_data, 898 FillImageSpecifics(test_data,
879 image_specifics.mutable_favicon_image()); 899 image_specifics.mutable_favicon_image());
880 new_changes.push_back( 900 new_changes.push_back(syncer::SyncChange(
881 syncer::SyncChange( 901 FROM_HERE,
882 FROM_HERE, 902 syncer::SyncChange::ACTION_UPDATE,
883 syncer::SyncChange::ACTION_UPDATE, 903 syncer::SyncData::CreateRemoteData(
884 syncer::SyncData::CreateRemoteData(1, 904 1,
885 image_specifics, 905 image_specifics,
886 base::Time()))); 906 base::Time(),
887 image_specifics.mutable_favicon_image()->mutable_favicon_web()-> 907 syncer::AttachmentIdList(),
888 mutable_favicon()->append("old"); 908 syncer::AttachmentServiceProxyForTest::Create())));
889 initial_image_data.push_back( 909 image_specifics.mutable_favicon_image()
890 syncer::SyncData::CreateRemoteData(1, 910 ->mutable_favicon_web()
891 image_specifics, 911 ->mutable_favicon()
892 base::Time())); 912 ->append("old");
913 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
914 1,
915 image_specifics,
916 base::Time(),
917 syncer::AttachmentIdList(),
918 syncer::AttachmentServiceProxyForTest::Create()));
893 FillTrackingSpecifics(BuildFaviconData(i), 919 FillTrackingSpecifics(BuildFaviconData(i),
894 tracking_specifics.mutable_favicon_tracking()); 920 tracking_specifics.mutable_favicon_tracking());
895 initial_tracking_data.push_back( 921 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
896 syncer::SyncData::CreateRemoteData(1, 922 1,
897 tracking_specifics, 923 tracking_specifics,
898 base::Time())); 924 base::Time(),
925 syncer::AttachmentIdList(),
926 syncer::AttachmentServiceProxyForTest::Create()));
899 } 927 }
900 928
901 SetUpInitialSync(initial_image_data, initial_tracking_data); 929 SetUpInitialSync(initial_image_data, initial_tracking_data);
902 930
903 // Now receive the new icons as an update. 931 // Now receive the new icons as an update.
904 cache()->ProcessSyncChanges(FROM_HERE, new_changes); 932 cache()->ProcessSyncChanges(FROM_HERE, new_changes);
905 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 933 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
906 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 934 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
907 } 935 }
908 936
909 // Recieving the same icons as the local data should have no effect. 937 // Recieving the same icons as the local data should have no effect.
910 TEST_F(SyncFaviconCacheTest, ReceiveSameImages) { 938 TEST_F(SyncFaviconCacheTest, ReceiveSameImages) {
911 syncer::SyncDataList initial_image_data, initial_tracking_data; 939 syncer::SyncDataList initial_image_data, initial_tracking_data;
912 syncer::SyncChangeList same_changes; 940 syncer::SyncChangeList same_changes;
913 std::vector<int> expected_icons; 941 std::vector<int> expected_icons;
914 for (int i = 0; i < kFaviconBatchSize; ++i) { 942 for (int i = 0; i < kFaviconBatchSize; ++i) {
915 expected_icons.push_back(i); 943 expected_icons.push_back(i);
916 TestFaviconData test_data = BuildFaviconData(i); 944 TestFaviconData test_data = BuildFaviconData(i);
917 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 945 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
918 FillImageSpecifics(test_data, 946 FillImageSpecifics(test_data,
919 image_specifics.mutable_favicon_image()); 947 image_specifics.mutable_favicon_image());
920 same_changes.push_back( 948 same_changes.push_back(syncer::SyncChange(
921 syncer::SyncChange( 949 FROM_HERE,
922 FROM_HERE, 950 syncer::SyncChange::ACTION_UPDATE,
923 syncer::SyncChange::ACTION_UPDATE, 951 syncer::SyncData::CreateRemoteData(
924 syncer::SyncData::CreateRemoteData(1, 952 1,
925 image_specifics, 953 image_specifics,
926 base::Time()))); 954 base::Time(),
927 initial_image_data.push_back( 955 syncer::AttachmentIdList(),
928 syncer::SyncData::CreateRemoteData(1, 956 syncer::AttachmentServiceProxyForTest::Create())));
929 image_specifics, 957 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
930 base::Time())); 958 1,
959 image_specifics,
960 base::Time(),
961 syncer::AttachmentIdList(),
962 syncer::AttachmentServiceProxyForTest::Create()));
931 FillTrackingSpecifics(BuildFaviconData(i), 963 FillTrackingSpecifics(BuildFaviconData(i),
932 tracking_specifics.mutable_favicon_tracking()); 964 tracking_specifics.mutable_favicon_tracking());
933 initial_tracking_data.push_back( 965 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
934 syncer::SyncData::CreateRemoteData(1, 966 1,
935 tracking_specifics, 967 tracking_specifics,
936 base::Time())); 968 base::Time(),
969 syncer::AttachmentIdList(),
970 syncer::AttachmentServiceProxyForTest::Create()));
937 } 971 }
938 972
939 SetUpInitialSync(initial_image_data, initial_tracking_data); 973 SetUpInitialSync(initial_image_data, initial_tracking_data);
940 974
941 // Now receive the new icons as an update. 975 // Now receive the new icons as an update.
942 cache()->ProcessSyncChanges(FROM_HERE, same_changes); 976 cache()->ProcessSyncChanges(FROM_HERE, same_changes);
943 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 977 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
944 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 978 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
945 } 979 }
946 980
947 // Receiving stale tracking (old visit times) should result in pushing back 981 // Receiving stale tracking (old visit times) should result in pushing back
948 // the newer visit times to the remote syncer. 982 // the newer visit times to the remote syncer.
949 TEST_F(SyncFaviconCacheTest, ReceiveStaleTracking) { 983 TEST_F(SyncFaviconCacheTest, ReceiveStaleTracking) {
950 syncer::SyncDataList initial_image_data, initial_tracking_data; 984 syncer::SyncDataList initial_image_data, initial_tracking_data;
951 syncer::SyncChangeList stale_changes; 985 syncer::SyncChangeList stale_changes;
952 std::vector<int> expected_icons; 986 std::vector<int> expected_icons;
953 std::vector<syncer::SyncChange::SyncChangeType> expected_change_types; 987 std::vector<syncer::SyncChange::SyncChangeType> expected_change_types;
954 for (int i = 0; i < kFaviconBatchSize; ++i) { 988 for (int i = 0; i < kFaviconBatchSize; ++i) {
955 expected_icons.push_back(i); 989 expected_icons.push_back(i);
956 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 990 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
957 FillImageSpecifics(BuildFaviconData(i), 991 FillImageSpecifics(BuildFaviconData(i),
958 image_specifics.mutable_favicon_image()); 992 image_specifics.mutable_favicon_image());
959 initial_image_data.push_back( 993 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
960 syncer::SyncData::CreateRemoteData(1, 994 1,
961 image_specifics, 995 image_specifics,
962 base::Time())); 996 base::Time(),
997 syncer::AttachmentIdList(),
998 syncer::AttachmentServiceProxyForTest::Create()));
963 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE); 999 expected_change_types.push_back(syncer::SyncChange::ACTION_UPDATE);
964 FillTrackingSpecifics(BuildFaviconData(i), 1000 FillTrackingSpecifics(BuildFaviconData(i),
965 tracking_specifics.mutable_favicon_tracking()); 1001 tracking_specifics.mutable_favicon_tracking());
966 initial_tracking_data.push_back( 1002 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
967 syncer::SyncData::CreateRemoteData(1, 1003 1,
968 tracking_specifics, 1004 tracking_specifics,
969 base::Time())); 1005 base::Time(),
1006 syncer::AttachmentIdList(),
1007 syncer::AttachmentServiceProxyForTest::Create()));
970 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms(-1); 1008 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms(-1);
971 stale_changes.push_back( 1009 stale_changes.push_back(syncer::SyncChange(
972 syncer::SyncChange( 1010 FROM_HERE,
973 FROM_HERE, 1011 syncer::SyncChange::ACTION_UPDATE,
974 syncer::SyncChange::ACTION_UPDATE, 1012 syncer::SyncData::CreateRemoteData(
975 syncer::SyncData::CreateRemoteData(1, 1013 1,
976 tracking_specifics, 1014 tracking_specifics,
977 base::Time()))); 1015 base::Time(),
1016 syncer::AttachmentIdList(),
1017 syncer::AttachmentServiceProxyForTest::Create())));
978 } 1018 }
979 1019
980 SetUpInitialSync(initial_image_data, initial_tracking_data); 1020 SetUpInitialSync(initial_image_data, initial_tracking_data);
981 1021
982 // Now receive the same icons as an update, but with missing image data. 1022 // Now receive the same icons as an update, but with missing image data.
983 cache()->ProcessSyncChanges(FROM_HERE, stale_changes); 1023 cache()->ProcessSyncChanges(FROM_HERE, stale_changes);
984 syncer::SyncChangeList changes = processor()->GetAndResetChangeList(); 1024 syncer::SyncChangeList changes = processor()->GetAndResetChangeList();
985 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 1025 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
986 ASSERT_EQ((unsigned long)kFaviconBatchSize, changes.size()); 1026 ASSERT_EQ((unsigned long)kFaviconBatchSize, changes.size());
987 ASSERT_TRUE(VerifyChanges(syncer::FAVICON_TRACKING, 1027 ASSERT_TRUE(VerifyChanges(syncer::FAVICON_TRACKING,
988 expected_change_types, 1028 expected_change_types,
989 expected_icons, 1029 expected_icons,
990 changes)); 1030 changes));
991 } 1031 }
992 1032
993 // New tracking information should be added locally without pushing anything 1033 // New tracking information should be added locally without pushing anything
994 // back to the remote syncer. 1034 // back to the remote syncer.
995 TEST_F(SyncFaviconCacheTest, ReceiveNewTracking) { 1035 TEST_F(SyncFaviconCacheTest, ReceiveNewTracking) {
996 syncer::SyncDataList initial_image_data, initial_tracking_data; 1036 syncer::SyncDataList initial_image_data, initial_tracking_data;
997 syncer::SyncChangeList new_changes; 1037 syncer::SyncChangeList new_changes;
998 std::vector<int> expected_icons; 1038 std::vector<int> expected_icons;
999 // We start from one here so that we don't have to deal with a -1 visit time. 1039 // We start from one here so that we don't have to deal with a -1 visit time.
1000 for (int i = 1; i <= kFaviconBatchSize; ++i) { 1040 for (int i = 1; i <= kFaviconBatchSize; ++i) {
1001 expected_icons.push_back(i); 1041 expected_icons.push_back(i);
1002 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1042 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1003 FillImageSpecifics(BuildFaviconData(i), 1043 FillImageSpecifics(BuildFaviconData(i),
1004 image_specifics.mutable_favicon_image()); 1044 image_specifics.mutable_favicon_image());
1005 initial_image_data.push_back( 1045 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1006 syncer::SyncData::CreateRemoteData(1, 1046 1,
1007 image_specifics, 1047 image_specifics,
1008 base::Time())); 1048 base::Time(),
1049 syncer::AttachmentIdList(),
1050 syncer::AttachmentServiceProxyForTest::Create()));
1009 FillTrackingSpecifics(BuildFaviconData(i), 1051 FillTrackingSpecifics(BuildFaviconData(i),
1010 tracking_specifics.mutable_favicon_tracking()); 1052 tracking_specifics.mutable_favicon_tracking());
1011 new_changes.push_back( 1053 new_changes.push_back(syncer::SyncChange(
1012 syncer::SyncChange( 1054 FROM_HERE,
1013 FROM_HERE, 1055 syncer::SyncChange::ACTION_UPDATE,
1014 syncer::SyncChange::ACTION_UPDATE, 1056 syncer::SyncData::CreateRemoteData(
1015 syncer::SyncData::CreateRemoteData(1, 1057 1,
1016 tracking_specifics, 1058 tracking_specifics,
1017 base::Time()))); 1059 base::Time(),
1060 syncer::AttachmentIdList(),
1061 syncer::AttachmentServiceProxyForTest::Create())));
1018 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms(i-1); 1062 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms(i-1);
1019 initial_tracking_data.push_back( 1063 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1020 syncer::SyncData::CreateRemoteData(1, 1064 1,
1021 tracking_specifics, 1065 tracking_specifics,
1022 base::Time())); 1066 base::Time(),
1067 syncer::AttachmentIdList(),
1068 syncer::AttachmentServiceProxyForTest::Create()));
1023 } 1069 }
1024 1070
1025 SetUpInitialSync(initial_image_data, initial_tracking_data); 1071 SetUpInitialSync(initial_image_data, initial_tracking_data);
1026 1072
1027 // Now receive the new icons as an update. 1073 // Now receive the new icons as an update.
1028 cache()->ProcessSyncChanges(FROM_HERE, new_changes); 1074 cache()->ProcessSyncChanges(FROM_HERE, new_changes);
1029 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1075 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1030 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 1076 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
1031 } 1077 }
1032 1078
1033 // Receiving the same tracking information as the local data should have no 1079 // Receiving the same tracking information as the local data should have no
1034 // effect. 1080 // effect.
1035 TEST_F(SyncFaviconCacheTest, ReceiveSameTracking) { 1081 TEST_F(SyncFaviconCacheTest, ReceiveSameTracking) {
1036 syncer::SyncDataList initial_image_data, initial_tracking_data; 1082 syncer::SyncDataList initial_image_data, initial_tracking_data;
1037 syncer::SyncChangeList same_changes; 1083 syncer::SyncChangeList same_changes;
1038 std::vector<int> expected_icons; 1084 std::vector<int> expected_icons;
1039 for (int i = 0; i < kFaviconBatchSize; ++i) { 1085 for (int i = 0; i < kFaviconBatchSize; ++i) {
1040 expected_icons.push_back(i); 1086 expected_icons.push_back(i);
1041 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1087 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1042 FillImageSpecifics(BuildFaviconData(i), 1088 FillImageSpecifics(BuildFaviconData(i),
1043 image_specifics.mutable_favicon_image()); 1089 image_specifics.mutable_favicon_image());
1044 initial_image_data.push_back( 1090 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1045 syncer::SyncData::CreateRemoteData(1, 1091 1,
1046 image_specifics, 1092 image_specifics,
1047 base::Time())); 1093 base::Time(),
1094 syncer::AttachmentIdList(),
1095 syncer::AttachmentServiceProxyForTest::Create()));
1048 FillTrackingSpecifics(BuildFaviconData(i), 1096 FillTrackingSpecifics(BuildFaviconData(i),
1049 tracking_specifics.mutable_favicon_tracking()); 1097 tracking_specifics.mutable_favicon_tracking());
1050 initial_tracking_data.push_back( 1098 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1051 syncer::SyncData::CreateRemoteData(1, 1099 1,
1052 tracking_specifics, 1100 tracking_specifics,
1053 base::Time())); 1101 base::Time(),
1054 same_changes.push_back( 1102 syncer::AttachmentIdList(),
1055 syncer::SyncChange( 1103 syncer::AttachmentServiceProxyForTest::Create()));
1056 FROM_HERE, 1104 same_changes.push_back(syncer::SyncChange(
1057 syncer::SyncChange::ACTION_UPDATE, 1105 FROM_HERE,
1058 syncer::SyncData::CreateRemoteData(1, 1106 syncer::SyncChange::ACTION_UPDATE,
1059 tracking_specifics, 1107 syncer::SyncData::CreateRemoteData(
1060 base::Time()))); 1108 1,
1109 tracking_specifics,
1110 base::Time(),
1111 syncer::AttachmentIdList(),
1112 syncer::AttachmentServiceProxyForTest::Create())));
1061 } 1113 }
1062 1114
1063 SetUpInitialSync(initial_image_data, initial_tracking_data); 1115 SetUpInitialSync(initial_image_data, initial_tracking_data);
1064 1116
1065 // Now receive the new icons as an update. 1117 // Now receive the new icons as an update.
1066 cache()->ProcessSyncChanges(FROM_HERE, same_changes); 1118 cache()->ProcessSyncChanges(FROM_HERE, same_changes);
1067 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1119 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1068 ASSERT_TRUE(VerifyLocalIcons(expected_icons)); 1120 ASSERT_TRUE(VerifyLocalIcons(expected_icons));
1069 } 1121 }
1070 1122
1071 // Verify we can delete favicons after setting up sync. 1123 // Verify we can delete favicons after setting up sync.
1072 TEST_F(SyncFaviconCacheTest, DeleteFavicons) { 1124 TEST_F(SyncFaviconCacheTest, DeleteFavicons) {
1073 syncer::SyncDataList initial_image_data, initial_tracking_data; 1125 syncer::SyncDataList initial_image_data, initial_tracking_data;
1074 syncer::SyncChangeList tracking_deletions, image_deletions; 1126 syncer::SyncChangeList tracking_deletions, image_deletions;
1075 for (int i = 0; i < kFaviconBatchSize; ++i) { 1127 for (int i = 0; i < kFaviconBatchSize; ++i) {
1076 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1128 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1077 FillImageSpecifics(BuildFaviconData(i), 1129 FillImageSpecifics(BuildFaviconData(i),
1078 image_specifics.mutable_favicon_image()); 1130 image_specifics.mutable_favicon_image());
1079 initial_image_data.push_back( 1131 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1080 syncer::SyncData::CreateRemoteData(1, 1132 1,
1081 image_specifics, 1133 image_specifics,
1082 base::Time())); 1134 base::Time(),
1135 syncer::AttachmentIdList(),
1136 syncer::AttachmentServiceProxyForTest::Create()));
1083 FillTrackingSpecifics(BuildFaviconData(i), 1137 FillTrackingSpecifics(BuildFaviconData(i),
1084 tracking_specifics.mutable_favicon_tracking()); 1138 tracking_specifics.mutable_favicon_tracking());
1085 initial_tracking_data.push_back( 1139 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1086 syncer::SyncData::CreateRemoteData(1, 1140 1,
1087 tracking_specifics, 1141 tracking_specifics,
1088 base::Time())); 1142 base::Time(),
1089 tracking_deletions.push_back( 1143 syncer::AttachmentIdList(),
1090 syncer::SyncChange( 1144 syncer::AttachmentServiceProxyForTest::Create()));
1091 FROM_HERE, 1145 tracking_deletions.push_back(syncer::SyncChange(
1092 syncer::SyncChange::ACTION_DELETE, 1146 FROM_HERE,
1093 syncer::SyncData::CreateRemoteData(1, 1147 syncer::SyncChange::ACTION_DELETE,
1094 tracking_specifics, 1148 syncer::SyncData::CreateRemoteData(
1095 base::Time()))); 1149 1,
1096 image_deletions.push_back( 1150 tracking_specifics,
1097 syncer::SyncChange( 1151 base::Time(),
1098 FROM_HERE, 1152 syncer::AttachmentIdList(),
1099 syncer::SyncChange::ACTION_DELETE, 1153 syncer::AttachmentServiceProxyForTest::Create())));
1100 syncer::SyncData::CreateRemoteData(1, 1154 image_deletions.push_back(syncer::SyncChange(
1101 image_specifics, 1155 FROM_HERE,
1102 base::Time()))); 1156 syncer::SyncChange::ACTION_DELETE,
1157 syncer::SyncData::CreateRemoteData(
1158 1,
1159 image_specifics,
1160 base::Time(),
1161 syncer::AttachmentIdList(),
1162 syncer::AttachmentServiceProxyForTest::Create())));
1103 } 1163 }
1104 1164
1105 SetUpInitialSync(initial_image_data, initial_tracking_data); 1165 SetUpInitialSync(initial_image_data, initial_tracking_data);
1106 1166
1107 // Now receive the tracking deletions. Since we'll still have orphan data, 1167 // Now receive the tracking deletions. Since we'll still have orphan data,
1108 // the favicon count should remain the same. 1168 // the favicon count should remain the same.
1109 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1169 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1110 cache()->ProcessSyncChanges(FROM_HERE, tracking_deletions); 1170 cache()->ProcessSyncChanges(FROM_HERE, tracking_deletions);
1111 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1171 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1112 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1172 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1113 1173
1114 // Once the image deletions arrive, the favicon count should be 0 again. 1174 // Once the image deletions arrive, the favicon count should be 0 again.
1115 cache()->ProcessSyncChanges(FROM_HERE, image_deletions); 1175 cache()->ProcessSyncChanges(FROM_HERE, image_deletions);
1116 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1176 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1117 EXPECT_EQ(0U, GetFaviconCount()); 1177 EXPECT_EQ(0U, GetFaviconCount());
1118 } 1178 }
1119 1179
1120 // Ensure that MergeDataAndStartSyncing enforces the sync favicon limit by 1180 // Ensure that MergeDataAndStartSyncing enforces the sync favicon limit by
1121 // dropping local icons. 1181 // dropping local icons.
1122 TEST_F(SyncFaviconCacheTest, ExpireOnMergeData) { 1182 TEST_F(SyncFaviconCacheTest, ExpireOnMergeData) {
1123 std::vector<int> expected_icons; 1183 std::vector<int> expected_icons;
1124 syncer::SyncDataList initial_image_data, initial_tracking_data; 1184 syncer::SyncDataList initial_image_data, initial_tracking_data;
1125 1185
1126 // Set up sync so it has the maximum number of favicons, while the local has 1186 // Set up sync so it has the maximum number of favicons, while the local has
1127 // the same amount of different favicons. 1187 // the same amount of different favicons.
1128 for (int i = 0; i < kMaxSyncFavicons; ++i) { 1188 for (int i = 0; i < kMaxSyncFavicons; ++i) {
1129 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1189 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1130 FillImageSpecifics(BuildFaviconData(i), 1190 FillImageSpecifics(BuildFaviconData(i),
1131 image_specifics.mutable_favicon_image()); 1191 image_specifics.mutable_favicon_image());
1132 initial_image_data.push_back( 1192 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1133 syncer::SyncData::CreateRemoteData(1, 1193 1,
1134 image_specifics, 1194 image_specifics,
1135 base::Time())); 1195 base::Time(),
1196 syncer::AttachmentIdList(),
1197 syncer::AttachmentServiceProxyForTest::Create()));
1136 FillTrackingSpecifics(BuildFaviconData(i), 1198 FillTrackingSpecifics(BuildFaviconData(i),
1137 tracking_specifics.mutable_favicon_tracking()); 1199 tracking_specifics.mutable_favicon_tracking());
1138 initial_tracking_data.push_back( 1200 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1139 syncer::SyncData::CreateRemoteData(1, 1201 1,
1140 tracking_specifics, 1202 tracking_specifics,
1141 base::Time())); 1203 base::Time(),
1204 syncer::AttachmentIdList(),
1205 syncer::AttachmentServiceProxyForTest::Create()));
1142 expected_icons.push_back(i); 1206 expected_icons.push_back(i);
1143 1207
1144 TestFaviconData favicon = BuildFaviconData(i+kMaxSyncFavicons); 1208 TestFaviconData favicon = BuildFaviconData(i+kMaxSyncFavicons);
1145 TriggerSyncFaviconReceived(favicon.page_url, 1209 TriggerSyncFaviconReceived(favicon.page_url,
1146 favicon.icon_url, 1210 favicon.icon_url,
1147 favicon.image_16, 1211 favicon.image_16,
1148 i+kMaxSyncFavicons); 1212 i+kMaxSyncFavicons);
1149 } 1213 }
1150 1214
1151 EXPECT_FALSE(VerifyLocalIcons(expected_icons)); 1215 EXPECT_FALSE(VerifyLocalIcons(expected_icons));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1189 // expirations. 1253 // expirations.
1190 TEST_F(SyncFaviconCacheTest, NoExpireOnProcessSyncChanges) { 1254 TEST_F(SyncFaviconCacheTest, NoExpireOnProcessSyncChanges) {
1191 syncer::SyncDataList initial_image_data, initial_tracking_data; 1255 syncer::SyncDataList initial_image_data, initial_tracking_data;
1192 syncer::SyncChangeList image_changes, tracking_changes; 1256 syncer::SyncChangeList image_changes, tracking_changes;
1193 std::vector<int> expected_icons; 1257 std::vector<int> expected_icons;
1194 for (int i = 0; i < kMaxSyncFavicons; ++i) { 1258 for (int i = 0; i < kMaxSyncFavicons; ++i) {
1195 expected_icons.push_back(i); 1259 expected_icons.push_back(i);
1196 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1260 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1197 FillImageSpecifics(BuildFaviconData(i), 1261 FillImageSpecifics(BuildFaviconData(i),
1198 image_specifics.mutable_favicon_image()); 1262 image_specifics.mutable_favicon_image());
1199 initial_image_data.push_back( 1263 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1200 syncer::SyncData::CreateRemoteData(1, 1264 1,
1201 image_specifics, 1265 image_specifics,
1202 base::Time())); 1266 base::Time(),
1267 syncer::AttachmentIdList(),
1268 syncer::AttachmentServiceProxyForTest::Create()));
1203 FillTrackingSpecifics(BuildFaviconData(i), 1269 FillTrackingSpecifics(BuildFaviconData(i),
1204 tracking_specifics.mutable_favicon_tracking()); 1270 tracking_specifics.mutable_favicon_tracking());
1205 initial_tracking_data.push_back( 1271 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1206 syncer::SyncData::CreateRemoteData(1, 1272 1,
1207 tracking_specifics, 1273 tracking_specifics,
1208 base::Time())); 1274 base::Time(),
1275 syncer::AttachmentIdList(),
1276 syncer::AttachmentServiceProxyForTest::Create()));
1209 // Set up new tracking specifics for the icons received at change time. 1277 // Set up new tracking specifics for the icons received at change time.
1210 expected_icons.push_back(i + kMaxSyncFavicons); 1278 expected_icons.push_back(i + kMaxSyncFavicons);
1211 FillImageSpecifics(BuildFaviconData(i + kMaxSyncFavicons), 1279 FillImageSpecifics(BuildFaviconData(i + kMaxSyncFavicons),
1212 image_specifics.mutable_favicon_image()); 1280 image_specifics.mutable_favicon_image());
1213 image_changes.push_back( 1281 image_changes.push_back(syncer::SyncChange(
1214 syncer::SyncChange( 1282 FROM_HERE,
1215 FROM_HERE, 1283 syncer::SyncChange::ACTION_ADD,
1216 syncer::SyncChange::ACTION_ADD, 1284 syncer::SyncData::CreateRemoteData(
1217 syncer::SyncData::CreateRemoteData(1, 1285 1,
1218 image_specifics, 1286 image_specifics,
1219 base::Time()))); 1287 base::Time(),
1288 syncer::AttachmentIdList(),
1289 syncer::AttachmentServiceProxyForTest::Create())));
1220 FillTrackingSpecifics(BuildFaviconData(i + kMaxSyncFavicons), 1290 FillTrackingSpecifics(BuildFaviconData(i + kMaxSyncFavicons),
1221 tracking_specifics.mutable_favicon_tracking()); 1291 tracking_specifics.mutable_favicon_tracking());
1222 tracking_changes.push_back( 1292 tracking_changes.push_back(syncer::SyncChange(
1223 syncer::SyncChange( 1293 FROM_HERE,
1224 FROM_HERE, 1294 syncer::SyncChange::ACTION_ADD,
1225 syncer::SyncChange::ACTION_ADD, 1295 syncer::SyncData::CreateRemoteData(
1226 syncer::SyncData::CreateRemoteData(1, 1296 1,
1227 tracking_specifics, 1297 tracking_specifics,
1228 base::Time()))); 1298 base::Time(),
1299 syncer::AttachmentIdList(),
1300 syncer::AttachmentServiceProxyForTest::Create())));
1229 } 1301 }
1230 1302
1231 SetUpInitialSync(initial_image_data, initial_tracking_data); 1303 SetUpInitialSync(initial_image_data, initial_tracking_data);
1232 1304
1233 // Now receive the new icons as an update. 1305 // Now receive the new icons as an update.
1234 EXPECT_EQ((unsigned long)kMaxSyncFavicons, GetFaviconCount()); 1306 EXPECT_EQ((unsigned long)kMaxSyncFavicons, GetFaviconCount());
1235 cache()->ProcessSyncChanges(FROM_HERE, image_changes); 1307 cache()->ProcessSyncChanges(FROM_HERE, image_changes);
1236 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1308 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1237 cache()->ProcessSyncChanges(FROM_HERE, tracking_changes); 1309 cache()->ProcessSyncChanges(FROM_HERE, tracking_changes);
1238 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1310 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 syncer::SyncDataList initial_image_data, initial_tracking_data; 1443 syncer::SyncDataList initial_image_data, initial_tracking_data;
1372 std::vector<int> expected_icons; 1444 std::vector<int> expected_icons;
1373 std::vector<syncer::SyncChange::SyncChangeType> expected_deletions; 1445 std::vector<syncer::SyncChange::SyncChangeType> expected_deletions;
1374 for (int i = 0; i < kFaviconBatchSize; ++i) { 1446 for (int i = 0; i < kFaviconBatchSize; ++i) {
1375 expected_icons.push_back(i); 1447 expected_icons.push_back(i);
1376 expected_deletions.push_back(syncer::SyncChange::ACTION_DELETE); 1448 expected_deletions.push_back(syncer::SyncChange::ACTION_DELETE);
1377 TestFaviconData test_data = BuildFaviconData(i); 1449 TestFaviconData test_data = BuildFaviconData(i);
1378 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1450 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1379 FillImageSpecifics(test_data, 1451 FillImageSpecifics(test_data,
1380 image_specifics.mutable_favicon_image()); 1452 image_specifics.mutable_favicon_image());
1381 initial_image_data.push_back( 1453 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1382 syncer::SyncData::CreateRemoteData(1, 1454 1,
1383 image_specifics, 1455 image_specifics,
1384 base::Time())); 1456 base::Time(),
1457 syncer::AttachmentIdList(),
1458 syncer::AttachmentServiceProxyForTest::Create()));
1385 FillTrackingSpecifics(BuildFaviconData(i), 1459 FillTrackingSpecifics(BuildFaviconData(i),
1386 tracking_specifics.mutable_favicon_tracking()); 1460 tracking_specifics.mutable_favicon_tracking());
1387 initial_tracking_data.push_back( 1461 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1388 syncer::SyncData::CreateRemoteData(1, 1462 1,
1389 tracking_specifics, 1463 tracking_specifics,
1390 base::Time())); 1464 base::Time(),
1465 syncer::AttachmentIdList(),
1466 syncer::AttachmentServiceProxyForTest::Create()));
1391 } 1467 }
1392 1468
1393 SetUpInitialSync(initial_image_data, initial_tracking_data); 1469 SetUpInitialSync(initial_image_data, initial_tracking_data);
1394 syncer::SyncChangeList changes = processor()->GetAndResetChangeList(); 1470 syncer::SyncChangeList changes = processor()->GetAndResetChangeList();
1395 EXPECT_TRUE(changes.empty()); 1471 EXPECT_TRUE(changes.empty());
1396 1472
1397 history::URLsDeletedDetails deletions; 1473 history::URLsDeletedDetails deletions;
1398 deletions.all_history = true; 1474 deletions.all_history = true;
1399 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1475 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1400 content::NotificationService::current()->Notify( 1476 content::NotificationService::current()->Notify(
(...skipping 28 matching lines...) Expand all
1429 for (int i = 0; i < kFaviconBatchSize; ++i) { 1505 for (int i = 0; i < kFaviconBatchSize; ++i) {
1430 TestFaviconData test_data = BuildFaviconData(i); 1506 TestFaviconData test_data = BuildFaviconData(i);
1431 if (i < kFaviconBatchSize/2) { 1507 if (i < kFaviconBatchSize/2) {
1432 expected_icons.push_back(i); 1508 expected_icons.push_back(i);
1433 expected_deletions.push_back(syncer::SyncChange::ACTION_DELETE); 1509 expected_deletions.push_back(syncer::SyncChange::ACTION_DELETE);
1434 deletions.favicon_urls.insert(test_data.icon_url); 1510 deletions.favicon_urls.insert(test_data.icon_url);
1435 } 1511 }
1436 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1512 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1437 FillImageSpecifics(test_data, 1513 FillImageSpecifics(test_data,
1438 image_specifics.mutable_favicon_image()); 1514 image_specifics.mutable_favicon_image());
1439 initial_image_data.push_back( 1515 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1440 syncer::SyncData::CreateRemoteData(1, 1516 1,
1441 image_specifics, 1517 image_specifics,
1442 base::Time())); 1518 base::Time(),
1519 syncer::AttachmentIdList(),
1520 syncer::AttachmentServiceProxyForTest::Create()));
1443 FillTrackingSpecifics(BuildFaviconData(i), 1521 FillTrackingSpecifics(BuildFaviconData(i),
1444 tracking_specifics.mutable_favicon_tracking()); 1522 tracking_specifics.mutable_favicon_tracking());
1445 initial_tracking_data.push_back( 1523 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1446 syncer::SyncData::CreateRemoteData(1, 1524 1,
1447 tracking_specifics, 1525 tracking_specifics,
1448 base::Time())); 1526 base::Time(),
1527 syncer::AttachmentIdList(),
1528 syncer::AttachmentServiceProxyForTest::Create()));
1449 } 1529 }
1450 1530
1451 SetUpInitialSync(initial_image_data, initial_tracking_data); 1531 SetUpInitialSync(initial_image_data, initial_tracking_data);
1452 syncer::SyncChangeList changes = processor()->GetAndResetChangeList(); 1532 syncer::SyncChangeList changes = processor()->GetAndResetChangeList();
1453 EXPECT_TRUE(changes.empty()); 1533 EXPECT_TRUE(changes.empty());
1454 1534
1455 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1535 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1456 content::NotificationService::current()->Notify( 1536 content::NotificationService::current()->Notify(
1457 chrome::NOTIFICATION_HISTORY_URLS_DELETED, 1537 chrome::NOTIFICATION_HISTORY_URLS_DELETED,
1458 content::Source<Profile>(NULL), 1538 content::Source<Profile>(NULL),
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 syncer::SyncChangeList initial_image_changes; 1630 syncer::SyncChangeList initial_image_changes;
1551 syncer::SyncChangeList initial_tracking_changes; 1631 syncer::SyncChangeList initial_tracking_changes;
1552 for (int i = 0; i < kFaviconBatchSize; ++i) { 1632 for (int i = 0; i < kFaviconBatchSize; ++i) {
1553 TestFaviconData test_data = BuildFaviconData(i); 1633 TestFaviconData test_data = BuildFaviconData(i);
1554 // Even favicons have image data but no tracking data. Odd favicons have 1634 // Even favicons have image data but no tracking data. Odd favicons have
1555 // tracking data but no image data. 1635 // tracking data but no image data.
1556 if (i % 2 == 0) { 1636 if (i % 2 == 0) {
1557 sync_pb::EntitySpecifics image_specifics; 1637 sync_pb::EntitySpecifics image_specifics;
1558 FillImageSpecifics(BuildFaviconData(i), 1638 FillImageSpecifics(BuildFaviconData(i),
1559 image_specifics.mutable_favicon_image()); 1639 image_specifics.mutable_favicon_image());
1560 initial_image_changes.push_back( 1640 initial_image_changes.push_back(syncer::SyncChange(
1561 syncer::SyncChange(FROM_HERE, 1641 FROM_HERE,
1562 syncer::SyncChange::ACTION_ADD, 1642 syncer::SyncChange::ACTION_ADD,
1563 syncer::SyncData::CreateRemoteData( 1643 syncer::SyncData::CreateRemoteData(
1564 1, image_specifics, base::Time()))); 1644 1,
1645 image_specifics,
1646 base::Time(),
1647 syncer::AttachmentIdList(),
1648 syncer::AttachmentServiceProxyForTest::Create())));
1565 } else { 1649 } else {
1566 sync_pb::EntitySpecifics tracking_specifics; 1650 sync_pb::EntitySpecifics tracking_specifics;
1567 FillTrackingSpecifics(BuildFaviconData(i), 1651 FillTrackingSpecifics(BuildFaviconData(i),
1568 tracking_specifics.mutable_favicon_tracking()); 1652 tracking_specifics.mutable_favicon_tracking());
1569 initial_tracking_changes.push_back( 1653 initial_tracking_changes.push_back(syncer::SyncChange(
1570 syncer::SyncChange(FROM_HERE, 1654 FROM_HERE,
1571 syncer::SyncChange::ACTION_ADD, 1655 syncer::SyncChange::ACTION_ADD,
1572 syncer::SyncData::CreateRemoteData( 1656 syncer::SyncData::CreateRemoteData(
1573 1, tracking_specifics, base::Time()))); 1657 1,
1658 tracking_specifics,
1659 base::Time(),
1660 syncer::AttachmentIdList(),
1661 syncer::AttachmentServiceProxyForTest::Create())));
1574 } 1662 }
1575 } 1663 }
1576 1664
1577 cache()->ProcessSyncChanges(FROM_HERE, initial_image_changes); 1665 cache()->ProcessSyncChanges(FROM_HERE, initial_image_changes);
1578 cache()->ProcessSyncChanges(FROM_HERE, initial_tracking_changes); 1666 cache()->ProcessSyncChanges(FROM_HERE, initial_tracking_changes);
1579 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1667 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1580 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1668 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1581 1669
1582 for (int i = 0; i < kFaviconBatchSize/2; ++i) { 1670 for (int i = 0; i < kFaviconBatchSize/2; ++i) {
1583 TestFaviconData test_data = BuildFaviconData(i); 1671 TestFaviconData test_data = BuildFaviconData(i);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1622 } 1710 }
1623 1711
1624 // Verify that orphaned favicon images don't result in creating invalid 1712 // Verify that orphaned favicon images don't result in creating invalid
1625 // favicon tracking data. 1713 // favicon tracking data.
1626 TEST_F(SyncFaviconCacheTest, PartialAssociationInfo) { 1714 TEST_F(SyncFaviconCacheTest, PartialAssociationInfo) {
1627 syncer::SyncDataList initial_image_data, initial_tracking_data; 1715 syncer::SyncDataList initial_image_data, initial_tracking_data;
1628 for (int i = 0; i < kFaviconBatchSize; ++i) { 1716 for (int i = 0; i < kFaviconBatchSize; ++i) {
1629 sync_pb::EntitySpecifics image_specifics; 1717 sync_pb::EntitySpecifics image_specifics;
1630 FillImageSpecifics(BuildFaviconData(i), 1718 FillImageSpecifics(BuildFaviconData(i),
1631 image_specifics.mutable_favicon_image()); 1719 image_specifics.mutable_favicon_image());
1632 initial_image_data.push_back( 1720 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1633 syncer::SyncData::CreateRemoteData(1, 1721 1,
1634 image_specifics, 1722 image_specifics,
1635 base::Time())); 1723 base::Time(),
1724 syncer::AttachmentIdList(),
1725 syncer::AttachmentServiceProxyForTest::Create()));
1636 image_specifics.mutable_favicon_image()->clear_favicon_web(); 1726 image_specifics.mutable_favicon_image()->clear_favicon_web();
1637 } 1727 }
1638 1728
1639 SetUpInitialSync(initial_image_data, initial_tracking_data); 1729 SetUpInitialSync(initial_image_data, initial_tracking_data);
1640 syncer::SyncChangeList change_list = processor()->GetAndResetChangeList(); 1730 syncer::SyncChangeList change_list = processor()->GetAndResetChangeList();
1641 EXPECT_TRUE(change_list.empty()); 1731 EXPECT_TRUE(change_list.empty());
1642 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount()); 1732 EXPECT_EQ((unsigned long)kFaviconBatchSize, GetFaviconCount());
1643 } 1733 }
1644 1734
1645 // Tests that we don't choke if a favicon visit node with a null visit time is 1735 // Tests that we don't choke if a favicon visit node with a null visit time is
1646 // present (see crbug.com/258196) and an update is made. 1736 // present (see crbug.com/258196) and an update is made.
1647 TEST_F(SyncFaviconCacheTest, NullFaviconVisitTime) { 1737 TEST_F(SyncFaviconCacheTest, NullFaviconVisitTime) {
1648 EXPECT_EQ(0U, GetFaviconCount()); 1738 EXPECT_EQ(0U, GetFaviconCount());
1649 1739
1650 syncer::SyncDataList initial_image_data, initial_tracking_data; 1740 syncer::SyncDataList initial_image_data, initial_tracking_data;
1651 std::vector<int> expected_icons; 1741 std::vector<int> expected_icons;
1652 for (int i = 0; i < kFaviconBatchSize; ++i) { 1742 for (int i = 0; i < kFaviconBatchSize; ++i) {
1653 expected_icons.push_back(i); 1743 expected_icons.push_back(i);
1654 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1744 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1655 FillImageSpecifics(BuildFaviconData(i), 1745 FillImageSpecifics(BuildFaviconData(i),
1656 image_specifics.mutable_favicon_image()); 1746 image_specifics.mutable_favicon_image());
1657 initial_image_data.push_back( 1747 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1658 syncer::SyncData::CreateRemoteData(1, 1748 1,
1659 image_specifics, 1749 image_specifics,
1660 base::Time())); 1750 base::Time(),
1751 syncer::AttachmentIdList(),
1752 syncer::AttachmentServiceProxyForTest::Create()));
1661 FillTrackingSpecifics(BuildFaviconData(i), 1753 FillTrackingSpecifics(BuildFaviconData(i),
1662 tracking_specifics.mutable_favicon_tracking()); 1754 tracking_specifics.mutable_favicon_tracking());
1663 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms( 1755 tracking_specifics.mutable_favicon_tracking()->set_last_visit_time_ms(
1664 syncer::TimeToProtoTime(base::Time())); 1756 syncer::TimeToProtoTime(base::Time()));
1665 initial_tracking_data.push_back( 1757 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1666 syncer::SyncData::CreateRemoteData(1, 1758 1,
1667 tracking_specifics, 1759 tracking_specifics,
1668 base::Time())); 1760 base::Time(),
1761 syncer::AttachmentIdList(),
1762 syncer::AttachmentServiceProxyForTest::Create()));
1669 } 1763 }
1670 1764
1671 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES, 1765 cache()->MergeDataAndStartSyncing(syncer::FAVICON_IMAGES,
1672 initial_image_data, 1766 initial_image_data,
1673 CreateAndPassProcessor(), 1767 CreateAndPassProcessor(),
1674 CreateAndPassSyncErrorFactory()); 1768 CreateAndPassSyncErrorFactory());
1675 ASSERT_EQ(0U, processor()->GetAndResetChangeList().size()); 1769 ASSERT_EQ(0U, processor()->GetAndResetChangeList().size());
1676 cache()->MergeDataAndStartSyncing(syncer::FAVICON_TRACKING, 1770 cache()->MergeDataAndStartSyncing(syncer::FAVICON_TRACKING,
1677 initial_tracking_data, 1771 initial_tracking_data,
1678 CreateAndPassProcessor(), 1772 CreateAndPassProcessor(),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1713 // future. 1807 // future.
1714 syncer::SyncDataList initial_image_data, initial_tracking_data; 1808 syncer::SyncDataList initial_image_data, initial_tracking_data;
1715 for (int i = 0; i < kMaxSyncFavicons; ++i) { 1809 for (int i = 0; i < kMaxSyncFavicons; ++i) {
1716 sync_pb::EntitySpecifics image_specifics, tracking_specifics; 1810 sync_pb::EntitySpecifics image_specifics, tracking_specifics;
1717 TestFaviconData test_data = BuildFaviconData(i); 1811 TestFaviconData test_data = BuildFaviconData(i);
1718 test_data.last_visit_time = 1812 test_data.last_visit_time =
1719 syncer::TimeToProtoTime( 1813 syncer::TimeToProtoTime(
1720 base::Time::Now() + base::TimeDelta::FromMinutes(kClockSkew)); 1814 base::Time::Now() + base::TimeDelta::FromMinutes(kClockSkew));
1721 FillImageSpecifics(test_data, 1815 FillImageSpecifics(test_data,
1722 image_specifics.mutable_favicon_image()); 1816 image_specifics.mutable_favicon_image());
1723 initial_image_data.push_back( 1817 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1724 syncer::SyncData::CreateRemoteData(1, 1818 1,
1725 image_specifics, 1819 image_specifics,
1726 base::Time())); 1820 base::Time(),
1821 syncer::AttachmentIdList(),
1822 syncer::AttachmentServiceProxyForTest::Create()));
1727 FillTrackingSpecifics(test_data, 1823 FillTrackingSpecifics(test_data,
1728 tracking_specifics.mutable_favicon_tracking()); 1824 tracking_specifics.mutable_favicon_tracking());
1729 initial_tracking_data.push_back( 1825 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1730 syncer::SyncData::CreateRemoteData(1, 1826 1,
1731 tracking_specifics, 1827 tracking_specifics,
1732 base::Time())); 1828 base::Time(),
1829 syncer::AttachmentIdList(),
1830 syncer::AttachmentServiceProxyForTest::Create()));
1733 } 1831 }
1734 SetUpInitialSync(initial_image_data, initial_tracking_data); 1832 SetUpInitialSync(initial_image_data, initial_tracking_data);
1735 1833
1736 // Visit some new favicons with local time, which will be expired as they 1834 // Visit some new favicons with local time, which will be expired as they
1737 // are added. 1835 // are added.
1738 EXPECT_EQ(0U, GetTaskCount()); 1836 EXPECT_EQ(0U, GetTaskCount());
1739 for (int i = 0; i < kClockSkew; ++i) { 1837 for (int i = 0; i < kClockSkew; ++i) {
1740 TestFaviconData test_data = BuildFaviconData(i + kMaxSyncFavicons); 1838 TestFaviconData test_data = BuildFaviconData(i + kMaxSyncFavicons);
1741 cache()->OnFaviconVisited(test_data.page_url, test_data.icon_url); 1839 cache()->OnFaviconVisited(test_data.page_url, test_data.icon_url);
1742 OnCustomFaviconDataAvailable(test_data); 1840 OnCustomFaviconDataAvailable(test_data);
(...skipping 29 matching lines...) Expand all
1772 } 1870 }
1773 1871
1774 syncer::SyncDataList initial_image_data, initial_tracking_data; 1872 syncer::SyncDataList initial_image_data, initial_tracking_data;
1775 // Then sync with enough favicons such that the tracking info is over the max 1873 // Then sync with enough favicons such that the tracking info is over the max
1776 // after merge completes. 1874 // after merge completes.
1777 for (int i = 0; i < kMaxSyncFavicons; ++i) { 1875 for (int i = 0; i < kMaxSyncFavicons; ++i) {
1778 sync_pb::EntitySpecifics image_specifics; 1876 sync_pb::EntitySpecifics image_specifics;
1779 // Push the images forward by 5, to match the unsynced favicons. 1877 // Push the images forward by 5, to match the unsynced favicons.
1780 FillImageSpecifics(BuildFaviconData(i + 5), 1878 FillImageSpecifics(BuildFaviconData(i + 5),
1781 image_specifics.mutable_favicon_image()); 1879 image_specifics.mutable_favicon_image());
1782 initial_image_data.push_back( 1880 initial_image_data.push_back(syncer::SyncData::CreateRemoteData(
1783 syncer::SyncData::CreateRemoteData(1, 1881 1,
1784 image_specifics, 1882 image_specifics,
1785 base::Time())); 1883 base::Time(),
1884 syncer::AttachmentIdList(),
1885 syncer::AttachmentServiceProxyForTest::Create()));
1786 1886
1787 sync_pb::EntitySpecifics tracking_specifics; 1887 sync_pb::EntitySpecifics tracking_specifics;
1788 FillTrackingSpecifics(BuildFaviconData(i), 1888 FillTrackingSpecifics(BuildFaviconData(i),
1789 tracking_specifics.mutable_favicon_tracking()); 1889 tracking_specifics.mutable_favicon_tracking());
1790 initial_tracking_data.push_back( 1890 initial_tracking_data.push_back(syncer::SyncData::CreateRemoteData(
1791 syncer::SyncData::CreateRemoteData(1, 1891 1,
1792 tracking_specifics, 1892 tracking_specifics,
1793 base::Time())); 1893 base::Time(),
1894 syncer::AttachmentIdList(),
1895 syncer::AttachmentServiceProxyForTest::Create()));
1794 } 1896 }
1795 SetUpInitialSync(initial_image_data, initial_tracking_data); 1897 SetUpInitialSync(initial_image_data, initial_tracking_data);
1796 1898
1797 // The local unsynced tracking info should be dropped, but not deleted. 1899 // The local unsynced tracking info should be dropped, but not deleted.
1798 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size()); 1900 EXPECT_EQ(0U, processor()->GetAndResetChangeList().size());
1799 1901
1800 // Because the image and tracking data don't overlap, the total number of 1902 // Because the image and tracking data don't overlap, the total number of
1801 // favicons is still over the limit. 1903 // favicons is still over the limit.
1802 EXPECT_EQ((unsigned long)kMaxSyncFavicons + 5, GetFaviconCount()); 1904 EXPECT_EQ((unsigned long)kMaxSyncFavicons + 5, GetFaviconCount());
1803 1905
(...skipping 26 matching lines...) Expand all
1830 EXPECT_EQ(changes[4].change_type(), syncer::SyncChange::ACTION_ADD); 1932 EXPECT_EQ(changes[4].change_type(), syncer::SyncChange::ACTION_ADD);
1831 EXPECT_EQ(changes[4].sync_data().GetDataType(), syncer::FAVICON_TRACKING); 1933 EXPECT_EQ(changes[4].sync_data().GetDataType(), syncer::FAVICON_TRACKING);
1832 EXPECT_EQ(kMaxSyncFavicons, GetFaviconId(changes[4])); 1934 EXPECT_EQ(kMaxSyncFavicons, GetFaviconId(changes[4]));
1833 // Expire tracking for favicon[0]. 1935 // Expire tracking for favicon[0].
1834 EXPECT_EQ(changes[5].change_type(), syncer::SyncChange::ACTION_DELETE); 1936 EXPECT_EQ(changes[5].change_type(), syncer::SyncChange::ACTION_DELETE);
1835 EXPECT_EQ(changes[5].sync_data().GetDataType(), syncer::FAVICON_TRACKING); 1937 EXPECT_EQ(changes[5].sync_data().GetDataType(), syncer::FAVICON_TRACKING);
1836 EXPECT_EQ(0, GetFaviconId(changes[5])); 1938 EXPECT_EQ(0, GetFaviconId(changes[5]));
1837 } 1939 }
1838 1940
1839 } // namespace browser_sync 1941 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/prefs/synced_pref_change_registrar_browsertest.cc ('k') | chrome/browser/sync/glue/generic_change_processor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698