From e3b0ee5f1dc1647f3f00439c9a7f9bb7e97345dd Mon Sep 17 00:00:00 2001 From: "akalin@chromium.org" Date: Wed, 12 Oct 2011 03:04:13 +0000 Subject: [Sync] Persist invalidation versions to preferences Define InvalidationVersionTracker interface and make SyncPrefs inherit from it. Pass down SyncPrefs (as InvalidationVersionTracker) all the way down to ChromeInvalidationClient and call it when there is a new max invalidation version. Pass SyncBackendHost a WeakPtr instead of a raw pointer to SyncPrefs. Made sync_listen_notifications work again. BUG=85286 TEST= Review URL: http://codereview.chromium.org/8188006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104983 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/sync/sync_prefs_unittest.cc | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'chrome/browser/sync/sync_prefs_unittest.cc') diff --git a/chrome/browser/sync/sync_prefs_unittest.cc b/chrome/browser/sync/sync_prefs_unittest.cc index e8ae6a2..5bf2e06 100644 --- a/chrome/browser/sync/sync_prefs_unittest.cc +++ b/chrome/browser/sync/sync_prefs_unittest.cc @@ -115,6 +115,29 @@ TEST_F(SyncPrefsTest, PreferredTypesNotKeepEverythingSynced) { } } +TEST_F(SyncPrefsTest, MaxInvalidationVersions) { + SyncPrefs sync_prefs(&pref_service_); + + sync_notifier::InvalidationVersionMap expected_max_versions; + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); + + expected_max_versions[syncable::BOOKMARKS] = 2; + sync_prefs.SetMaxVersion(syncable::BOOKMARKS, 2); + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); + + expected_max_versions[syncable::PREFERENCES] = 5; + sync_prefs.SetMaxVersion(syncable::PREFERENCES, 5); + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); + + expected_max_versions[syncable::APP_NOTIFICATIONS] = 3; + sync_prefs.SetMaxVersion(syncable::APP_NOTIFICATIONS, 3); + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); + + expected_max_versions[syncable::APP_NOTIFICATIONS] = 4; + sync_prefs.SetMaxVersion(syncable::APP_NOTIFICATIONS, 4); + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); +} + class MockSyncPrefObserver : public SyncPrefObserver { public: MOCK_METHOD1(OnSyncManagedPrefChange, void(bool)); @@ -163,6 +186,7 @@ TEST_F(SyncPrefsTest, ClearPreferences) { EXPECT_FALSE(sync_prefs.HasSyncSetupCompleted()); EXPECT_EQ(base::Time(), sync_prefs.GetLastSyncedTime()); EXPECT_TRUE(sync_prefs.GetEncryptionBootstrapToken().empty()); + EXPECT_TRUE(sync_prefs.GetAllMaxVersions().empty()); sync_prefs.SetSyncSetupCompleted(); sync_prefs.SetLastSyncedTime(base::Time::Now()); @@ -171,12 +195,19 @@ TEST_F(SyncPrefsTest, ClearPreferences) { EXPECT_TRUE(sync_prefs.HasSyncSetupCompleted()); EXPECT_NE(base::Time(), sync_prefs.GetLastSyncedTime()); EXPECT_EQ("token", sync_prefs.GetEncryptionBootstrapToken()); + { + sync_notifier::InvalidationVersionMap expected_max_versions; + expected_max_versions[syncable::APP_NOTIFICATIONS] = 3; + sync_prefs.SetMaxVersion(syncable::APP_NOTIFICATIONS, 3); + EXPECT_EQ(expected_max_versions, sync_prefs.GetAllMaxVersions()); + } sync_prefs.ClearPreferences(); EXPECT_FALSE(sync_prefs.HasSyncSetupCompleted()); EXPECT_EQ(base::Time(), sync_prefs.GetLastSyncedTime()); EXPECT_TRUE(sync_prefs.GetEncryptionBootstrapToken().empty()); + EXPECT_TRUE(sync_prefs.GetAllMaxVersions().empty()); } TEST_F(SyncPrefsTest, NullPrefService) { @@ -190,6 +221,7 @@ TEST_F(SyncPrefsTest, NullPrefService) { EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(non_passive_types).empty()); EXPECT_FALSE(sync_prefs.IsManaged()); EXPECT_TRUE(sync_prefs.GetEncryptionBootstrapToken().empty()); + EXPECT_TRUE(sync_prefs.GetAllMaxVersions().empty()); } } // namespace -- cgit v1.1