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

Side by Side Diff: sync/sessions/nudge_tracker_unittest.cc

Issue 171813013: sync: Merge GU retry logic into normal GU (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « sync/sessions/nudge_tracker.cc ('k') | sync/sessions/test_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "base/run_loop.h" 6 #include "base/run_loop.h"
7 #include "sync/internal_api/public/base/model_type_test_util.h" 7 #include "sync/internal_api/public/base/model_type_test_util.h"
8 #include "sync/notifier/invalidation_util.h" 8 #include "sync/notifier/invalidation_util.h"
9 #include "sync/notifier/mock_ack_handler.h" 9 #include "sync/notifier/mock_ack_handler.h"
10 #include "sync/notifier/object_id_invalidation_map.h" 10 #include "sync/notifier/object_id_invalidation_map.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 NudgeTracker nudge_tracker_; 76 NudgeTracker nudge_tracker_;
77 }; 77 };
78 78
79 // Exercise an empty NudgeTracker. 79 // Exercise an empty NudgeTracker.
80 // Use with valgrind to detect uninitialized members. 80 // Use with valgrind to detect uninitialized members.
81 TEST_F(NudgeTrackerTest, EmptyNudgeTracker) { 81 TEST_F(NudgeTrackerTest, EmptyNudgeTracker) {
82 // Now we're at the normal, "idle" state. 82 // Now we're at the normal, "idle" state.
83 EXPECT_FALSE(nudge_tracker_.IsSyncRequired()); 83 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
84 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired()); 84 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
85 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::UNKNOWN, 85 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::UNKNOWN,
86 nudge_tracker_.updates_source()); 86 nudge_tracker_.GetLegacySource());
87 87
88 sync_pb::GetUpdateTriggers gu_trigger; 88 sync_pb::GetUpdateTriggers gu_trigger;
89 nudge_tracker_.FillProtoMessage(BOOKMARKS, &gu_trigger); 89 nudge_tracker_.FillProtoMessage(BOOKMARKS, &gu_trigger);
90 90
91 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::UNKNOWN, 91 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::UNKNOWN,
92 nudge_tracker_.updates_source()); 92 nudge_tracker_.GetLegacySource());
93 } 93 }
94 94
95 // Verify that nudges override each other based on a priority order. 95 // Verify that nudges override each other based on a priority order.
96 // LOCAL < DATATYPE_REFRESH < NOTIFICATION 96 // RETRY < LOCAL < DATATYPE_REFRESH < NOTIFICATION
97 TEST_F(NudgeTrackerTest, SourcePriorities) { 97 TEST_F(NudgeTrackerTest, SourcePriorities) {
98 // Start with a retry request.
99 const base::TimeTicks t0 = base::TimeTicks::FromInternalValue(1234);
100 const base::TimeTicks t1 = t0 + base::TimeDelta::FromSeconds(10);
101 nudge_tracker_.SetNextRetryTime(t0);
102 nudge_tracker_.SetSyncCycleStartTime(t1);
103 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RETRY,
104 nudge_tracker_.GetLegacySource());
105
98 // Track a local nudge. 106 // Track a local nudge.
99 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS)); 107 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
100 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::LOCAL, 108 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::LOCAL,
101 nudge_tracker_.updates_source()); 109 nudge_tracker_.GetLegacySource());
102 110
103 // A refresh request will override it. 111 // A refresh request will override it.
104 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS)); 112 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS));
105 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH, 113 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
106 nudge_tracker_.updates_source()); 114 nudge_tracker_.GetLegacySource());
107 115
108 // Another local nudge will not be enough to change it. 116 // Another local nudge will not be enough to change it.
109 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS)); 117 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
110 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH, 118 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
111 nudge_tracker_.updates_source()); 119 nudge_tracker_.GetLegacySource());
112 120
113 // An invalidation will override the refresh request source. 121 // An invalidation will override the refresh request source.
114 ObjectIdInvalidationMap invalidation_map = 122 ObjectIdInvalidationMap invalidation_map =
115 BuildInvalidationMap(PREFERENCES, 1, "hint"); 123 BuildInvalidationMap(PREFERENCES, 1, "hint");
116 nudge_tracker_.RecordRemoteInvalidation(invalidation_map); 124 nudge_tracker_.RecordRemoteInvalidation(invalidation_map);
117 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, 125 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
118 nudge_tracker_.updates_source()); 126 nudge_tracker_.GetLegacySource());
119 127
120 // Neither local nudges nor refresh requests will override it. 128 // Neither local nudges nor refresh requests will override it.
121 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS)); 129 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
122 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, 130 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
123 nudge_tracker_.updates_source()); 131 nudge_tracker_.GetLegacySource());
124 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS)); 132 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS));
125 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, 133 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
126 nudge_tracker_.updates_source()); 134 nudge_tracker_.GetLegacySource());
127 } 135 }
128 136
129 // Verifies the management of invalidation hints and GU trigger fields. 137 // Verifies the management of invalidation hints and GU trigger fields.
130 TEST_F(NudgeTrackerTest, HintCoalescing) { 138 TEST_F(NudgeTrackerTest, HintCoalescing) {
131 // Easy case: record one hint. 139 // Easy case: record one hint.
132 { 140 {
133 ObjectIdInvalidationMap invalidation_map = 141 ObjectIdInvalidationMap invalidation_map =
134 BuildInvalidationMap(BOOKMARKS, 1, "bm_hint_1"); 142 BuildInvalidationMap(BOOKMARKS, 1, "bm_hint_1");
135 nudge_tracker_.RecordRemoteInvalidation(invalidation_map); 143 nudge_tracker_.RecordRemoteInvalidation(invalidation_map);
136 144
(...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 EXPECT_TRUE(IsInvalidationAcknowledged(inv2)); 907 EXPECT_TRUE(IsInvalidationAcknowledged(inv2));
900 EXPECT_TRUE(IsInvalidationAcknowledged(inv3)); 908 EXPECT_TRUE(IsInvalidationAcknowledged(inv3));
901 EXPECT_TRUE(IsInvalidationAcknowledged(inv4)); 909 EXPECT_TRUE(IsInvalidationAcknowledged(inv4));
902 EXPECT_TRUE(IsInvalidationAcknowledged(inv5)); 910 EXPECT_TRUE(IsInvalidationAcknowledged(inv5));
903 911
904 EXPECT_TRUE(AllInvalidationsAccountedFor()); 912 EXPECT_TRUE(AllInvalidationsAccountedFor());
905 } 913 }
906 914
907 } // namespace sessions 915 } // namespace sessions
908 } // namespace syncer 916 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/sessions/nudge_tracker.cc ('k') | sync/sessions/test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698