| 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);
|
| + 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);
|
| + 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.
|
| +
|
| + TypePayloadMap new_map = CoalescePayloads(original, update);
|
| + ASSERT_EQ(5U, new_map.size());
|
| + EXPECT_EQ(empty_payload, new_map[syncable::BOOKMARKS]);
|
| + EXPECT_EQ(payload1, new_map[syncable::PASSWORDS]);
|
| + EXPECT_EQ(payload1, new_map[syncable::AUTOFILL]);
|
| + EXPECT_EQ(payload2, new_map[syncable::SESSIONS]);
|
| + EXPECT_EQ(payload3, new_map[syncable::THEMES]);
|
| +}
|
| +
|
| } // namespace
|
| } // namespace sessions
|
| } // namespace browser_sync
|
|
|