Index: chrome/browser/sync/engine/syncer_proto_util_unittest.cc |
diff --git a/chrome/browser/sync/engine/syncer_proto_util_unittest.cc b/chrome/browser/sync/engine/syncer_proto_util_unittest.cc |
deleted file mode 100644 |
index 41e3cc03d91dcbe95c0cf9877997e51285ec0be0..0000000000000000000000000000000000000000 |
--- a/chrome/browser/sync/engine/syncer_proto_util_unittest.cc |
+++ /dev/null |
@@ -1,298 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/sync/engine/syncer_proto_util.h" |
- |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/compiler_specific.h" |
-#include "base/message_loop.h" |
-#include "base/time.h" |
-#include "chrome/browser/sync/engine/syncproto.h" |
-#include "chrome/browser/sync/sessions/session_state.h" |
-#include "chrome/browser/sync/sessions/sync_session_context.h" |
-#include "chrome/browser/sync/syncable/blob.h" |
-#include "chrome/browser/sync/syncable/model_type_test_util.h" |
-#include "chrome/browser/sync/syncable/syncable.h" |
-#include "chrome/browser/sync/test/engine/mock_connection_manager.h" |
-#include "chrome/browser/sync/test/engine/test_directory_setter_upper.h" |
-#include "sync/protocol/bookmark_specifics.pb.h" |
-#include "sync/protocol/password_specifics.pb.h" |
-#include "sync/protocol/sync.pb.h" |
-#include "sync/protocol/sync_enums.pb.h" |
- |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using syncable::Blob; |
-using ::testing::_; |
- |
-namespace browser_sync { |
-using sessions::SyncSessionContext; |
- |
-class MockSyncSessionContext : public SyncSessionContext { |
- public: |
- MockSyncSessionContext() {} |
- ~MockSyncSessionContext() {} |
- MOCK_METHOD2(SetUnthrottleTime, void(syncable::ModelTypeSet, |
- const base::TimeTicks&)); |
-}; |
- |
-class MockDelegate : public sessions::SyncSession::Delegate { |
- public: |
- MockDelegate() {} |
- ~MockDelegate() {} |
- |
- MOCK_METHOD0(IsSyncingCurrentlySilenced, bool()); |
- MOCK_METHOD1(OnReceivedShortPollIntervalUpdate, void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnReceivedLongPollIntervalUpdate ,void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnReceivedSessionsCommitDelay, void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnSyncProtocolError, void(const sessions::SyncSessionSnapshot&)); |
- MOCK_METHOD0(OnShouldStopSyncingPermanently, void()); |
- MOCK_METHOD1(OnSilencedUntil, void(const base::TimeTicks&)); |
-}; |
- |
-TEST(SyncerProtoUtil, TestBlobToProtocolBufferBytesUtilityFunctions) { |
- unsigned char test_data1[] = {1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; |
- unsigned char test_data2[] = {1, 99, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; |
- unsigned char test_data3[] = {99, 2, 3, 4, 5, 6, 7, 8}; |
- |
- syncable::Blob test_blob1, test_blob2, test_blob3; |
- for (size_t i = 0; i < arraysize(test_data1); ++i) |
- test_blob1.push_back(test_data1[i]); |
- for (size_t i = 0; i < arraysize(test_data2); ++i) |
- test_blob2.push_back(test_data2[i]); |
- for (size_t i = 0; i < arraysize(test_data3); ++i) |
- test_blob3.push_back(test_data3[i]); |
- |
- std::string test_message1(reinterpret_cast<char*>(test_data1), |
- arraysize(test_data1)); |
- std::string test_message2(reinterpret_cast<char*>(test_data2), |
- arraysize(test_data2)); |
- std::string test_message3(reinterpret_cast<char*>(test_data3), |
- arraysize(test_data3)); |
- |
- EXPECT_TRUE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message1, |
- test_blob1)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message1, |
- test_blob2)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message1, |
- test_blob3)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message2, |
- test_blob1)); |
- EXPECT_TRUE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message2, |
- test_blob2)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message2, |
- test_blob3)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message3, |
- test_blob1)); |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message3, |
- test_blob2)); |
- EXPECT_TRUE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message3, |
- test_blob3)); |
- |
- Blob blob1_copy; |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message1, |
- blob1_copy)); |
- SyncerProtoUtil::CopyProtoBytesIntoBlob(test_message1, &blob1_copy); |
- EXPECT_TRUE(SyncerProtoUtil::ProtoBytesEqualsBlob(test_message1, |
- blob1_copy)); |
- |
- std::string message2_copy; |
- EXPECT_FALSE(SyncerProtoUtil::ProtoBytesEqualsBlob(message2_copy, |
- test_blob2)); |
- SyncerProtoUtil::CopyBlobIntoProtoBytes(test_blob2, &message2_copy); |
- EXPECT_TRUE(SyncerProtoUtil::ProtoBytesEqualsBlob(message2_copy, |
- test_blob2)); |
-} |
- |
-// Tests NameFromSyncEntity and NameFromCommitEntryResponse when only the name |
-// field is provided. |
-TEST(SyncerProtoUtil, NameExtractionOneName) { |
- SyncEntity one_name_entity; |
- CommitResponse_EntryResponse one_name_response; |
- |
- const std::string one_name_string("Eggheadednesses"); |
- one_name_entity.set_name(one_name_string); |
- one_name_response.set_name(one_name_string); |
- |
- const std::string name_a = |
- SyncerProtoUtil::NameFromSyncEntity(one_name_entity); |
- EXPECT_EQ(one_name_string, name_a); |
-} |
- |
-TEST(SyncerProtoUtil, NameExtractionOneUniqueName) { |
- SyncEntity one_name_entity; |
- CommitResponse_EntryResponse one_name_response; |
- |
- const std::string one_name_string("Eggheadednesses"); |
- |
- one_name_entity.set_non_unique_name(one_name_string); |
- one_name_response.set_non_unique_name(one_name_string); |
- |
- const std::string name_a = |
- SyncerProtoUtil::NameFromSyncEntity(one_name_entity); |
- EXPECT_EQ(one_name_string, name_a); |
-} |
- |
-// Tests NameFromSyncEntity and NameFromCommitEntryResponse when both the name |
-// field and the non_unique_name fields are provided. |
-// Should prioritize non_unique_name. |
-TEST(SyncerProtoUtil, NameExtractionTwoNames) { |
- SyncEntity two_name_entity; |
- CommitResponse_EntryResponse two_name_response; |
- |
- const std::string neuro("Neuroanatomists"); |
- const std::string oxyphen("Oxyphenbutazone"); |
- |
- two_name_entity.set_name(oxyphen); |
- two_name_entity.set_non_unique_name(neuro); |
- |
- two_name_response.set_name(oxyphen); |
- two_name_response.set_non_unique_name(neuro); |
- |
- const std::string name_a = |
- SyncerProtoUtil::NameFromSyncEntity(two_name_entity); |
- EXPECT_EQ(neuro, name_a); |
-} |
- |
-class SyncerProtoUtilTest : public testing::Test { |
- public: |
- virtual void SetUp() { |
- dir_maker_.SetUp(); |
- } |
- |
- virtual void TearDown() { |
- dir_maker_.TearDown(); |
- } |
- |
- syncable::Directory* directory() { |
- return dir_maker_.directory(); |
- } |
- |
- protected: |
- MessageLoop message_loop_; |
- TestDirectorySetterUpper dir_maker_; |
-}; |
- |
-TEST_F(SyncerProtoUtilTest, VerifyResponseBirthday) { |
- // Both sides empty |
- EXPECT_TRUE(directory()->store_birthday().empty()); |
- ClientToServerResponse response; |
- EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); |
- |
- // Remote set, local empty |
- response.set_store_birthday("flan"); |
- EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); |
- EXPECT_EQ(directory()->store_birthday(), "flan"); |
- |
- // Remote empty, local set. |
- response.clear_store_birthday(); |
- EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); |
- EXPECT_EQ(directory()->store_birthday(), "flan"); |
- |
- // Doesn't match |
- response.set_store_birthday("meat"); |
- EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); |
- |
- response.set_error_code(sync_pb::SyncEnums::CLEAR_PENDING); |
- EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); |
-} |
- |
-TEST_F(SyncerProtoUtilTest, AddRequestBirthday) { |
- EXPECT_TRUE(directory()->store_birthday().empty()); |
- ClientToServerMessage msg; |
- SyncerProtoUtil::AddRequestBirthday(directory(), &msg); |
- EXPECT_FALSE(msg.has_store_birthday()); |
- |
- directory()->set_store_birthday("meat"); |
- SyncerProtoUtil::AddRequestBirthday(directory(), &msg); |
- EXPECT_EQ(msg.store_birthday(), "meat"); |
-} |
- |
-class DummyConnectionManager : public browser_sync::ServerConnectionManager { |
- public: |
- DummyConnectionManager() |
- : ServerConnectionManager("unused", 0, false, "version"), |
- send_error_(false), |
- access_denied_(false) {} |
- |
- virtual ~DummyConnectionManager() {} |
- virtual bool PostBufferWithCachedAuth( |
- PostBufferParams* params, |
- ScopedServerStatusWatcher* watcher) OVERRIDE { |
- if (send_error_) { |
- return false; |
- } |
- |
- ClientToServerResponse response; |
- if (access_denied_) { |
- response.set_error_code(sync_pb::SyncEnums::ACCESS_DENIED); |
- } |
- response.SerializeToString(¶ms->buffer_out); |
- |
- return true; |
- } |
- |
- void set_send_error(bool send) { |
- send_error_ = send; |
- } |
- |
- void set_access_denied(bool denied) { |
- access_denied_ = denied; |
- } |
- |
- private: |
- bool send_error_; |
- bool access_denied_; |
-}; |
- |
-TEST_F(SyncerProtoUtilTest, PostAndProcessHeaders) { |
- DummyConnectionManager dcm; |
- ClientToServerMessage msg; |
- msg.set_share("required"); |
- msg.set_message_contents(ClientToServerMessage::GET_UPDATES); |
- ClientToServerResponse response; |
- |
- dcm.set_send_error(true); |
- EXPECT_FALSE(SyncerProtoUtil::PostAndProcessHeaders(&dcm, NULL, |
- msg, &response)); |
- |
- dcm.set_send_error(false); |
- EXPECT_TRUE(SyncerProtoUtil::PostAndProcessHeaders(&dcm, NULL, |
- msg, &response)); |
- |
- dcm.set_access_denied(true); |
- EXPECT_FALSE(SyncerProtoUtil::PostAndProcessHeaders(&dcm, NULL, |
- msg, &response)); |
-} |
- |
-TEST_F(SyncerProtoUtilTest, HandleThrottlingWithDatatypes) { |
- MockSyncSessionContext context; |
- SyncProtocolError error; |
- error.error_type = browser_sync::THROTTLED; |
- syncable::ModelTypeSet types; |
- types.Put(syncable::BOOKMARKS); |
- types.Put(syncable::PASSWORDS); |
- error.error_data_types = types; |
- |
- base::TimeTicks ticks = base::TimeTicks::Now(); |
- |
- EXPECT_CALL(context, SetUnthrottleTime(HasModelTypes(types), ticks)); |
- |
- SyncerProtoUtil::HandleThrottleError(error, ticks, &context, NULL); |
-} |
- |
-TEST_F(SyncerProtoUtilTest, HandleThrottlingNoDatatypes) { |
- MockDelegate delegate; |
- SyncProtocolError error; |
- error.error_type = browser_sync::THROTTLED; |
- |
- base::TimeTicks ticks = base::TimeTicks::Now(); |
- |
- EXPECT_CALL(delegate, OnSilencedUntil(ticks)); |
- |
- SyncerProtoUtil::HandleThrottleError(error, ticks, NULL, &delegate); |
-} |
-} // namespace browser_sync |