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 |