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

Unified Diff: chrome/browser/sync/sessions/sync_session_unittest.cc

Issue 6182004: [SYNC] Refactor SyncSourceInfo and add support in chrome invalidation client ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Feedback Created 9 years, 11 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: chrome/browser/sync/sessions/sync_session_unittest.cc
===================================================================
--- chrome/browser/sync/sessions/sync_session_unittest.cc (revision 71618)
+++ chrome/browser/sync/sessions/sync_session_unittest.cc (working copy)
@@ -8,6 +8,7 @@
#include "chrome/browser/sync/engine/syncer_types.h"
#include "chrome/browser/sync/engine/syncer_util.h"
#include "chrome/browser/sync/syncable/directory_manager.h"
+#include "chrome/browser/sync/syncable/model_type.h"
#include "chrome/browser/sync/syncable/syncable.h"
#include "chrome/test/sync/engine/test_directory_setter_upper.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -250,6 +251,62 @@
EXPECT_TRUE(session_->HasMoreToSync());
}
+TEST_F(SyncSessionTest, ModelTypeBitSetToTypePayloadMap) {
+ syncable::ModelTypeBitSet types;
+ std::string payload = "test";
+ TypePayloadMap map = ModelTypeBitSetToTypePayloadMap(types, payload);
akalin 2011/01/26 10:35:26 Best not to name a variable the same as an existin
+ EXPECT_TRUE(map.empty());
+
+ types[syncable::BOOKMARKS] = true;
+ types[syncable::PASSWORDS] = true;
+ types[syncable::AUTOFILL] = true;
+ payload = "test2";
+ map = ModelTypeBitSetToTypePayloadMap(types, payload);
+
+ ASSERT_EQ(3U, map.size());
+ EXPECT_TRUE(map[syncable::BOOKMARKS] == payload);
akalin 2011/01/26 10:35:26 use EXPECT_EQ
+ EXPECT_TRUE(map[syncable::PASSWORDS] == payload);
+ EXPECT_TRUE(map[syncable::AUTOFILL] == payload);
+}
+
+TEST_F(SyncSessionTest, RoutingInfoToTypePayloadMap) {
+ std::string payload = "test";
+ TypePayloadMap map = RoutingInfoToTypePayloadMap(routes_, payload);
+ ASSERT_EQ(routes_.size(), map.size());
+ for (ModelSafeRoutingInfo::iterator iter = routes_.begin();
+ iter != routes_.end();
+ ++iter) {
+ EXPECT_EQ(payload, map[iter->first]);
+ }
+}
+
+TEST_F(SyncSessionTest, CoalescePayloads) {
+ TypePayloadMap original;
+ std::string empty_payload;
+ std::string payload1 = "payload1";
+ std::string payload2 = "payload2";
+ std::string payload3 = "payload3";
+ original[syncable::BOOKMARKS] = empty_payload;
+ original[syncable::PASSWORDS] = payload1;
+ original[syncable::AUTOFILL] = payload2;
+ original[syncable::THEMES] = payload3;
+
+ TypePayloadMap update;
+ update[syncable::BOOKMARKS] = empty_payload; // Same.
+ update[syncable::PASSWORDS] = empty_payload; // Overwrite with empty.
+ update[syncable::AUTOFILL] = payload1; // Overwrite with non-empty.
+ update[syncable::SESSIONS] = payload2; // New.
+ // Themes untouched.
+
+ CoalescePayloads(&original, update);
+ ASSERT_EQ(5U, original.size());
+ EXPECT_EQ(empty_payload, original[syncable::BOOKMARKS]);
+ EXPECT_EQ(payload1, original[syncable::PASSWORDS]);
+ EXPECT_EQ(payload1, original[syncable::AUTOFILL]);
+ EXPECT_EQ(payload2, original[syncable::SESSIONS]);
+ EXPECT_EQ(payload3, original[syncable::THEMES]);
+}
+
} // namespace
} // namespace sessions
} // namespace browser_sync

Powered by Google App Engine
This is Rietveld 408576698