| Index: chrome/browser/sync/engine/syncer_proto_util_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/sync/engine/syncer_proto_util_unittest.cc (revision 0)
|
| +++ chrome/browser/sync/engine/syncer_proto_util_unittest.cc (revision 0)
|
| @@ -0,0 +1,119 @@
|
| +// Copyright (c) 2006-2008 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 "base/basictypes.h"
|
| +#include "chrome/browser/sync/engine/syncproto.h"
|
| +#include "chrome/browser/sync/syncable/blob.h"
|
| +#include "chrome/browser/sync/syncable/syncable.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +using syncable::Blob;
|
| +using syncable::SyncName;
|
| +
|
| +namespace browser_sync {
|
| +
|
| +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 (int i = 0; i < arraysize(test_data1); ++i)
|
| + test_blob1.push_back(test_data1[i]);
|
| + for (int i = 0; i < arraysize(test_data2); ++i)
|
| + test_blob2.push_back(test_data2[i]);
|
| + for (int i = 0; i < arraysize(test_data3); ++i)
|
| + test_blob3.push_back(test_data3[i]);
|
| +
|
| + string test_message1(reinterpret_cast<char*>(test_data1),
|
| + arraysize(test_data1));
|
| + string test_message2(reinterpret_cast<char*>(test_data2),
|
| + arraysize(test_data2));
|
| + 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;
|
| +
|
| + PathString one_name_string(PSTR("Eggheadednesses"));
|
| + one_name_entity.set_name("Eggheadednesses");
|
| + one_name_response.set_name("Eggheadednesses");
|
| +
|
| + SyncName name_a = SyncerProtoUtil::NameFromSyncEntity(one_name_entity);
|
| + EXPECT_EQ(one_name_string, name_a.value());
|
| + EXPECT_EQ(one_name_string, name_a.non_unique_value());
|
| +
|
| + SyncName name_b =
|
| + SyncerProtoUtil::NameFromCommitEntryResponse(one_name_response);
|
| + EXPECT_EQ(one_name_string, name_b.value());
|
| + EXPECT_EQ(one_name_string, name_b.non_unique_value());
|
| +
|
| + EXPECT_TRUE(name_a == name_b);
|
| +}
|
| +
|
| +// Tests NameFromSyncEntity and NameFromCommitEntryResponse when both the
|
| +// name field and the non_unique_name fields are provided.
|
| +TEST(SyncerProtoUtil, NameExtractionTwoNames) {
|
| + SyncEntity two_name_entity;
|
| + CommitResponse_EntryResponse two_name_response;
|
| +
|
| + PathString two_name_string_unique(PSTR("Oxyphenbutazone"));
|
| + two_name_entity.set_name("Oxyphenbutazone");
|
| + two_name_response.set_name("Oxyphenbutazone");
|
| + PathString two_name_string(PSTR("Neuroanatomists"));
|
| + two_name_entity.set_non_unique_name("Neuroanatomists");
|
| + two_name_response.set_non_unique_name("Neuroanatomists");
|
| +
|
| + SyncName name_a = SyncerProtoUtil::NameFromSyncEntity(two_name_entity);
|
| + EXPECT_EQ(two_name_string_unique, name_a.value());
|
| + EXPECT_EQ(two_name_string, name_a.non_unique_value());
|
| +
|
| + SyncName name_b =
|
| + SyncerProtoUtil::NameFromCommitEntryResponse(two_name_response);
|
| + EXPECT_EQ(two_name_string_unique, name_b.value());
|
| + EXPECT_EQ(two_name_string, name_b.non_unique_value());
|
| +
|
| + EXPECT_TRUE(name_a == name_b);
|
| +}
|
| +
|
| +} // namespace browser_sync
|
|
|
| Property changes on: chrome\browser\sync\engine\syncer_proto_util_unittest.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|