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

Unified Diff: sync/internal_api/syncapi_unittest.cc

Issue 10701085: Revert "Revert 142517 - [Sync] Refactor sync configuration logic." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add test Created 8 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/internal_api/syncapi_unittest.cc
diff --git a/sync/internal_api/syncapi_unittest.cc b/sync/internal_api/syncapi_unittest.cc
index 0ae11dc37b8a99cfc3a47e06794a2b09056b40f0..b22b58585c2c95cbe4a4649b64f34590ececabce 100644
--- a/sync/internal_api/syncapi_unittest.cc
+++ b/sync/internal_api/syncapi_unittest.cc
@@ -2567,4 +2567,46 @@ TEST_F(SyncManagerTest, ConfigurationRetry) {
EXPECT_EQ(new_routing_info, params.routing_info);
}
+// Test that PurgePartiallySyncedTypes purges only those types that don't
+// have empty progress marker and don't have initial sync ended set.
+TEST_F(SyncManagerTest, PurgePartiallySyncedTypes) {
+ UserShare* share = sync_manager_.GetUserShare();
+
+ // Set Nigori and Bookmarks to be partial types.
+ sync_pb::DataTypeProgressMarker nigori_marker;
+ nigori_marker.set_data_type_id(
+ GetSpecificsFieldNumberFromModelType(NIGORI));
+ nigori_marker.set_token("token");
+ sync_pb::DataTypeProgressMarker bookmark_marker;
+ bookmark_marker.set_data_type_id(
+ GetSpecificsFieldNumberFromModelType(BOOKMARKS));
+ bookmark_marker.set_token("token");
+ share->directory->SetDownloadProgress(NIGORI, nigori_marker);
+ share->directory->SetDownloadProgress(BOOKMARKS, bookmark_marker);
+
+ // Set Preferences to be a full type.
+ sync_pb::DataTypeProgressMarker pref_marker;
+ pref_marker.set_data_type_id(
+ GetSpecificsFieldNumberFromModelType(PREFERENCES));
+ pref_marker.set_token("token");
+ share->directory->SetDownloadProgress(PREFERENCES, pref_marker);
+ share->directory->set_initial_sync_ended_for_type(PREFERENCES, true);
+
+ ModelTypeSet partial_types =
+ sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All());
+ EXPECT_FALSE(partial_types.Has(NIGORI));
+ EXPECT_FALSE(partial_types.Has(BOOKMARKS));
+ EXPECT_FALSE(partial_types.Has(PREFERENCES));
+
+ EXPECT_TRUE(sync_manager_.PurgePartiallySyncedTypes());
+
+ // Ensure only bookmarks and nigori lost their progress marker. Preferences
+ // should still have it.
+ partial_types =
+ sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All());
+ EXPECT_TRUE(partial_types.Has(NIGORI));
+ EXPECT_TRUE(partial_types.Has(BOOKMARKS));
+ EXPECT_FALSE(partial_types.Has(PREFERENCES));
+}
+
} // namespace

Powered by Google App Engine
This is Rietveld 408576698