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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: sync/sessions/nudge_tracker_unittest.cc
diff --git a/sync/sessions/nudge_tracker_unittest.cc b/sync/sessions/nudge_tracker_unittest.cc
index 4599e69499cd0aa29f60af115bef98e676624e04..0b00d5e19c470b5d86aa64c11a4eb6711d43369a 100644
--- a/sync/sessions/nudge_tracker_unittest.cc
+++ b/sync/sessions/nudge_tracker_unittest.cc
@@ -137,6 +137,27 @@ TEST_F(NudgeTrackerTest, SourcePriorities) {
nudge_tracker_.GetLegacySource());
}
+TEST_F(NudgeTrackerTest, SourcePriority_InitialSyncRequest) {
+ nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
+
+ // For lack of a better source, we describe an initial sync request as having
+ // source DATATYPE_REFRESH.
+ EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
+ nudge_tracker_.GetLegacySource());
+
+ // This should never happen in practice. But, if it did, we'd want the
+ // initial sync required to keep the source set to DATATYPE_REFRESH.
+ nudge_tracker_.RecordLocalChange(ModelTypeSet(BOOKMARKS));
+ EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::DATATYPE_REFRESH,
+ nudge_tracker_.GetLegacySource());
+
+ // It should be safe to let NOTIFICATIONs override it.
+ nudge_tracker_.RecordRemoteInvalidation(BOOKMARKS,
+ BuildInvalidation(1, "hint"));
+ EXPECT_EQ(sync_pb::GetUpdatesCallerInfo::NOTIFICATION,
+ nudge_tracker_.GetLegacySource());
+}
+
// Verifies the management of invalidation hints and GU trigger fields.
TEST_F(NudgeTrackerTest, HintCoalescing) {
// Easy case: record one hint.
@@ -344,6 +365,12 @@ TEST_F(NudgeTrackerTest, WriteRefreshRequestedTypesToProto) {
TEST_F(NudgeTrackerTest, IsSyncRequired) {
EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
+ // Initial sync request.
+ nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
+ EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
+ nudge_tracker_.RecordSuccessfulSyncCycle();
+ EXPECT_FALSE(nudge_tracker_.IsSyncRequired());
+
// Local changes.
nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS));
EXPECT_TRUE(nudge_tracker_.IsSyncRequired());
@@ -368,6 +395,12 @@ TEST_F(NudgeTrackerTest, IsSyncRequired) {
TEST_F(NudgeTrackerTest, IsGetUpdatesRequired) {
EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
+ // Initial sync request.
+ nudge_tracker_.RecordInitialSyncRequired(BOOKMARKS);
+ EXPECT_TRUE(nudge_tracker_.IsGetUpdatesRequired());
+ nudge_tracker_.RecordSuccessfulSyncCycle();
+ EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());
+
// Local changes.
nudge_tracker_.RecordLocalChange(ModelTypeSet(SESSIONS));
EXPECT_FALSE(nudge_tracker_.IsGetUpdatesRequired());

Powered by Google App Engine
This is Rietveld 408576698