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 |