summaryrefslogtreecommitdiffstats
path: root/chromium/sync/protocol/proto_value_conversions_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/sync/protocol/proto_value_conversions_unittest.cc')
-rw-r--r--chromium/sync/protocol/proto_value_conversions_unittest.cc360
1 files changed, 0 insertions, 360 deletions
diff --git a/chromium/sync/protocol/proto_value_conversions_unittest.cc b/chromium/sync/protocol/proto_value_conversions_unittest.cc
deleted file mode 100644
index 1366dd58900..00000000000
--- a/chromium/sync/protocol/proto_value_conversions_unittest.cc
+++ /dev/null
@@ -1,360 +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.
-
-// Keep this file in sync with the .proto files in this directory.
-
-#include "sync/protocol/proto_value_conversions.h"
-
-#include "base/memory/scoped_ptr.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/time/time.h"
-#include "base/values.h"
-#include "sync/internal_api/public/base/model_type.h"
-#include "sync/protocol/app_notification_specifics.pb.h"
-#include "sync/protocol/app_setting_specifics.pb.h"
-#include "sync/protocol/app_specifics.pb.h"
-#include "sync/protocol/autofill_specifics.pb.h"
-#include "sync/protocol/bookmark_specifics.pb.h"
-#include "sync/protocol/device_info_specifics.pb.h"
-#include "sync/protocol/encryption.pb.h"
-#include "sync/protocol/experiments_specifics.pb.h"
-#include "sync/protocol/extension_setting_specifics.pb.h"
-#include "sync/protocol/extension_specifics.pb.h"
-#include "sync/protocol/favicon_image_specifics.pb.h"
-#include "sync/protocol/favicon_tracking_specifics.pb.h"
-#include "sync/protocol/managed_user_setting_specifics.pb.h"
-#include "sync/protocol/nigori_specifics.pb.h"
-#include "sync/protocol/password_specifics.pb.h"
-#include "sync/protocol/preference_specifics.pb.h"
-#include "sync/protocol/priority_preference_specifics.pb.h"
-#include "sync/protocol/search_engine_specifics.pb.h"
-#include "sync/protocol/session_specifics.pb.h"
-#include "sync/protocol/sync.pb.h"
-#include "sync/protocol/theme_specifics.pb.h"
-#include "sync/protocol/typed_url_specifics.pb.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace syncer {
-namespace {
-
-class ProtoValueConversionsTest : public testing::Test {
- protected:
- template <class T>
- void TestSpecificsToValue(
- base::DictionaryValue* (*specifics_to_value)(const T&)) {
- const T& specifics(T::default_instance());
- scoped_ptr<base::DictionaryValue> value(specifics_to_value(specifics));
- // We can't do much but make sure that this doesn't crash.
- }
-};
-
-TEST_F(ProtoValueConversionsTest, ProtoChangeCheck) {
- // If this number changes, that means we added or removed a data
- // type. Don't forget to add a unit test for {New
- // type}SpecificsToValue below.
- EXPECT_EQ(30, MODEL_TYPE_COUNT);
-
- // We'd also like to check if we changed any field in our messages.
- // However, that's hard to do: sizeof could work, but it's
- // platform-dependent. default_instance().ByteSize() won't change
- // for most changes, since most of our fields are optional. So we
- // just settle for comments in the proto files.
-}
-
-TEST_F(ProtoValueConversionsTest, EncryptedDataToValue) {
- TestSpecificsToValue(EncryptedDataToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SessionHeaderToValue) {
- TestSpecificsToValue(SessionHeaderToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SessionTabToValue) {
- TestSpecificsToValue(SessionTabToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SessionWindowToValue) {
- TestSpecificsToValue(SessionWindowToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, TabNavigationToValue) {
- TestSpecificsToValue(TabNavigationToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, PasswordSpecificsData) {
- sync_pb::PasswordSpecificsData specifics;
- specifics.set_password_value("secret");
- scoped_ptr<base::DictionaryValue> value(
- PasswordSpecificsDataToValue(specifics));
- EXPECT_FALSE(value->empty());
- std::string password_value;
- EXPECT_TRUE(value->GetString("password_value", &password_value));
- EXPECT_EQ("<redacted>", password_value);
-}
-
-TEST_F(ProtoValueConversionsTest, AppListSpecificsToValue) {
- TestSpecificsToValue(AppListSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, AppNotificationToValue) {
- TestSpecificsToValue(AppNotificationToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, AppSettingSpecificsToValue) {
- sync_pb::AppNotificationSettings specifics;
- specifics.set_disabled(true);
- specifics.set_oauth_client_id("some_id_value");
- scoped_ptr<base::DictionaryValue> value(AppSettingsToValue(specifics));
- EXPECT_FALSE(value->empty());
- bool disabled_value = false;
- std::string oauth_client_id_value;
- EXPECT_TRUE(value->GetBoolean("disabled", &disabled_value));
- EXPECT_EQ(true, disabled_value);
- EXPECT_TRUE(value->GetString("oauth_client_id", &oauth_client_id_value));
- EXPECT_EQ("some_id_value", oauth_client_id_value);
-}
-
-TEST_F(ProtoValueConversionsTest, AppSpecificsToValue) {
- TestSpecificsToValue(AppSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, AutofillSpecificsToValue) {
- TestSpecificsToValue(AutofillSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, AutofillProfileSpecificsToValue) {
- TestSpecificsToValue(AutofillProfileSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, BookmarkSpecificsToValue) {
- TestSpecificsToValue(BookmarkSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, BookmarkSpecificsData) {
- const base::Time creation_time(base::Time::Now());
- const std::string icon_url = "http://www.google.com/favicon.ico";
- sync_pb::BookmarkSpecifics specifics;
- specifics.set_creation_time_us(creation_time.ToInternalValue());
- specifics.set_icon_url(icon_url);
- sync_pb::MetaInfo* meta_1 = specifics.add_meta_info();
- meta_1->set_key("key1");
- meta_1->set_value("value1");
- sync_pb::MetaInfo* meta_2 = specifics.add_meta_info();
- meta_2->set_key("key2");
- meta_2->set_value("value2");
-
- scoped_ptr<base::DictionaryValue> value(BookmarkSpecificsToValue(specifics));
- EXPECT_FALSE(value->empty());
- std::string encoded_time;
- EXPECT_TRUE(value->GetString("creation_time_us", &encoded_time));
- EXPECT_EQ(base::Int64ToString(creation_time.ToInternalValue()), encoded_time);
- std::string encoded_icon_url;
- EXPECT_TRUE(value->GetString("icon_url", &encoded_icon_url));
- EXPECT_EQ(icon_url, encoded_icon_url);
- base::ListValue* meta_info_list;
- ASSERT_TRUE(value->GetList("meta_info", &meta_info_list));
- EXPECT_EQ(2u, meta_info_list->GetSize());
- base::DictionaryValue* meta_info;
- std::string meta_key;
- std::string meta_value;
- ASSERT_TRUE(meta_info_list->GetDictionary(0, &meta_info));
- EXPECT_TRUE(meta_info->GetString("key", &meta_key));
- EXPECT_TRUE(meta_info->GetString("value", &meta_value));
- EXPECT_EQ("key1", meta_key);
- EXPECT_EQ("value1", meta_value);
- ASSERT_TRUE(meta_info_list->GetDictionary(1, &meta_info));
- EXPECT_TRUE(meta_info->GetString("key", &meta_key));
- EXPECT_TRUE(meta_info->GetString("value", &meta_value));
- EXPECT_EQ("key2", meta_key);
- EXPECT_EQ("value2", meta_value);
-}
-
-TEST_F(ProtoValueConversionsTest, PriorityPreferenceSpecificsToValue) {
- TestSpecificsToValue(PriorityPreferenceSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, DeviceInfoSpecificsToValue) {
- TestSpecificsToValue(DeviceInfoSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ExperimentsSpecificsToValue) {
- TestSpecificsToValue(ExperimentsSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ExtensionSettingSpecificsToValue) {
- TestSpecificsToValue(ExtensionSettingSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ExtensionSpecificsToValue) {
- TestSpecificsToValue(ExtensionSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, FaviconImageSpecificsToValue) {
- TestSpecificsToValue(FaviconImageSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, FaviconTrackingSpecificsToValue) {
- TestSpecificsToValue(FaviconTrackingSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, HistoryDeleteDirectiveSpecificsToValue) {
- TestSpecificsToValue(HistoryDeleteDirectiveSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ManagedUserSettingSpecificsToValue) {
- TestSpecificsToValue(ManagedUserSettingSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ManagedUserSpecificsToValue) {
- TestSpecificsToValue(ManagedUserSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, NigoriSpecificsToValue) {
- TestSpecificsToValue(NigoriSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, PasswordSpecificsToValue) {
- TestSpecificsToValue(PasswordSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, PreferenceSpecificsToValue) {
- TestSpecificsToValue(PreferenceSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SearchEngineSpecificsToValue) {
- TestSpecificsToValue(SearchEngineSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SessionSpecificsToValue) {
- TestSpecificsToValue(SessionSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, SyncedNotificationSpecificsToValue) {
- TestSpecificsToValue(SyncedNotificationSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ThemeSpecificsToValue) {
- TestSpecificsToValue(ThemeSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, TypedUrlSpecificsToValue) {
- TestSpecificsToValue(TypedUrlSpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, DictionarySpecificsToValue) {
- TestSpecificsToValue(DictionarySpecificsToValue);
-}
-
-TEST_F(ProtoValueConversionsTest, ArticleSpecificsToValue) {
- TestSpecificsToValue(ArticleSpecificsToValue);
-}
-
-// TODO(akalin): Figure out how to better test EntitySpecificsToValue.
-
-TEST_F(ProtoValueConversionsTest, EntitySpecificsToValue) {
- sync_pb::EntitySpecifics specifics;
- // Touch the extensions to make sure it shows up in the generated
- // value.
-#define SET_FIELD(key) (void)specifics.mutable_##key()
-
- SET_FIELD(app);
- SET_FIELD(app_list);
- SET_FIELD(app_notification);
- SET_FIELD(app_setting);
- SET_FIELD(article);
- SET_FIELD(autofill);
- SET_FIELD(autofill_profile);
- SET_FIELD(bookmark);
- SET_FIELD(device_info);
- SET_FIELD(dictionary);
- SET_FIELD(experiments);
- SET_FIELD(extension);
- SET_FIELD(extension_setting);
- SET_FIELD(favicon_image);
- SET_FIELD(favicon_tracking);
- SET_FIELD(history_delete_directive);
- SET_FIELD(managed_user_setting);
- SET_FIELD(managed_user);
- SET_FIELD(nigori);
- SET_FIELD(password);
- SET_FIELD(preference);
- SET_FIELD(priority_preference);
- SET_FIELD(search_engine);
- SET_FIELD(session);
- SET_FIELD(synced_notification);
- SET_FIELD(theme);
- SET_FIELD(typed_url);
-
-#undef SET_FIELD
-
- scoped_ptr<base::DictionaryValue> value(EntitySpecificsToValue(specifics));
- EXPECT_EQ(MODEL_TYPE_COUNT - FIRST_REAL_MODEL_TYPE -
- (LAST_PROXY_TYPE - FIRST_PROXY_TYPE + 1),
- static_cast<int>(value->size()));
-}
-
-namespace {
-// Returns whether the given value has specifics under the entries in the given
-// path.
-bool ValueHasSpecifics(const base::DictionaryValue& value,
- const std::string& path) {
- const base::ListValue* entities_list = NULL;
- const base::DictionaryValue* entry_dictionary = NULL;
- const base::DictionaryValue* specifics_dictionary = NULL;
-
- if (!value.GetList(path, &entities_list))
- return false;
-
- if (!entities_list->GetDictionary(0, &entry_dictionary))
- return false;
-
- return entry_dictionary->GetDictionary("specifics",
- &specifics_dictionary);
-}
-} // namespace
-
-// Create a ClientToServerMessage with an EntitySpecifics. Converting it to
-// a value should respect the |include_specifics| flag.
-TEST_F(ProtoValueConversionsTest, ClientToServerMessageToValue) {
- sync_pb::ClientToServerMessage message;
- sync_pb::CommitMessage* commit_message = message.mutable_commit();
- sync_pb::SyncEntity* entity = commit_message->add_entries();
- entity->mutable_specifics();
-
- scoped_ptr<base::DictionaryValue> value_with_specifics(
- ClientToServerMessageToValue(message, true /* include_specifics */));
- EXPECT_FALSE(value_with_specifics->empty());
- EXPECT_TRUE(ValueHasSpecifics(*(value_with_specifics.get()),
- "commit.entries"));
-
- scoped_ptr<base::DictionaryValue> value_without_specifics(
- ClientToServerMessageToValue(message, false /* include_specifics */));
- EXPECT_FALSE(value_without_specifics->empty());
- EXPECT_FALSE(ValueHasSpecifics(*(value_without_specifics.get()),
- "commit.entries"));
-}
-
-// Create a ClientToServerResponse with an EntitySpecifics. Converting it to
-// a value should respect the |include_specifics| flag.
-TEST_F(ProtoValueConversionsTest, ClientToServerResponseToValue) {
- sync_pb::ClientToServerResponse message;
- sync_pb::GetUpdatesResponse* response = message.mutable_get_updates();
- sync_pb::SyncEntity* entity = response->add_entries();
- entity->mutable_specifics();
-
- scoped_ptr<base::DictionaryValue> value_with_specifics(
- ClientToServerResponseToValue(message, true /* include_specifics */));
- EXPECT_FALSE(value_with_specifics->empty());
- EXPECT_TRUE(ValueHasSpecifics(*(value_with_specifics.get()),
- "get_updates.entries"));
-
- scoped_ptr<base::DictionaryValue> value_without_specifics(
- ClientToServerResponseToValue(message, false /* include_specifics */));
- EXPECT_FALSE(value_without_specifics->empty());
- EXPECT_FALSE(ValueHasSpecifics(*(value_without_specifics.get()),
- "get_updates.entries"));
-}
-
-} // namespace
-} // namespace syncer