Index: sync/engine/syncer_proto_util_unittest.cc |
diff --git a/sync/engine/syncer_proto_util_unittest.cc b/sync/engine/syncer_proto_util_unittest.cc |
deleted file mode 100644 |
index 4c14ebf35a9843074fce5a032d453f27d74c8a5b..0000000000000000000000000000000000000000 |
--- a/sync/engine/syncer_proto_util_unittest.cc |
+++ /dev/null |
@@ -1,267 +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 "sync/engine/syncer_proto_util.h" |
- |
-#include <string> |
- |
-#include "base/compiler_specific.h" |
-#include "base/message_loop/message_loop.h" |
-#include "base/time/time.h" |
-#include "sync/internal_api/public/base/cancelation_signal.h" |
-#include "sync/internal_api/public/base/model_type_test_util.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 "sync/sessions/sync_session_context.h" |
-#include "sync/syncable/directory.h" |
-#include "sync/test/engine/mock_connection_manager.h" |
-#include "sync/test/engine/test_directory_setter_upper.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using ::testing::_; |
- |
-using sync_pb::ClientToServerMessage; |
-using sync_pb::CommitResponse_EntryResponse; |
-using sync_pb::SyncEntity; |
- |
-namespace syncer { |
- |
-using sessions::SyncSessionContext; |
- |
-class MockDelegate : public sessions::SyncSession::Delegate { |
- public: |
- MockDelegate() {} |
- ~MockDelegate() {} |
- |
- MOCK_METHOD1(OnReceivedShortPollIntervalUpdate, void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnReceivedLongPollIntervalUpdate, void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnReceivedSessionsCommitDelay, void(const base::TimeDelta&)); |
- MOCK_METHOD1(OnReceivedClientInvalidationHintBufferSize, void(int)); |
- MOCK_METHOD1(OnSyncProtocolError, void(const SyncProtocolError&)); |
-}; |
- |
-// Builds a ClientToServerResponse with some data type ids, including |
-// invalid ones. GetTypesToMigrate() should return only the valid |
-// model types. |
-TEST(SyncerProtoUtil, GetTypesToMigrate) { |
- sync_pb::ClientToServerResponse response; |
- response.add_migrated_data_type_id( |
- GetSpecificsFieldNumberFromModelType(BOOKMARKS)); |
- response.add_migrated_data_type_id( |
- GetSpecificsFieldNumberFromModelType(HISTORY_DELETE_DIRECTIVES)); |
- response.add_migrated_data_type_id(-1); |
- EXPECT_EQ(ModelTypeSet(BOOKMARKS, HISTORY_DELETE_DIRECTIVES), |
- GetTypesToMigrate(response)); |
-} |
- |
-// Builds a ClientToServerResponse_Error with some error data type |
-// ids, including invalid ones. ConvertErrorPBToSyncProtocolError() should |
-// return a SyncProtocolError with only the valid model types. |
-TEST(SyncerProtoUtil, ConvertErrorPBToSyncProtocolError) { |
- sync_pb::ClientToServerResponse_Error error_pb; |
- error_pb.set_error_type(sync_pb::SyncEnums::THROTTLED); |
- error_pb.add_error_data_type_ids( |
- GetSpecificsFieldNumberFromModelType(BOOKMARKS)); |
- error_pb.add_error_data_type_ids( |
- GetSpecificsFieldNumberFromModelType(HISTORY_DELETE_DIRECTIVES)); |
- error_pb.add_error_data_type_ids(-1); |
- SyncProtocolError error = ConvertErrorPBToSyncProtocolError(error_pb); |
- EXPECT_EQ(ModelTypeSet(BOOKMARKS, HISTORY_DELETE_DIRECTIVES), |
- error.error_data_types); |
-} |
- |
-// 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: |
- void SetUp() override { dir_maker_.SetUp(); } |
- |
- void TearDown() override { dir_maker_.TearDown(); } |
- |
- syncable::Directory* directory() { |
- return dir_maker_.directory(); |
- } |
- |
- // Helper function to call GetProtocolErrorFromResponse. Allows not adding |
- // individual tests as friends to SyncerProtoUtil. |
- static SyncProtocolError CallGetProtocolErrorFromResponse( |
- const sync_pb::ClientToServerResponse& response, |
- syncable::Directory* directory) { |
- return SyncerProtoUtil::GetProtocolErrorFromResponse(response, directory); |
- } |
- |
- protected: |
- base::MessageLoop message_loop_; |
- TestDirectorySetterUpper dir_maker_; |
-}; |
- |
-TEST_F(SyncerProtoUtilTest, VerifyResponseBirthday) { |
- // Both sides empty |
- EXPECT_TRUE(directory()->store_birthday().empty()); |
- sync_pb::ClientToServerResponse response; |
- SyncProtocolError sync_protocol_error; |
- response.set_error_code(sync_pb::SyncEnums::SUCCESS); |
- |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(NOT_MY_BIRTHDAY, sync_protocol_error.error_type); |
- EXPECT_EQ(DISABLE_SYNC_ON_CLIENT, sync_protocol_error.action); |
- |
- // Remote set, local empty |
- response.set_store_birthday("flan"); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(SYNC_SUCCESS, sync_protocol_error.error_type); |
- EXPECT_EQ(UNKNOWN_ACTION, sync_protocol_error.action); |
- EXPECT_EQ(directory()->store_birthday(), "flan"); |
- |
- // Remote empty, local set. |
- response.clear_store_birthday(); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(SYNC_SUCCESS, sync_protocol_error.error_type); |
- EXPECT_EQ(UNKNOWN_ACTION, sync_protocol_error.action); |
- EXPECT_EQ(directory()->store_birthday(), "flan"); |
- |
- // Doesn't match |
- response.set_store_birthday("meat"); |
- response.set_error_code(sync_pb::SyncEnums::NOT_MY_BIRTHDAY); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(NOT_MY_BIRTHDAY, sync_protocol_error.error_type); |
- EXPECT_EQ(DISABLE_SYNC_ON_CLIENT, sync_protocol_error.action); |
- |
- // Doesn't match. CLIENT_DATA_OBSOLETE error is set. |
- response.set_error_code(sync_pb::SyncEnums::CLIENT_DATA_OBSOLETE); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(CLIENT_DATA_OBSOLETE, sync_protocol_error.error_type); |
- EXPECT_EQ(RESET_LOCAL_SYNC_DATA, sync_protocol_error.action); |
-} |
- |
-TEST_F(SyncerProtoUtilTest, VerifyDisabledByAdmin) { |
- // No error code |
- sync_pb::ClientToServerResponse response; |
- SyncProtocolError sync_protocol_error; |
- directory()->set_store_birthday("flan"); |
- response.set_error_code(sync_pb::SyncEnums::SUCCESS); |
- |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(SYNC_SUCCESS, sync_protocol_error.error_type); |
- EXPECT_EQ(UNKNOWN_ACTION, sync_protocol_error.action); |
- |
- // Has error code, but not disabled |
- response.set_error_code(sync_pb::SyncEnums::NOT_MY_BIRTHDAY); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(NOT_MY_BIRTHDAY, sync_protocol_error.error_type); |
- EXPECT_NE(UNKNOWN_ACTION, sync_protocol_error.action); |
- |
- // Has error code, and is disabled by admin |
- response.set_error_code(sync_pb::SyncEnums::DISABLED_BY_ADMIN); |
- sync_protocol_error = CallGetProtocolErrorFromResponse(response, directory()); |
- EXPECT_EQ(DISABLED_BY_ADMIN, sync_protocol_error.error_type); |
- EXPECT_EQ(STOP_SYNC_FOR_DISABLED_ACCOUNT, sync_protocol_error.action); |
-} |
- |
-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 ServerConnectionManager { |
- public: |
- explicit DummyConnectionManager(CancelationSignal* signal) |
- : ServerConnectionManager("unused", 0, false, signal), |
- send_error_(false) {} |
- |
- ~DummyConnectionManager() override {} |
- bool PostBufferWithCachedAuth(PostBufferParams* params) override { |
- if (send_error_) { |
- return false; |
- } |
- |
- sync_pb::ClientToServerResponse response; |
- response.SerializeToString(¶ms->buffer_out); |
- |
- return true; |
- } |
- |
- void set_send_error(bool send) { |
- send_error_ = send; |
- } |
- |
- private: |
- bool send_error_; |
-}; |
- |
-TEST_F(SyncerProtoUtilTest, PostAndProcessHeaders) { |
- CancelationSignal signal; |
- DummyConnectionManager dcm(&signal); |
- ClientToServerMessage msg; |
- SyncerProtoUtil::SetProtocolVersion(&msg); |
- msg.set_share("required"); |
- msg.set_message_contents(ClientToServerMessage::GET_UPDATES); |
- sync_pb::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)); |
-} |
- |
-} // namespace syncer |