Chromium Code Reviews| 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 |