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/engine_impl/get_updates_processor.h" | 5 #include "components/sync/engine_impl/get_updates_processor.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
| 9 #include <memory> |
9 #include <set> | 10 #include <set> |
10 #include <string> | 11 #include <string> |
| 12 #include <utility> |
11 | 13 |
12 #include "base/macros.h" | 14 #include "base/macros.h" |
13 #include "base/memory/ptr_util.h" | 15 #include "base/memory/ptr_util.h" |
14 #include "base/message_loop/message_loop.h" | 16 #include "base/message_loop/message_loop.h" |
15 #include "components/sync/base/model_type_test_util.h" | 17 #include "components/sync/base/model_type_test_util.h" |
16 #include "components/sync/engine_impl/cycle/debug_info_getter.h" | 18 #include "components/sync/engine_impl/cycle/debug_info_getter.h" |
17 #include "components/sync/engine_impl/cycle/mock_debug_info_getter.h" | 19 #include "components/sync/engine_impl/cycle/mock_debug_info_getter.h" |
18 #include "components/sync/engine_impl/cycle/nudge_tracker.h" | 20 #include "components/sync/engine_impl/cycle/nudge_tracker.h" |
19 #include "components/sync/engine_impl/cycle/status_controller.h" | 21 #include "components/sync/engine_impl/cycle/status_controller.h" |
20 #include "components/sync/engine_impl/get_updates_delegate.h" | 22 #include "components/sync/engine_impl/get_updates_delegate.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); | 108 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); |
107 std::unique_ptr<GetUpdatesProcessor> processor( | 109 std::unique_ptr<GetUpdatesProcessor> processor( |
108 BuildGetUpdatesProcessor(normal_delegate)); | 110 BuildGetUpdatesProcessor(normal_delegate)); |
109 processor->PrepareGetUpdates(enabled_types(), &message); | 111 processor->PrepareGetUpdates(enabled_types(), &message); |
110 | 112 |
111 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 113 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
112 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::LOCAL, | 114 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::LOCAL, |
113 gu_msg.caller_info().source()); | 115 gu_msg.caller_info().source()); |
114 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); | 116 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); |
115 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 117 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
116 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 118 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
117 gu_msg.from_progress_marker(i).data_type_id()); | 119 gu_msg.from_progress_marker(i).data_type_id()); |
118 | 120 |
119 const sync_pb::DataTypeProgressMarker& progress_marker = | 121 const sync_pb::DataTypeProgressMarker& progress_marker = |
120 gu_msg.from_progress_marker(i); | 122 gu_msg.from_progress_marker(i); |
121 const sync_pb::GetUpdateTriggers& gu_trigger = | 123 const sync_pb::GetUpdateTriggers& gu_trigger = |
122 progress_marker.get_update_triggers(); | 124 progress_marker.get_update_triggers(); |
123 | 125 |
124 // We perform some basic tests of GU trigger and source fields here. The | 126 // We perform some basic tests of GU trigger and source fields here. The |
125 // more complicated scenarios are tested by the NudgeTracker tests. | 127 // more complicated scenarios are tested by the NudgeTracker tests. |
126 if (type == BOOKMARKS) { | 128 if (type == BOOKMARKS) { |
(...skipping 27 matching lines...) Expand all Loading... |
154 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); | 156 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); |
155 std::unique_ptr<GetUpdatesProcessor> processor( | 157 std::unique_ptr<GetUpdatesProcessor> processor( |
156 BuildGetUpdatesProcessor(normal_delegate)); | 158 BuildGetUpdatesProcessor(normal_delegate)); |
157 processor->PrepareGetUpdates(enabled_types(), &message); | 159 processor->PrepareGetUpdates(enabled_types(), &message); |
158 | 160 |
159 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 161 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
160 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, | 162 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, |
161 gu_msg.caller_info().source()); | 163 gu_msg.caller_info().source()); |
162 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); | 164 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); |
163 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 165 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
164 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 166 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
165 gu_msg.from_progress_marker(i).data_type_id()); | 167 gu_msg.from_progress_marker(i).data_type_id()); |
166 | 168 |
167 const sync_pb::DataTypeProgressMarker& progress_marker = | 169 const sync_pb::DataTypeProgressMarker& progress_marker = |
168 gu_msg.from_progress_marker(i); | 170 gu_msg.from_progress_marker(i); |
169 const sync_pb::GetUpdateTriggers& gu_trigger = | 171 const sync_pb::GetUpdateTriggers& gu_trigger = |
170 progress_marker.get_update_triggers(); | 172 progress_marker.get_update_triggers(); |
171 | 173 |
172 // We perform some basic tests of GU trigger and source fields here. The | 174 // We perform some basic tests of GU trigger and source fields here. The |
173 // more complicated scenarios are tested by the NudgeTracker tests. | 175 // more complicated scenarios are tested by the NudgeTracker tests. |
174 if (notified_types.Has(type)) { | 176 if (notified_types.Has(type)) { |
(...skipping 19 matching lines...) Expand all Loading... |
194 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); | 196 NormalGetUpdatesDelegate normal_delegate(nudge_tracker); |
195 std::unique_ptr<GetUpdatesProcessor> processor( | 197 std::unique_ptr<GetUpdatesProcessor> processor( |
196 BuildGetUpdatesProcessor(normal_delegate)); | 198 BuildGetUpdatesProcessor(normal_delegate)); |
197 processor->PrepareGetUpdates(enabled_types(), &message); | 199 processor->PrepareGetUpdates(enabled_types(), &message); |
198 | 200 |
199 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 201 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
200 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH, | 202 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH, |
201 gu_msg.caller_info().source()); | 203 gu_msg.caller_info().source()); |
202 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); | 204 EXPECT_EQ(sync_pb::SyncEnums::GU_TRIGGER, gu_msg.get_updates_origin()); |
203 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 205 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
204 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 206 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
205 gu_msg.from_progress_marker(i).data_type_id()); | 207 gu_msg.from_progress_marker(i).data_type_id()); |
206 | 208 |
207 const sync_pb::DataTypeProgressMarker& progress_marker = | 209 const sync_pb::DataTypeProgressMarker& progress_marker = |
208 gu_msg.from_progress_marker(i); | 210 gu_msg.from_progress_marker(i); |
209 const sync_pb::GetUpdateTriggers& gu_trigger = | 211 const sync_pb::GetUpdateTriggers& gu_trigger = |
210 progress_marker.get_update_triggers(); | 212 progress_marker.get_update_triggers(); |
211 | 213 |
212 // We perform some basic tests of GU trigger and source fields here. The | 214 // We perform some basic tests of GU trigger and source fields here. The |
213 // more complicated scenarios are tested by the NudgeTracker tests. | 215 // more complicated scenarios are tested by the NudgeTracker tests. |
214 if (initial_sync_types.Has(type)) { | 216 if (initial_sync_types.Has(type)) { |
(...skipping 13 matching lines...) Expand all Loading... |
228 BuildGetUpdatesProcessor(configure_delegate)); | 230 BuildGetUpdatesProcessor(configure_delegate)); |
229 processor->PrepareGetUpdates(enabled_types(), &message); | 231 processor->PrepareGetUpdates(enabled_types(), &message); |
230 | 232 |
231 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 233 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
232 EXPECT_EQ(sync_pb::SyncEnums::RECONFIGURATION, gu_msg.get_updates_origin()); | 234 EXPECT_EQ(sync_pb::SyncEnums::RECONFIGURATION, gu_msg.get_updates_origin()); |
233 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, | 235 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RECONFIGURATION, |
234 gu_msg.caller_info().source()); | 236 gu_msg.caller_info().source()); |
235 | 237 |
236 ModelTypeSet progress_types; | 238 ModelTypeSet progress_types; |
237 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 239 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
238 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 240 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
239 gu_msg.from_progress_marker(i).data_type_id()); | 241 gu_msg.from_progress_marker(i).data_type_id()); |
240 progress_types.Put(type); | 242 progress_types.Put(type); |
241 } | 243 } |
242 EXPECT_EQ(enabled_types(), progress_types); | 244 EXPECT_EQ(enabled_types(), progress_types); |
243 } | 245 } |
244 | 246 |
245 TEST_F(GetUpdatesProcessorTest, PollTest) { | 247 TEST_F(GetUpdatesProcessorTest, PollTest) { |
246 sync_pb::ClientToServerMessage message; | 248 sync_pb::ClientToServerMessage message; |
247 PollGetUpdatesDelegate poll_delegate; | 249 PollGetUpdatesDelegate poll_delegate; |
248 std::unique_ptr<GetUpdatesProcessor> processor( | 250 std::unique_ptr<GetUpdatesProcessor> processor( |
249 BuildGetUpdatesProcessor(poll_delegate)); | 251 BuildGetUpdatesProcessor(poll_delegate)); |
250 processor->PrepareGetUpdates(enabled_types(), &message); | 252 processor->PrepareGetUpdates(enabled_types(), &message); |
251 | 253 |
252 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 254 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
253 EXPECT_EQ(sync_pb::SyncEnums::PERIODIC, gu_msg.get_updates_origin()); | 255 EXPECT_EQ(sync_pb::SyncEnums::PERIODIC, gu_msg.get_updates_origin()); |
254 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::PERIODIC, | 256 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::PERIODIC, |
255 gu_msg.caller_info().source()); | 257 gu_msg.caller_info().source()); |
256 | 258 |
257 ModelTypeSet progress_types; | 259 ModelTypeSet progress_types; |
258 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 260 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
259 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 261 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
260 gu_msg.from_progress_marker(i).data_type_id()); | 262 gu_msg.from_progress_marker(i).data_type_id()); |
261 progress_types.Put(type); | 263 progress_types.Put(type); |
262 } | 264 } |
263 EXPECT_EQ(enabled_types(), progress_types); | 265 EXPECT_EQ(enabled_types(), progress_types); |
264 } | 266 } |
265 | 267 |
266 TEST_F(GetUpdatesProcessorTest, RetryTest) { | 268 TEST_F(GetUpdatesProcessorTest, RetryTest) { |
267 NudgeTracker nudge_tracker; | 269 NudgeTracker nudge_tracker; |
268 | 270 |
269 // Schedule a retry. | 271 // Schedule a retry. |
(...skipping 10 matching lines...) Expand all Loading... |
280 processor->PrepareGetUpdates(enabled_types(), &message); | 282 processor->PrepareGetUpdates(enabled_types(), &message); |
281 | 283 |
282 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); | 284 const sync_pb::GetUpdatesMessage& gu_msg = message.get_updates(); |
283 EXPECT_EQ(sync_pb::SyncEnums::RETRY, gu_msg.get_updates_origin()); | 285 EXPECT_EQ(sync_pb::SyncEnums::RETRY, gu_msg.get_updates_origin()); |
284 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RETRY, | 286 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::RETRY, |
285 gu_msg.caller_info().source()); | 287 gu_msg.caller_info().source()); |
286 EXPECT_TRUE(gu_msg.is_retry()); | 288 EXPECT_TRUE(gu_msg.is_retry()); |
287 | 289 |
288 ModelTypeSet progress_types; | 290 ModelTypeSet progress_types; |
289 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { | 291 for (int i = 0; i < gu_msg.from_progress_marker_size(); ++i) { |
290 syncer::ModelType type = GetModelTypeFromSpecificsFieldNumber( | 292 ModelType type = GetModelTypeFromSpecificsFieldNumber( |
291 gu_msg.from_progress_marker(i).data_type_id()); | 293 gu_msg.from_progress_marker(i).data_type_id()); |
292 progress_types.Put(type); | 294 progress_types.Put(type); |
293 } | 295 } |
294 EXPECT_EQ(enabled_types(), progress_types); | 296 EXPECT_EQ(enabled_types(), progress_types); |
295 } | 297 } |
296 | 298 |
297 TEST_F(GetUpdatesProcessorTest, NudgeWithRetryTest) { | 299 TEST_F(GetUpdatesProcessorTest, NudgeWithRetryTest) { |
298 NudgeTracker nudge_tracker; | 300 NudgeTracker nudge_tracker; |
299 | 301 |
300 // Schedule a retry. | 302 // Schedule a retry. |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 TEST_F(DownloadUpdatesDebugInfoTest, VerifyCopyOverwrites) { | 493 TEST_F(DownloadUpdatesDebugInfoTest, VerifyCopyOverwrites) { |
492 sync_pb::DebugInfo debug_info; | 494 sync_pb::DebugInfo debug_info; |
493 AddDebugEvent(); | 495 AddDebugEvent(); |
494 GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info); | 496 GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info); |
495 EXPECT_EQ(1, debug_info.events_size()); | 497 EXPECT_EQ(1, debug_info.events_size()); |
496 GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info); | 498 GetUpdatesProcessor::CopyClientDebugInfo(debug_info_getter(), &debug_info); |
497 EXPECT_EQ(1, debug_info.events_size()); | 499 EXPECT_EQ(1, debug_info.events_size()); |
498 } | 500 } |
499 | 501 |
500 } // namespace syncer | 502 } // namespace syncer |
OLD | NEW |