Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: chrome/browser/prefs/pref_model_associator_unittest.cc

Issue 6905044: Refactor preference syncing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really fix. And rebase Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/values.h" 6 #include "base/values.h"
7 #include "chrome/browser/prefs/pref_model_associator.h"
7 #include "chrome/browser/prefs/scoped_user_pref_update.h" 8 #include "chrome/browser/prefs/scoped_user_pref_update.h"
8 #include "chrome/browser/sync/glue/preference_model_associator.h"
9 #include "chrome/common/pref_names.h" 9 #include "chrome/common/pref_names.h"
10 #include "chrome/test/testing_profile.h" 10 #include "chrome/test/testing_profile.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 using browser_sync::PreferenceModelAssociator;
14
15 class AbstractPreferenceMergeTest : public testing::Test { 13 class AbstractPreferenceMergeTest : public testing::Test {
16 protected: 14 protected:
17 virtual void SetUp() { 15 virtual void SetUp() {
18 pref_service_ = profile_.GetPrefs(); 16 pref_service_ = profile_.GetPrefs();
19 } 17 }
20 18
21 void SetContentPattern(DictionaryValue* patterns_dict, 19 void SetContentPattern(DictionaryValue* patterns_dict,
22 const std::string& expression, 20 const std::string& expression,
23 const std::string& content_type, 21 const std::string& content_type,
24 int setting) { 22 int setting) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 std::string local_url1_; 72 std::string local_url1_;
75 ListValue server_url_list_; 73 ListValue server_url_list_;
76 }; 74 };
77 75
78 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { 76 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) {
79 pref_service_->SetString(prefs::kHomePage, local_url0_); 77 pref_service_->SetString(prefs::kHomePage, local_url0_);
80 const PrefService::Preference* pref = 78 const PrefService::Preference* pref =
81 pref_service_->FindPreference(prefs::kHomePage); 79 pref_service_->FindPreference(prefs::kHomePage);
82 scoped_ptr<Value> server_value(Value::CreateStringValue(server_url0_)); 80 scoped_ptr<Value> server_value(Value::CreateStringValue(server_url0_));
83 scoped_ptr<Value> merged_value( 81 scoped_ptr<Value> merged_value(
84 PreferenceModelAssociator::MergePreference(*pref, *server_value)); 82 PrefModelAssociator::MergePreference(*pref, *server_value));
85 EXPECT_TRUE(merged_value->Equals(server_value.get())); 83 EXPECT_TRUE(merged_value->Equals(server_value.get()));
86 } 84 }
87 85
88 TEST_F(ListPreferenceMergeTest, LocalEmpty) { 86 TEST_F(ListPreferenceMergeTest, LocalEmpty) {
89 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); 87 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup);
90 const PrefService::Preference* pref = 88 const PrefService::Preference* pref =
91 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 89 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
92 scoped_ptr<Value> merged_value( 90 scoped_ptr<Value> merged_value(
93 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); 91 PrefModelAssociator::MergePreference(*pref, server_url_list_));
94 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); 92 EXPECT_TRUE(merged_value->Equals(&server_url_list_));
95 } 93 }
96 94
97 TEST_F(ListPreferenceMergeTest, ServerNull) { 95 TEST_F(ListPreferenceMergeTest, ServerNull) {
98 scoped_ptr<Value> null_value(Value::CreateNullValue()); 96 scoped_ptr<Value> null_value(Value::CreateNullValue());
99 { 97 {
100 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); 98 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup);
101 ListValue* local_list_value = update.Get(); 99 ListValue* local_list_value = update.Get();
102 local_list_value->Append(Value::CreateStringValue(local_url0_)); 100 local_list_value->Append(Value::CreateStringValue(local_url0_));
103 } 101 }
104 102
105 const PrefService::Preference* pref = 103 const PrefService::Preference* pref =
106 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 104 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
107 scoped_ptr<Value> merged_value( 105 scoped_ptr<Value> merged_value(
108 PreferenceModelAssociator::MergePreference(*pref, *null_value)); 106 PrefModelAssociator::MergePreference(*pref, *null_value));
109 const ListValue* local_list_value = 107 const ListValue* local_list_value =
110 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); 108 pref_service_->GetList(prefs::kURLsToRestoreOnStartup);
111 EXPECT_TRUE(merged_value->Equals(local_list_value)); 109 EXPECT_TRUE(merged_value->Equals(local_list_value));
112 } 110 }
113 111
114 TEST_F(ListPreferenceMergeTest, ServerEmpty) { 112 TEST_F(ListPreferenceMergeTest, ServerEmpty) {
115 scoped_ptr<Value> empty_value(new ListValue); 113 scoped_ptr<Value> empty_value(new ListValue);
116 { 114 {
117 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); 115 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup);
118 ListValue* local_list_value = update.Get(); 116 ListValue* local_list_value = update.Get();
119 local_list_value->Append(Value::CreateStringValue(local_url0_)); 117 local_list_value->Append(Value::CreateStringValue(local_url0_));
120 } 118 }
121 119
122 const PrefService::Preference* pref = 120 const PrefService::Preference* pref =
123 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 121 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
124 scoped_ptr<Value> merged_value( 122 scoped_ptr<Value> merged_value(
125 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); 123 PrefModelAssociator::MergePreference(*pref, *empty_value));
126 const ListValue* local_list_value = 124 const ListValue* local_list_value =
127 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); 125 pref_service_->GetList(prefs::kURLsToRestoreOnStartup);
128 EXPECT_TRUE(merged_value->Equals(local_list_value)); 126 EXPECT_TRUE(merged_value->Equals(local_list_value));
129 } 127 }
130 128
131 TEST_F(ListPreferenceMergeTest, Merge) { 129 TEST_F(ListPreferenceMergeTest, Merge) {
132 { 130 {
133 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); 131 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup);
134 ListValue* local_list_value = update.Get(); 132 ListValue* local_list_value = update.Get();
135 local_list_value->Append(Value::CreateStringValue(local_url0_)); 133 local_list_value->Append(Value::CreateStringValue(local_url0_));
136 local_list_value->Append(Value::CreateStringValue(local_url1_)); 134 local_list_value->Append(Value::CreateStringValue(local_url1_));
137 } 135 }
138 136
139 const PrefService::Preference* pref = 137 const PrefService::Preference* pref =
140 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 138 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
141 scoped_ptr<Value> merged_value( 139 scoped_ptr<Value> merged_value(
142 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); 140 PrefModelAssociator::MergePreference(*pref, server_url_list_));
143 141
144 ListValue expected; 142 ListValue expected;
145 expected.Append(Value::CreateStringValue(server_url0_)); 143 expected.Append(Value::CreateStringValue(server_url0_));
146 expected.Append(Value::CreateStringValue(server_url1_)); 144 expected.Append(Value::CreateStringValue(server_url1_));
147 expected.Append(Value::CreateStringValue(local_url0_)); 145 expected.Append(Value::CreateStringValue(local_url0_));
148 expected.Append(Value::CreateStringValue(local_url1_)); 146 expected.Append(Value::CreateStringValue(local_url1_));
149 EXPECT_TRUE(merged_value->Equals(&expected)); 147 EXPECT_TRUE(merged_value->Equals(&expected));
150 } 148 }
151 149
152 TEST_F(ListPreferenceMergeTest, Duplicates) { 150 TEST_F(ListPreferenceMergeTest, Duplicates) {
153 { 151 {
154 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); 152 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup);
155 ListValue* local_list_value = update.Get(); 153 ListValue* local_list_value = update.Get();
156 local_list_value->Append(Value::CreateStringValue(local_url0_)); 154 local_list_value->Append(Value::CreateStringValue(local_url0_));
157 local_list_value->Append(Value::CreateStringValue(server_url0_)); 155 local_list_value->Append(Value::CreateStringValue(server_url0_));
158 local_list_value->Append(Value::CreateStringValue(server_url1_)); 156 local_list_value->Append(Value::CreateStringValue(server_url1_));
159 } 157 }
160 158
161 const PrefService::Preference* pref = 159 const PrefService::Preference* pref =
162 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 160 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
163 scoped_ptr<Value> merged_value( 161 scoped_ptr<Value> merged_value(
164 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); 162 PrefModelAssociator::MergePreference(*pref, server_url_list_));
165 163
166 ListValue expected; 164 ListValue expected;
167 expected.Append(Value::CreateStringValue(server_url0_)); 165 expected.Append(Value::CreateStringValue(server_url0_));
168 expected.Append(Value::CreateStringValue(server_url1_)); 166 expected.Append(Value::CreateStringValue(server_url1_));
169 expected.Append(Value::CreateStringValue(local_url0_)); 167 expected.Append(Value::CreateStringValue(local_url0_));
170 EXPECT_TRUE(merged_value->Equals(&expected)); 168 EXPECT_TRUE(merged_value->Equals(&expected));
171 } 169 }
172 170
173 TEST_F(ListPreferenceMergeTest, Equals) { 171 TEST_F(ListPreferenceMergeTest, Equals) {
174 { 172 {
175 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); 173 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup);
176 ListValue* local_list_value = update.Get(); 174 ListValue* local_list_value = update.Get();
177 local_list_value->Append(Value::CreateStringValue(server_url0_)); 175 local_list_value->Append(Value::CreateStringValue(server_url0_));
178 local_list_value->Append(Value::CreateStringValue(server_url1_)); 176 local_list_value->Append(Value::CreateStringValue(server_url1_));
179 } 177 }
180 178
181 scoped_ptr<Value> original(server_url_list_.DeepCopy()); 179 scoped_ptr<Value> original(server_url_list_.DeepCopy());
182 const PrefService::Preference* pref = 180 const PrefService::Preference* pref =
183 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); 181 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup);
184 scoped_ptr<Value> merged_value( 182 scoped_ptr<Value> merged_value(
185 PreferenceModelAssociator::MergePreference(*pref, server_url_list_)); 183 PrefModelAssociator::MergePreference(*pref, server_url_list_));
186 EXPECT_TRUE(merged_value->Equals(original.get())); 184 EXPECT_TRUE(merged_value->Equals(original.get()));
187 } 185 }
188 186
189 class DictionaryPreferenceMergeTest : public AbstractPreferenceMergeTest { 187 class DictionaryPreferenceMergeTest : public AbstractPreferenceMergeTest {
190 protected: 188 protected:
191 DictionaryPreferenceMergeTest() : 189 DictionaryPreferenceMergeTest() :
192 expression0_("expression0"), 190 expression0_("expression0"),
193 expression1_("expression1"), 191 expression1_("expression1"),
194 expression2_("expression2"), 192 expression2_("expression2"),
195 content_type0_("content_type0"), 193 content_type0_("content_type0"),
(...skipping 12 matching lines...) Expand all
208 std::string content_type0_; 206 std::string content_type0_;
209 std::string content_type1_; 207 std::string content_type1_;
210 DictionaryValue server_patterns_; 208 DictionaryValue server_patterns_;
211 }; 209 };
212 210
213 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) { 211 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) {
214 SetPrefToEmpty(prefs::kContentSettingsPatterns); 212 SetPrefToEmpty(prefs::kContentSettingsPatterns);
215 const PrefService::Preference* pref = 213 const PrefService::Preference* pref =
216 pref_service_->FindPreference(prefs::kContentSettingsPatterns); 214 pref_service_->FindPreference(prefs::kContentSettingsPatterns);
217 scoped_ptr<Value> merged_value( 215 scoped_ptr<Value> merged_value(
218 PreferenceModelAssociator::MergePreference(*pref, server_patterns_)); 216 PrefModelAssociator::MergePreference(*pref, server_patterns_));
219 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); 217 EXPECT_TRUE(merged_value->Equals(&server_patterns_));
220 } 218 }
221 219
222 TEST_F(DictionaryPreferenceMergeTest, ServerNull) { 220 TEST_F(DictionaryPreferenceMergeTest, ServerNull) {
223 scoped_ptr<Value> null_value(Value::CreateNullValue()); 221 scoped_ptr<Value> null_value(Value::CreateNullValue());
224 { 222 {
225 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 223 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
226 DictionaryValue* local_dict_value = update.Get(); 224 DictionaryValue* local_dict_value = update.Get();
227 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); 225 SetContentPattern(local_dict_value, expression2_, content_type0_, 1);
228 } 226 }
229 227
230 const PrefService::Preference* pref = 228 const PrefService::Preference* pref =
231 pref_service_->FindPreference(prefs::kContentSettingsPatterns); 229 pref_service_->FindPreference(prefs::kContentSettingsPatterns);
232 scoped_ptr<Value> merged_value( 230 scoped_ptr<Value> merged_value(
233 PreferenceModelAssociator::MergePreference(*pref, *null_value)); 231 PrefModelAssociator::MergePreference(*pref, *null_value));
234 const DictionaryValue* local_dict_value = 232 const DictionaryValue* local_dict_value =
235 pref_service_->GetDictionary(prefs::kContentSettingsPatterns); 233 pref_service_->GetDictionary(prefs::kContentSettingsPatterns);
236 EXPECT_TRUE(merged_value->Equals(local_dict_value)); 234 EXPECT_TRUE(merged_value->Equals(local_dict_value));
237 } 235 }
238 236
239 TEST_F(DictionaryPreferenceMergeTest, ServerEmpty) { 237 TEST_F(DictionaryPreferenceMergeTest, ServerEmpty) {
240 scoped_ptr<Value> empty_value(new DictionaryValue); 238 scoped_ptr<Value> empty_value(new DictionaryValue);
241 { 239 {
242 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 240 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
243 DictionaryValue* local_dict_value = update.Get(); 241 DictionaryValue* local_dict_value = update.Get();
244 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); 242 SetContentPattern(local_dict_value, expression2_, content_type0_, 1);
245 } 243 }
246 244
247 const PrefService::Preference* pref = 245 const PrefService::Preference* pref =
248 pref_service_->FindPreference(prefs::kContentSettingsPatterns); 246 pref_service_->FindPreference(prefs::kContentSettingsPatterns);
249 scoped_ptr<Value> merged_value( 247 scoped_ptr<Value> merged_value(
250 PreferenceModelAssociator::MergePreference(*pref, *empty_value)); 248 PrefModelAssociator::MergePreference(*pref, *empty_value));
251 const DictionaryValue* local_dict_value = 249 const DictionaryValue* local_dict_value =
252 pref_service_->GetDictionary(prefs::kContentSettingsPatterns); 250 pref_service_->GetDictionary(prefs::kContentSettingsPatterns);
253 EXPECT_TRUE(merged_value->Equals(local_dict_value)); 251 EXPECT_TRUE(merged_value->Equals(local_dict_value));
254 } 252 }
255 253
256 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) { 254 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) {
257 { 255 {
258 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 256 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
259 DictionaryValue* local_dict_value = update.Get(); 257 DictionaryValue* local_dict_value = update.Get();
260 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); 258 SetContentPattern(local_dict_value, expression2_, content_type0_, 1);
261 } 259 }
262 260
263 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 261 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
264 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), 262 *pref_service_->FindPreference(prefs::kContentSettingsPatterns),
265 server_patterns_)); 263 server_patterns_));
266 264
267 DictionaryValue expected; 265 DictionaryValue expected;
268 SetContentPattern(&expected, expression0_, content_type0_, 1); 266 SetContentPattern(&expected, expression0_, content_type0_, 1);
269 SetContentPattern(&expected, expression0_, content_type1_, 2); 267 SetContentPattern(&expected, expression0_, content_type1_, 2);
270 SetContentPattern(&expected, expression1_, content_type0_, 1); 268 SetContentPattern(&expected, expression1_, content_type0_, 1);
271 SetContentPattern(&expected, expression2_, content_type0_, 1); 269 SetContentPattern(&expected, expression2_, content_type0_, 1);
272 EXPECT_TRUE(merged_value->Equals(&expected)); 270 EXPECT_TRUE(merged_value->Equals(&expected));
273 } 271 }
274 272
275 TEST_F(DictionaryPreferenceMergeTest, MergeConflicts) { 273 TEST_F(DictionaryPreferenceMergeTest, MergeConflicts) {
276 { 274 {
277 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 275 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
278 DictionaryValue* local_dict_value = update.Get(); 276 DictionaryValue* local_dict_value = update.Get();
279 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); 277 SetContentPattern(local_dict_value, expression0_, content_type0_, 2);
280 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); 278 SetContentPattern(local_dict_value, expression1_, content_type0_, 1);
281 SetContentPattern(local_dict_value, expression1_, content_type1_, 1); 279 SetContentPattern(local_dict_value, expression1_, content_type1_, 1);
282 SetContentPattern(local_dict_value, expression2_, content_type0_, 2); 280 SetContentPattern(local_dict_value, expression2_, content_type0_, 2);
283 } 281 }
284 282
285 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 283 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
286 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), 284 *pref_service_->FindPreference(prefs::kContentSettingsPatterns),
287 server_patterns_)); 285 server_patterns_));
288 286
289 DictionaryValue expected; 287 DictionaryValue expected;
290 SetContentPattern(&expected, expression0_, content_type0_, 1); 288 SetContentPattern(&expected, expression0_, content_type0_, 1);
291 SetContentPattern(&expected, expression0_, content_type1_, 2); 289 SetContentPattern(&expected, expression0_, content_type1_, 2);
292 SetContentPattern(&expected, expression1_, content_type0_, 1); 290 SetContentPattern(&expected, expression1_, content_type0_, 1);
293 SetContentPattern(&expected, expression1_, content_type1_, 1); 291 SetContentPattern(&expected, expression1_, content_type1_, 1);
294 SetContentPattern(&expected, expression2_, content_type0_, 2); 292 SetContentPattern(&expected, expression2_, content_type0_, 2);
295 EXPECT_TRUE(merged_value->Equals(&expected)); 293 EXPECT_TRUE(merged_value->Equals(&expected));
296 } 294 }
297 295
298 TEST_F(DictionaryPreferenceMergeTest, Equal) { 296 TEST_F(DictionaryPreferenceMergeTest, Equal) {
299 { 297 {
300 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 298 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
301 DictionaryValue* local_dict_value = update.Get(); 299 DictionaryValue* local_dict_value = update.Get();
302 SetContentPattern(local_dict_value, expression0_, content_type0_, 1); 300 SetContentPattern(local_dict_value, expression0_, content_type0_, 1);
303 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); 301 SetContentPattern(local_dict_value, expression0_, content_type1_, 2);
304 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); 302 SetContentPattern(local_dict_value, expression1_, content_type0_, 1);
305 } 303 }
306 304
307 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 305 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
308 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), 306 *pref_service_->FindPreference(prefs::kContentSettingsPatterns),
309 server_patterns_)); 307 server_patterns_));
310 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); 308 EXPECT_TRUE(merged_value->Equals(&server_patterns_));
311 } 309 }
312 310
313 TEST_F(DictionaryPreferenceMergeTest, ConflictButServerWins) { 311 TEST_F(DictionaryPreferenceMergeTest, ConflictButServerWins) {
314 { 312 {
315 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns); 313 DictionaryPrefUpdate update(pref_service_, prefs::kContentSettingsPatterns);
316 DictionaryValue* local_dict_value = update.Get(); 314 DictionaryValue* local_dict_value = update.Get();
317 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); 315 SetContentPattern(local_dict_value, expression0_, content_type0_, 2);
318 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); 316 SetContentPattern(local_dict_value, expression0_, content_type1_, 2);
319 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); 317 SetContentPattern(local_dict_value, expression1_, content_type0_, 1);
320 } 318 }
321 319
322 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 320 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
323 *pref_service_->FindPreference(prefs::kContentSettingsPatterns), 321 *pref_service_->FindPreference(prefs::kContentSettingsPatterns),
324 server_patterns_)); 322 server_patterns_));
325 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); 323 EXPECT_TRUE(merged_value->Equals(&server_patterns_));
326 } 324 }
327 325
328 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest { 326 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest {
329 protected: 327 protected:
330 IndividualPreferenceMergeTest() : 328 IndividualPreferenceMergeTest() :
331 url0_("http://example.com/server0"), 329 url0_("http://example.com/server0"),
332 url1_("http://example.com/server1"), 330 url1_("http://example.com/server1"),
333 expression0_("expression0"), 331 expression0_("expression0"),
334 expression1_("expression1"), 332 expression1_("expression1"),
335 content_type0_("content_type0") {} 333 content_type0_("content_type0") {}
336 334
337 virtual void SetUp() { 335 virtual void SetUp() {
338 AbstractPreferenceMergeTest::SetUp(); 336 AbstractPreferenceMergeTest::SetUp();
339 server_url_list_.Append(Value::CreateStringValue(url0_)); 337 server_url_list_.Append(Value::CreateStringValue(url0_));
340 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); 338 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1);
341 } 339 }
342 340
343 bool MergeListPreference(const char* pref) { 341 bool MergeListPreference(const char* pref) {
344 { 342 {
345 ListPrefUpdate update(pref_service_, pref); 343 ListPrefUpdate update(pref_service_, pref);
346 ListValue* local_list_value = update.Get(); 344 ListValue* local_list_value = update.Get();
347 local_list_value->Append(Value::CreateStringValue(url1_)); 345 local_list_value->Append(Value::CreateStringValue(url1_));
348 } 346 }
349 347
350 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 348 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
351 *pref_service_->FindPreference(pref), 349 *pref_service_->FindPreference(pref),
352 server_url_list_)); 350 server_url_list_));
353 351
354 ListValue expected; 352 ListValue expected;
355 expected.Append(Value::CreateStringValue(url0_)); 353 expected.Append(Value::CreateStringValue(url0_));
356 expected.Append(Value::CreateStringValue(url1_)); 354 expected.Append(Value::CreateStringValue(url1_));
357 return merged_value->Equals(&expected); 355 return merged_value->Equals(&expected);
358 } 356 }
359 357
360 bool MergeDictionaryPreference(const char* pref) { 358 bool MergeDictionaryPreference(const char* pref) {
361 { 359 {
362 DictionaryPrefUpdate update(pref_service_, pref); 360 DictionaryPrefUpdate update(pref_service_, pref);
363 DictionaryValue* local_dict_value = update.Get(); 361 DictionaryValue* local_dict_value = update.Get();
364 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); 362 SetContentPattern(local_dict_value, expression1_, content_type0_, 1);
365 } 363 }
366 364
367 scoped_ptr<Value> merged_value(PreferenceModelAssociator::MergePreference( 365 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference(
368 *pref_service_->FindPreference(pref), 366 *pref_service_->FindPreference(pref),
369 server_patterns_)); 367 server_patterns_));
370 368
371 DictionaryValue expected; 369 DictionaryValue expected;
372 SetContentPattern(&expected, expression0_, content_type0_, 1); 370 SetContentPattern(&expected, expression0_, content_type0_, 1);
373 SetContentPattern(&expected, expression1_, content_type0_, 1); 371 SetContentPattern(&expected, expression1_, content_type0_, 1);
374 return merged_value->Equals(&expected); 372 return merged_value->Equals(&expected);
375 } 373 }
376 374
377 std::string url0_; 375 std::string url0_;
(...skipping 17 matching lines...) Expand all
395 EXPECT_TRUE(MergeListPreference(prefs::kDesktopNotificationDeniedOrigins)); 393 EXPECT_TRUE(MergeListPreference(prefs::kDesktopNotificationDeniedOrigins));
396 } 394 }
397 395
398 TEST_F(IndividualPreferenceMergeTest, ContentSettingsPatterns) { 396 TEST_F(IndividualPreferenceMergeTest, ContentSettingsPatterns) {
399 EXPECT_TRUE(MergeDictionaryPreference(prefs::kContentSettingsPatterns)); 397 EXPECT_TRUE(MergeDictionaryPreference(prefs::kContentSettingsPatterns));
400 } 398 }
401 399
402 TEST_F(IndividualPreferenceMergeTest, GeolocationContentSettings) { 400 TEST_F(IndividualPreferenceMergeTest, GeolocationContentSettings) {
403 EXPECT_TRUE(MergeDictionaryPreference(prefs::kGeolocationContentSettings)); 401 EXPECT_TRUE(MergeDictionaryPreference(prefs::kGeolocationContentSettings));
404 } 402 }
OLDNEW
« no previous file with comments | « chrome/browser/prefs/pref_model_associator.cc ('k') | chrome/browser/prefs/pref_notifier_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698