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

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

Issue 387983004: sync: Support non-blocking initial sync in proto (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + fix comment Created 6 years, 5 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
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/sessions/nudge_tracker.h" 8 #include "sync/sessions/nudge_tracker.h"
9 #include "sync/test/mock_invalidation.h" 9 #include "sync/test/mock_invalidation.h"
10 #include "sync/test/mock_invalidation_tracker.h" 10 #include "sync/test/mock_invalidation_tracker.h"
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 130
131 // Neither local nudges nor refresh requests will override it. 131 // Neither local nudges nor refresh requests will override it.
132 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS)); 132 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
133 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, 133 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
134 nudge_tracker_.GetLegacySource()); 134 nudge_tracker_.GetLegacySource());
135 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS)); 135 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(TYPED_URLS));
136 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION, 136 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
137 nudge_tracker_.GetLegacySource()); 137 nudge_tracker_.GetLegacySource());
138 } 138 }
139 139
140 TEST_F(NudgeTrackerTest, SourcePriority_InitialSyncRequest) {
141 nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
142
143 // For lack of a better source, we describe an initial sync request as having
144 // source DATATYPE_REFRESH.
145 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
146 nudge_tracker_.GetLegacySource());
147
148 // This should never happen in practice. But, if it did, we'd want the
149 // initial sync required to keep the source set to DATATYPE_REFRESH.
150 nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
151 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
152 nudge_tracker_.GetLegacySource());
153
154 // It should be safe to let NOTIFICATIONs override it.
155 nudge_tracker_.RecordRemoteInvalidation(BOOKMARKS,
156 BuildInvalidation(1, "hint"));
157 EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
158 nudge_tracker_.GetLegacySource());
159 }
160
140 // Verifies the management of invalidation hints and GU trigger fields. 161 // Verifies the management of invalidation hints and GU trigger fields.
141 TEST_F(NudgeTrackerTest, HintCoalescing) { 162 TEST_F(NudgeTrackerTest, HintCoalescing) {
142 // Easy case: record one hint. 163 // Easy case: record one hint.
143 { 164 {
144 nudge_tracker_.RecordRemoteInvalidation(BOOKMARKS, 165 nudge_tracker_.RecordRemoteInvalidation(BOOKMARKS,
145 BuildInvalidation(1, "bm_hint_1")); 166 BuildInvalidation(1, "bm_hint_1"));
146 167
147 sync_pb::GetUpdateTriggers gu_trigger; 168 sync_pb::GetUpdateTriggers gu_trigger;
148 nudge_tracker_.FillProtoMessage(BOOKMARKS, &gu_trigger); 169 nudge_tracker_.FillProtoMessage(BOOKMARKS, &gu_trigger);
149 ASSERT_EQ(1, gu_trigger.notification_hint_size()); 170 ASSERT_EQ(1, gu_trigger.notification_hint_size());
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 358
338 // Record a successful sync cycle. Verify the count is cleared. 359 // Record a successful sync cycle. Verify the count is cleared.
339 nudge_tracker_.RecordSuccessfulSyncCycle(); 360 nudge_tracker_.RecordSuccessfulSyncCycle();
340 EXPECT_EQ(0, ProtoRefreshRequestedCount(SESSIONS)); 361 EXPECT_EQ(0, ProtoRefreshRequestedCount(SESSIONS));
341 } 362 }
342 363
343 // Basic tests for the IsSyncRequired() flag. 364 // Basic tests for the IsSyncRequired() flag.
344 TEST_F(NudgeTrackerTest, IsSyncRequired) { 365 TEST_F(NudgeTrackerTest, IsSyncRequired) {
345 EXPECT_FALSE(nudge_tracker_.IsSyncRequired()); 366 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
346 367
368 // Initial sync request.
369 nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
370 EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
371 nudge_tracker_.RecordSuccessfulSyncCycle();
372 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
373
347 // Local changes. 374 // Local changes.
348 nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)); 375 nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS));
349 EXPECT_TRUE(nudge_tracker_.IsSyncRequired()); 376 EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
350 nudge_tracker_.RecordSuccessfulSyncCycle(); 377 nudge_tracker_.RecordSuccessfulSyncCycle();
351 EXPECT_FALSE(nudge_tracker_.IsSyncRequired()); 378 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
352 379
353 // Refresh requests. 380 // Refresh requests.
354 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(SESSIONS)); 381 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(SESSIONS));
355 EXPECT_TRUE(nudge_tracker_.IsSyncRequired()); 382 EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
356 nudge_tracker_.RecordSuccessfulSyncCycle(); 383 nudge_tracker_.RecordSuccessfulSyncCycle();
357 EXPECT_FALSE(nudge_tracker_.IsSyncRequired()); 384 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
358 385
359 // Invalidations. 386 // Invalidations.
360 nudge_tracker_.RecordRemoteInvalidation(PREFERENCES, 387 nudge_tracker_.RecordRemoteInvalidation(PREFERENCES,
361 BuildInvalidation(1, "hint")); 388 BuildInvalidation(1, "hint"));
362 EXPECT_TRUE(nudge_tracker_.IsSyncRequired()); 389 EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
363 nudge_tracker_.RecordSuccessfulSyncCycle(); 390 nudge_tracker_.RecordSuccessfulSyncCycle();
364 EXPECT_FALSE(nudge_tracker_.IsSyncRequired()); 391 EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
365 } 392 }
366 393
367 // Basic tests for the IsGetUpdatesRequired() flag. 394 // Basic tests for the IsGetUpdatesRequired() flag.
368 TEST_F(NudgeTrackerTest, IsGetUpdatesRequired) { 395 TEST_F(NudgeTrackerTest, IsGetUpdatesRequired) {
369 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired()); 396 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
370 397
398 // Initial sync request.
399 nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
400 EXPECT_TRUE(nudge_tracker_.IsGetUpdatesRequired());
401 nudge_tracker_.RecordSuccessfulSyncCycle();
402 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
403
371 // Local changes. 404 // Local changes.
372 nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS)); 405 nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS));
373 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired()); 406 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
374 nudge_tracker_.RecordSuccessfulSyncCycle(); 407 nudge_tracker_.RecordSuccessfulSyncCycle();
375 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired()); 408 EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
376 409
377 // Refresh requests. 410 // Refresh requests.
378 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(SESSIONS)); 411 nudge_tracker_.RecordLocalRefreshRequest(ModelTypeSet(SESSIONS));
379 EXPECT_TRUE(nudge_tracker_.IsGetUpdatesRequired()); 412 EXPECT_TRUE(nudge_tracker_.IsGetUpdatesRequired());
380 nudge_tracker_.RecordSuccessfulSyncCycle(); 413 nudge_tracker_.RecordSuccessfulSyncCycle();
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 EXPECT_TRUE(IsInvalidationAcknowledged(inv2_id)); 884 EXPECT_TRUE(IsInvalidationAcknowledged(inv2_id));
852 EXPECT_TRUE(IsInvalidationAcknowledged(inv3_id)); 885 EXPECT_TRUE(IsInvalidationAcknowledged(inv3_id));
853 EXPECT_TRUE(IsInvalidationAcknowledged(inv4_id)); 886 EXPECT_TRUE(IsInvalidationAcknowledged(inv4_id));
854 EXPECT_TRUE(IsInvalidationAcknowledged(inv5_id)); 887 EXPECT_TRUE(IsInvalidationAcknowledged(inv5_id));
855 888
856 EXPECT_TRUE(AllInvalidationsAccountedFor()); 889 EXPECT_TRUE(AllInvalidationsAccountedFor());
857 } 890 }
858 891
859 } // namespace sessions 892 } // namespace sessions
860 } // namespace syncer 893 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698