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()); |