| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/scoped_ptr.h" | 5 #include "base/scoped_ptr.h" |
| 6 #include "base/values.h" | 6 #include "base/values.h" |
| 7 #include "chrome/browser/sync/glue/preference_model_associator.h" | 7 #include "chrome/browser/sync/glue/preference_model_associator.h" |
| 8 #include "chrome/common/pref_names.h" | 8 #include "chrome/common/pref_names.h" |
| 9 #include "chrome/test/testing_profile.h" | 9 #include "chrome/test/testing_profile.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 27 &expression_dict); | 27 &expression_dict); |
| 28 if (!found) { | 28 if (!found) { |
| 29 expression_dict = new DictionaryValue; | 29 expression_dict = new DictionaryValue; |
| 30 patterns_dict->SetWithoutPathExpansion(expression, expression_dict); | 30 patterns_dict->SetWithoutPathExpansion(expression, expression_dict); |
| 31 } | 31 } |
| 32 expression_dict->SetWithoutPathExpansion( | 32 expression_dict->SetWithoutPathExpansion( |
| 33 content_type, | 33 content_type, |
| 34 Value::CreateIntegerValue(setting)); | 34 Value::CreateIntegerValue(setting)); |
| 35 } | 35 } |
| 36 | 36 |
| 37 void SetPrefToNull(const std::string& pref_name) { | |
| 38 scoped_ptr<Value> null_value(Value::CreateNullValue()); | |
| 39 pref_service_->Set(pref_name.c_str(), *null_value); | |
| 40 } | |
| 41 | |
| 42 void SetPrefToEmpty(const std::string& pref_name) { | 37 void SetPrefToEmpty(const std::string& pref_name) { |
| 43 scoped_ptr<Value> empty_value; | 38 scoped_ptr<Value> empty_value; |
| 44 const PrefService::Preference* pref = | 39 const PrefService::Preference* pref = |
| 45 pref_service_->FindPreference(pref_name.c_str()); | 40 pref_service_->FindPreference(pref_name.c_str()); |
| 46 ASSERT_TRUE(pref); | 41 ASSERT_TRUE(pref); |
| 47 Value::ValueType type = pref->GetType(); | 42 Value::ValueType type = pref->GetType(); |
| 48 if (type == Value::TYPE_DICTIONARY) | 43 if (type == Value::TYPE_DICTIONARY) |
| 49 empty_value.reset(new DictionaryValue); | 44 empty_value.reset(new DictionaryValue); |
| 50 else if (type == Value::TYPE_LIST) | 45 else if (type == Value::TYPE_LIST) |
| 51 empty_value.reset(new ListValue); | 46 empty_value.reset(new ListValue); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 82 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { | 77 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { |
| 83 pref_service_->SetString(prefs::kHomePage, local_url0_); | 78 pref_service_->SetString(prefs::kHomePage, local_url0_); |
| 84 const PrefService::Preference* pref = | 79 const PrefService::Preference* pref = |
| 85 pref_service_->FindPreference(prefs::kHomePage); | 80 pref_service_->FindPreference(prefs::kHomePage); |
| 86 scoped_ptr<Value> server_value(Value::CreateStringValue(server_url0_)); | 81 scoped_ptr<Value> server_value(Value::CreateStringValue(server_url0_)); |
| 87 scoped_ptr<Value> merged_value( | 82 scoped_ptr<Value> merged_value( |
| 88 PreferenceModelAssociator::MergePreference(*pref, *server_value)); | 83 PreferenceModelAssociator::MergePreference(*pref, *server_value)); |
| 89 EXPECT_TRUE(merged_value->Equals(server_value.get())); | 84 EXPECT_TRUE(merged_value->Equals(server_value.get())); |
| 90 } | 85 } |
| 91 | 86 |
| 92 TEST_F(ListPreferenceMergeTest, LocalNull) { | |
| 93 SetPrefToNull(prefs::kURLsToRestoreOnStartup); | |
| 94 const PrefService::Preference* pref = | |
| 95 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | |
| 96 scoped_ptr<Value> merged_value( | |
| 97 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); | |
| 98 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); | |
| 99 } | |
| 100 | |
| 101 TEST_F(ListPreferenceMergeTest, LocalEmpty) { | 87 TEST_F(ListPreferenceMergeTest, LocalEmpty) { |
| 102 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); | 88 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); |
| 103 const PrefService::Preference* pref = | 89 const PrefService::Preference* pref = |
| 104 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 90 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 105 scoped_ptr<Value> merged_value( | 91 scoped_ptr<Value> merged_value( |
| 106 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); | 92 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); |
| 107 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); | 93 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); |
| 108 } | 94 } |
| 109 | 95 |
| 110 TEST_F(ListPreferenceMergeTest, ServerNull) { | 96 TEST_F(ListPreferenceMergeTest, ServerNull) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 126 pref_service_->GetMutableList(prefs::kURLsToRestoreOnStartup); | 112 pref_service_->GetMutableList(prefs::kURLsToRestoreOnStartup); |
| 127 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 113 local_list_value->Append(Value::CreateStringValue(local_url0_)); |
| 128 | 114 |
| 129 const PrefService::Preference* pref = | 115 const PrefService::Preference* pref = |
| 130 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 116 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 131 scoped_ptr<Value> merged_value( | 117 scoped_ptr<Value> merged_value( |
| 132 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); | 118 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); |
| 133 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 119 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
| 134 } | 120 } |
| 135 | 121 |
| 136 TEST_F(ListPreferenceMergeTest, BothNull) { | |
| 137 SetPrefToNull(prefs::kURLsToRestoreOnStartup); | |
| 138 scoped_ptr<Value> null_value(Value::CreateNullValue()); | |
| 139 const PrefService::Preference* pref = | |
| 140 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | |
| 141 scoped_ptr<Value> merged_value( | |
| 142 PreferenceModelAssociator::MergePreference(*pref, *null_value)); | |
| 143 EXPECT_TRUE(merged_value->Equals(null_value.get())); | |
| 144 } | |
| 145 | |
| 146 TEST_F(ListPreferenceMergeTest, Merge) { | 122 TEST_F(ListPreferenceMergeTest, Merge) { |
| 147 ListValue* local_list_value = | 123 ListValue* local_list_value = |
| 148 pref_service_->GetMutableList(prefs::kURLsToRestoreOnStartup); | 124 pref_service_->GetMutableList(prefs::kURLsToRestoreOnStartup); |
| 149 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 125 local_list_value->Append(Value::CreateStringValue(local_url0_)); |
| 150 local_list_value->Append(Value::CreateStringValue(local_url1_)); | 126 local_list_value->Append(Value::CreateStringValue(local_url1_)); |
| 151 | 127 |
| 152 const PrefService::Preference* pref = | 128 const PrefService::Preference* pref = |
| 153 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 129 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
| 154 scoped_ptr<Value> merged_value( | 130 scoped_ptr<Value> merged_value( |
| 155 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); | 131 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 } | 188 } |
| 213 | 189 |
| 214 std::string expression0_; | 190 std::string expression0_; |
| 215 std::string expression1_; | 191 std::string expression1_; |
| 216 std::string expression2_; | 192 std::string expression2_; |
| 217 std::string content_type0_; | 193 std::string content_type0_; |
| 218 std::string content_type1_; | 194 std::string content_type1_; |
| 219 DictionaryValue server_patterns_; | 195 DictionaryValue server_patterns_; |
| 220 }; | 196 }; |
| 221 | 197 |
| 222 TEST_F(DictionaryPreferenceMergeTest, LocalNull) { | |
| 223 SetPrefToNull(prefs::kContentSettingsPatterns); | |
| 224 const PrefService::Preference* pref = | |
| 225 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | |
| 226 scoped_ptr<Value> merged_value( | |
| 227 PreferenceModelAssociator::MergePreference(*pref, server_patterns_)); | |
| 228 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | |
| 229 } | |
| 230 | |
| 231 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) { | 198 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) { |
| 232 SetPrefToEmpty(prefs::kContentSettingsPatterns); | 199 SetPrefToEmpty(prefs::kContentSettingsPatterns); |
| 233 const PrefService::Preference* pref = | 200 const PrefService::Preference* pref = |
| 234 pref_service_->FindPreference(prefs::kContentSettingsPatterns); | 201 pref_service_->FindPreference(prefs::kContentSettingsPatterns); |
| 235 scoped_ptr<Value> merged_value( | 202 scoped_ptr<Value> merged_value( |
| 236 PreferenceModelAssociator::MergePreference(*pref, server_patterns_)); | 203 PreferenceModelAssociator::MergePreference(*pref, server_patterns_)); |
| 237 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | 204 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); |
| 238 } | 205 } |
| 239 | 206 |
| 240 TEST_F(DictionaryPreferenceMergeTest, ServerNull) { | 207 TEST_F(DictionaryPreferenceMergeTest, ServerNull) { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 256 pref_service_->GetMutableDictionary(prefs::kContentSettingsPatterns); | 223 pref_service_->GetMutableDictionary(prefs::kContentSettingsPatterns); |
| 257 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); | 224 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); |
| 258 | 225 |
| 259 const PrefService::Preference* pref = | 226 const PrefService::Preference* pref = |
| 260 pref_service_->FindPreference(prefs::kContentSettingsPatterns); | 227 pref_service_->FindPreference(prefs::kContentSettingsPatterns); |
| 261 scoped_ptr<Value> merged_value( | 228 scoped_ptr<Value> merged_value( |
| 262 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); | 229 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); |
| 263 EXPECT_TRUE(merged_value->Equals(local_dict_value)); | 230 EXPECT_TRUE(merged_value->Equals(local_dict_value)); |
| 264 } | 231 } |
| 265 | 232 |
| 266 TEST_F(DictionaryPreferenceMergeTest, BothNull) { | |
| 267 scoped_ptr<Value> null_value(Value::CreateNullValue()); | |
| 268 SetPrefToNull(prefs::kContentSettingsPatterns); | |
| 269 const PrefService::Preference* pref = | |
| 270 pref_service_->FindPreference(prefs::kContentSettingsPatterns); | |
| 271 scoped_ptr<Value> merged_value( | |
| 272 PreferenceModelAssociator::MergePreference(*pref, *null_value)); | |
| 273 EXPECT_TRUE(merged_value->Equals(null_value.get())); | |
| 274 } | |
| 275 | |
| 276 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) { | 233 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) { |
| 277 DictionaryValue* local_dict_value = | 234 DictionaryValue* local_dict_value = |
| 278 pref_service_->GetMutableDictionary(prefs::kContentSettingsPatterns); | 235 pref_service_->GetMutableDictionary(prefs::kContentSettingsPatterns); |
| 279 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); | 236 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); |
| 280 | 237 |
| 281 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( | 238 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( |
| 282 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), | 239 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), |
| 283 server_patterns_)); | 240 server_patterns_)); |
| 284 | 241 |
| 285 DictionaryValue expected; | 242 DictionaryValue expected; |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 EXPECT_TRUE(MergeListPreference(prefs::kDesktopNotificationDeniedOrigins)); | 359 EXPECT_TRUE(MergeListPreference(prefs::kDesktopNotificationDeniedOrigins)); |
| 403 } | 360 } |
| 404 | 361 |
| 405 TEST_F(IndividualPreferenceMergeTest, ContentSettingsPatterns) { | 362 TEST_F(IndividualPreferenceMergeTest, ContentSettingsPatterns) { |
| 406 EXPECT_TRUE(MergeDictionaryPreference(prefs::kContentSettingsPatterns)); | 363 EXPECT_TRUE(MergeDictionaryPreference(prefs::kContentSettingsPatterns)); |
| 407 } | 364 } |
| 408 | 365 |
| 409 TEST_F(IndividualPreferenceMergeTest, GeolocationContentSettings) { | 366 TEST_F(IndividualPreferenceMergeTest, GeolocationContentSettings) { |
| 410 EXPECT_TRUE(MergeDictionaryPreference(prefs::kGeolocationContentSettings)); | 367 EXPECT_TRUE(MergeDictionaryPreference(prefs::kGeolocationContentSettings)); |
| 411 } | 368 } |
| OLD | NEW |