OLD | NEW |
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/prefs/scoped_user_pref_update.h" | 6 #include "base/prefs/scoped_user_pref_update.h" |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "chrome/browser/prefs/pref_model_associator.h" | 8 #include "chrome/browser/prefs/pref_model_associator.h" |
9 #include "chrome/common/pref_names.h" | 9 #include "chrome/common/pref_names.h" |
10 #include "chrome/test/base/testing_profile.h" | 10 #include "chrome/test/base/testing_profile.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
12 | 12 |
13 class AbstractPreferenceMergeTest : public testing::Test { | 13 class AbstractPreferenceMergeTest : public testing::Test { |
14 protected: | 14 protected: |
15 virtual void SetUp() { | 15 virtual void SetUp() { |
16 pref_service_ = profile_.GetPrefs(); | 16 pref_service_ = profile_.GetPrefs(); |
17 } | 17 } |
18 | 18 |
19 void SetContentPattern(DictionaryValue* patterns_dict, | 19 void SetContentPattern(base::DictionaryValue* patterns_dict, |
20 const std::string& expression, | 20 const std::string& expression, |
21 const std::string& content_type, | 21 const std::string& content_type, |
22 int setting) { | 22 int setting) { |
23 DictionaryValue* expression_dict; | 23 base::DictionaryValue* expression_dict; |
24 bool found = | 24 bool found = |
25 patterns_dict->GetDictionaryWithoutPathExpansion(expression, | 25 patterns_dict->GetDictionaryWithoutPathExpansion(expression, |
26 &expression_dict); | 26 &expression_dict); |
27 if (!found) { | 27 if (!found) { |
28 expression_dict = new DictionaryValue; | 28 expression_dict = new base::DictionaryValue; |
29 patterns_dict->SetWithoutPathExpansion(expression, expression_dict); | 29 patterns_dict->SetWithoutPathExpansion(expression, expression_dict); |
30 } | 30 } |
31 expression_dict->SetWithoutPathExpansion( | 31 expression_dict->SetWithoutPathExpansion( |
32 content_type, | 32 content_type, |
33 Value::CreateIntegerValue(setting)); | 33 base::Value::CreateIntegerValue(setting)); |
34 } | 34 } |
35 | 35 |
36 void SetPrefToEmpty(const std::string& pref_name) { | 36 void SetPrefToEmpty(const std::string& pref_name) { |
37 scoped_ptr<Value> empty_value; | 37 scoped_ptr<base::Value> empty_value; |
38 const PrefService::Preference* pref = | 38 const PrefService::Preference* pref = |
39 pref_service_->FindPreference(pref_name.c_str()); | 39 pref_service_->FindPreference(pref_name.c_str()); |
40 ASSERT_TRUE(pref); | 40 ASSERT_TRUE(pref); |
41 base::Value::Type type = pref->GetType(); | 41 base::Value::Type type = pref->GetType(); |
42 if (type == Value::TYPE_DICTIONARY) | 42 if (type == base::Value::TYPE_DICTIONARY) |
43 empty_value.reset(new DictionaryValue); | 43 empty_value.reset(new base::DictionaryValue); |
44 else if (type == Value::TYPE_LIST) | 44 else if (type == base::Value::TYPE_LIST) |
45 empty_value.reset(new ListValue); | 45 empty_value.reset(new base::ListValue); |
46 else | 46 else |
47 FAIL(); | 47 FAIL(); |
48 pref_service_->Set(pref_name.c_str(), *empty_value); | 48 pref_service_->Set(pref_name.c_str(), *empty_value); |
49 } | 49 } |
50 | 50 |
51 TestingProfile profile_; | 51 TestingProfile profile_; |
52 PrefService* pref_service_; | 52 PrefService* pref_service_; |
53 }; | 53 }; |
54 | 54 |
55 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { | 55 class ListPreferenceMergeTest : public AbstractPreferenceMergeTest { |
56 protected: | 56 protected: |
57 ListPreferenceMergeTest() : | 57 ListPreferenceMergeTest() : |
58 server_url0_("http://example.com/server0"), | 58 server_url0_("http://example.com/server0"), |
59 server_url1_("http://example.com/server1"), | 59 server_url1_("http://example.com/server1"), |
60 local_url0_("http://example.com/local0"), | 60 local_url0_("http://example.com/local0"), |
61 local_url1_("http://example.com/local1") {} | 61 local_url1_("http://example.com/local1") {} |
62 | 62 |
63 virtual void SetUp() { | 63 virtual void SetUp() { |
64 AbstractPreferenceMergeTest::SetUp(); | 64 AbstractPreferenceMergeTest::SetUp(); |
65 server_url_list_.Append(Value::CreateStringValue(server_url0_)); | 65 server_url_list_.Append(base::Value::CreateStringValue(server_url0_)); |
66 server_url_list_.Append(Value::CreateStringValue(server_url1_)); | 66 server_url_list_.Append(base::Value::CreateStringValue(server_url1_)); |
67 } | 67 } |
68 | 68 |
69 std::string server_url0_; | 69 std::string server_url0_; |
70 std::string server_url1_; | 70 std::string server_url1_; |
71 std::string local_url0_; | 71 std::string local_url0_; |
72 std::string local_url1_; | 72 std::string local_url1_; |
73 ListValue server_url_list_; | 73 base::ListValue server_url_list_; |
74 }; | 74 }; |
75 | 75 |
76 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { | 76 TEST_F(ListPreferenceMergeTest, NotListOrDictionary) { |
77 pref_service_->SetString(prefs::kHomePage, local_url0_); | 77 pref_service_->SetString(prefs::kHomePage, local_url0_); |
78 const PrefService::Preference* pref = | 78 const PrefService::Preference* pref = |
79 pref_service_->FindPreference(prefs::kHomePage); | 79 pref_service_->FindPreference(prefs::kHomePage); |
80 scoped_ptr<Value> server_value(Value::CreateStringValue(server_url0_)); | 80 scoped_ptr<base::Value> server_value( |
81 scoped_ptr<Value> merged_value( | 81 base::Value::CreateStringValue(server_url0_)); |
| 82 scoped_ptr<base::Value> merged_value( |
82 PrefModelAssociator::MergePreference(pref->name(), | 83 PrefModelAssociator::MergePreference(pref->name(), |
83 *pref->GetValue(), | 84 *pref->GetValue(), |
84 *server_value)); | 85 *server_value)); |
85 EXPECT_TRUE(merged_value->Equals(server_value.get())); | 86 EXPECT_TRUE(merged_value->Equals(server_value.get())); |
86 } | 87 } |
87 | 88 |
88 TEST_F(ListPreferenceMergeTest, LocalEmpty) { | 89 TEST_F(ListPreferenceMergeTest, LocalEmpty) { |
89 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); | 90 SetPrefToEmpty(prefs::kURLsToRestoreOnStartup); |
90 const PrefService::Preference* pref = | 91 const PrefService::Preference* pref = |
91 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 92 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
92 scoped_ptr<Value> merged_value( | 93 scoped_ptr<base::Value> merged_value( |
93 PrefModelAssociator::MergePreference(pref->name(), | 94 PrefModelAssociator::MergePreference(pref->name(), |
94 *pref->GetValue(), | 95 *pref->GetValue(), |
95 server_url_list_)); | 96 server_url_list_)); |
96 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); | 97 EXPECT_TRUE(merged_value->Equals(&server_url_list_)); |
97 } | 98 } |
98 | 99 |
99 TEST_F(ListPreferenceMergeTest, ServerNull) { | 100 TEST_F(ListPreferenceMergeTest, ServerNull) { |
100 scoped_ptr<Value> null_value(Value::CreateNullValue()); | 101 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); |
101 { | 102 { |
102 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 103 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
103 ListValue* local_list_value = update.Get(); | 104 base::ListValue* local_list_value = update.Get(); |
104 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 105 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); |
105 } | 106 } |
106 | 107 |
107 const PrefService::Preference* pref = | 108 const PrefService::Preference* pref = |
108 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 109 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
109 scoped_ptr<Value> merged_value( | 110 scoped_ptr<base::Value> merged_value( |
110 PrefModelAssociator::MergePreference(pref->name(), | 111 PrefModelAssociator::MergePreference(pref->name(), |
111 *pref->GetValue(), | 112 *pref->GetValue(), |
112 *null_value)); | 113 *null_value)); |
113 const ListValue* local_list_value = | 114 const base::ListValue* local_list_value = |
114 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); | 115 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); |
115 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 116 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
116 } | 117 } |
117 | 118 |
118 TEST_F(ListPreferenceMergeTest, ServerEmpty) { | 119 TEST_F(ListPreferenceMergeTest, ServerEmpty) { |
119 scoped_ptr<Value> empty_value(new ListValue); | 120 scoped_ptr<base::Value> empty_value(new base::ListValue); |
120 { | 121 { |
121 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 122 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
122 ListValue* local_list_value = update.Get(); | 123 base::ListValue* local_list_value = update.Get(); |
123 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 124 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); |
124 } | 125 } |
125 | 126 |
126 const PrefService::Preference* pref = | 127 const PrefService::Preference* pref = |
127 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 128 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
128 scoped_ptr<Value> merged_value( | 129 scoped_ptr<base::Value> merged_value( |
129 PrefModelAssociator::MergePreference(pref->name(), | 130 PrefModelAssociator::MergePreference(pref->name(), |
130 *pref->GetValue(), | 131 *pref->GetValue(), |
131 *empty_value)); | 132 *empty_value)); |
132 const ListValue* local_list_value = | 133 const base::ListValue* local_list_value = |
133 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); | 134 pref_service_->GetList(prefs::kURLsToRestoreOnStartup); |
134 EXPECT_TRUE(merged_value->Equals(local_list_value)); | 135 EXPECT_TRUE(merged_value->Equals(local_list_value)); |
135 } | 136 } |
136 | 137 |
137 TEST_F(ListPreferenceMergeTest, Merge) { | 138 TEST_F(ListPreferenceMergeTest, Merge) { |
138 { | 139 { |
139 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 140 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
140 ListValue* local_list_value = update.Get(); | 141 base::ListValue* local_list_value = update.Get(); |
141 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 142 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); |
142 local_list_value->Append(Value::CreateStringValue(local_url1_)); | 143 local_list_value->Append(base::Value::CreateStringValue(local_url1_)); |
143 } | 144 } |
144 | 145 |
145 const PrefService::Preference* pref = | 146 const PrefService::Preference* pref = |
146 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 147 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
147 scoped_ptr<Value> merged_value( | 148 scoped_ptr<base::Value> merged_value( |
148 PrefModelAssociator::MergePreference(pref->name(), | 149 PrefModelAssociator::MergePreference(pref->name(), |
149 *pref->GetValue(), | 150 *pref->GetValue(), |
150 server_url_list_)); | 151 server_url_list_)); |
151 | 152 |
152 ListValue expected; | 153 base::ListValue expected; |
153 expected.Append(Value::CreateStringValue(server_url0_)); | 154 expected.Append(base::Value::CreateStringValue(server_url0_)); |
154 expected.Append(Value::CreateStringValue(server_url1_)); | 155 expected.Append(base::Value::CreateStringValue(server_url1_)); |
155 expected.Append(Value::CreateStringValue(local_url0_)); | 156 expected.Append(base::Value::CreateStringValue(local_url0_)); |
156 expected.Append(Value::CreateStringValue(local_url1_)); | 157 expected.Append(base::Value::CreateStringValue(local_url1_)); |
157 EXPECT_TRUE(merged_value->Equals(&expected)); | 158 EXPECT_TRUE(merged_value->Equals(&expected)); |
158 } | 159 } |
159 | 160 |
160 TEST_F(ListPreferenceMergeTest, Duplicates) { | 161 TEST_F(ListPreferenceMergeTest, Duplicates) { |
161 { | 162 { |
162 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 163 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
163 ListValue* local_list_value = update.Get(); | 164 base::ListValue* local_list_value = update.Get(); |
164 local_list_value->Append(Value::CreateStringValue(local_url0_)); | 165 local_list_value->Append(base::Value::CreateStringValue(local_url0_)); |
165 local_list_value->Append(Value::CreateStringValue(server_url0_)); | 166 local_list_value->Append(base::Value::CreateStringValue(server_url0_)); |
166 local_list_value->Append(Value::CreateStringValue(server_url1_)); | 167 local_list_value->Append(base::Value::CreateStringValue(server_url1_)); |
167 } | 168 } |
168 | 169 |
169 const PrefService::Preference* pref = | 170 const PrefService::Preference* pref = |
170 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 171 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
171 scoped_ptr<Value> merged_value( | 172 scoped_ptr<base::Value> merged_value( |
172 PrefModelAssociator::MergePreference(pref->name(), | 173 PrefModelAssociator::MergePreference(pref->name(), |
173 *pref->GetValue(), | 174 *pref->GetValue(), |
174 server_url_list_)); | 175 server_url_list_)); |
175 | 176 |
176 ListValue expected; | 177 base::ListValue expected; |
177 expected.Append(Value::CreateStringValue(server_url0_)); | 178 expected.Append(base::Value::CreateStringValue(server_url0_)); |
178 expected.Append(Value::CreateStringValue(server_url1_)); | 179 expected.Append(base::Value::CreateStringValue(server_url1_)); |
179 expected.Append(Value::CreateStringValue(local_url0_)); | 180 expected.Append(base::Value::CreateStringValue(local_url0_)); |
180 EXPECT_TRUE(merged_value->Equals(&expected)); | 181 EXPECT_TRUE(merged_value->Equals(&expected)); |
181 } | 182 } |
182 | 183 |
183 TEST_F(ListPreferenceMergeTest, Equals) { | 184 TEST_F(ListPreferenceMergeTest, Equals) { |
184 { | 185 { |
185 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); | 186 ListPrefUpdate update(pref_service_, prefs::kURLsToRestoreOnStartup); |
186 ListValue* local_list_value = update.Get(); | 187 base::ListValue* local_list_value = update.Get(); |
187 local_list_value->Append(Value::CreateStringValue(server_url0_)); | 188 local_list_value->Append(base::Value::CreateStringValue(server_url0_)); |
188 local_list_value->Append(Value::CreateStringValue(server_url1_)); | 189 local_list_value->Append(base::Value::CreateStringValue(server_url1_)); |
189 } | 190 } |
190 | 191 |
191 scoped_ptr<Value> original(server_url_list_.DeepCopy()); | 192 scoped_ptr<base::Value> original(server_url_list_.DeepCopy()); |
192 const PrefService::Preference* pref = | 193 const PrefService::Preference* pref = |
193 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); | 194 pref_service_->FindPreference(prefs::kURLsToRestoreOnStartup); |
194 scoped_ptr<Value> merged_value( | 195 scoped_ptr<base::Value> merged_value( |
195 PrefModelAssociator::MergePreference(pref->name(), | 196 PrefModelAssociator::MergePreference(pref->name(), |
196 *pref->GetValue(), | 197 *pref->GetValue(), |
197 server_url_list_)); | 198 server_url_list_)); |
198 EXPECT_TRUE(merged_value->Equals(original.get())); | 199 EXPECT_TRUE(merged_value->Equals(original.get())); |
199 } | 200 } |
200 | 201 |
201 class DictionaryPreferenceMergeTest : public AbstractPreferenceMergeTest { | 202 class DictionaryPreferenceMergeTest : public AbstractPreferenceMergeTest { |
202 protected: | 203 protected: |
203 DictionaryPreferenceMergeTest() : | 204 DictionaryPreferenceMergeTest() : |
204 expression0_("expression0"), | 205 expression0_("expression0"), |
205 expression1_("expression1"), | 206 expression1_("expression1"), |
206 expression2_("expression2"), | 207 expression2_("expression2"), |
207 content_type0_("content_type0"), | 208 content_type0_("content_type0"), |
208 content_type1_("content_type1") {} | 209 content_type1_("content_type1") {} |
209 | 210 |
210 virtual void SetUp() { | 211 virtual void SetUp() { |
211 AbstractPreferenceMergeTest::SetUp(); | 212 AbstractPreferenceMergeTest::SetUp(); |
212 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); | 213 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); |
213 SetContentPattern(&server_patterns_, expression0_, content_type1_, 2); | 214 SetContentPattern(&server_patterns_, expression0_, content_type1_, 2); |
214 SetContentPattern(&server_patterns_, expression1_, content_type0_, 1); | 215 SetContentPattern(&server_patterns_, expression1_, content_type0_, 1); |
215 } | 216 } |
216 | 217 |
217 std::string expression0_; | 218 std::string expression0_; |
218 std::string expression1_; | 219 std::string expression1_; |
219 std::string expression2_; | 220 std::string expression2_; |
220 std::string content_type0_; | 221 std::string content_type0_; |
221 std::string content_type1_; | 222 std::string content_type1_; |
222 DictionaryValue server_patterns_; | 223 base::DictionaryValue server_patterns_; |
223 }; | 224 }; |
224 | 225 |
225 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) { | 226 TEST_F(DictionaryPreferenceMergeTest, LocalEmpty) { |
226 SetPrefToEmpty(prefs::kContentSettingsPatternPairs); | 227 SetPrefToEmpty(prefs::kContentSettingsPatternPairs); |
227 const PrefService::Preference* pref = | 228 const PrefService::Preference* pref = |
228 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); | 229 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); |
229 scoped_ptr<Value> merged_value( | 230 scoped_ptr<base::Value> merged_value( |
230 PrefModelAssociator::MergePreference(pref->name(), | 231 PrefModelAssociator::MergePreference(pref->name(), |
231 *pref->GetValue(), | 232 *pref->GetValue(), |
232 server_patterns_)); | 233 server_patterns_)); |
233 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | 234 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); |
234 } | 235 } |
235 | 236 |
236 TEST_F(DictionaryPreferenceMergeTest, ServerNull) { | 237 TEST_F(DictionaryPreferenceMergeTest, ServerNull) { |
237 scoped_ptr<Value> null_value(Value::CreateNullValue()); | 238 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); |
238 { | 239 { |
239 DictionaryPrefUpdate update(pref_service_, | 240 DictionaryPrefUpdate update(pref_service_, |
240 prefs::kContentSettingsPatternPairs); | 241 prefs::kContentSettingsPatternPairs); |
241 DictionaryValue* local_dict_value = update.Get(); | 242 base::DictionaryValue* local_dict_value = update.Get(); |
242 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); | 243 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); |
243 } | 244 } |
244 | 245 |
245 const PrefService::Preference* pref = | 246 const PrefService::Preference* pref = |
246 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); | 247 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); |
247 scoped_ptr<Value> merged_value( | 248 scoped_ptr<base::Value> merged_value( |
248 PrefModelAssociator::MergePreference(pref->name(), | 249 PrefModelAssociator::MergePreference(pref->name(), |
249 *pref->GetValue(), | 250 *pref->GetValue(), |
250 *null_value)); | 251 *null_value)); |
251 const DictionaryValue* local_dict_value = | 252 const base::DictionaryValue* local_dict_value = |
252 pref_service_->GetDictionary(prefs::kContentSettingsPatternPairs); | 253 pref_service_->GetDictionary(prefs::kContentSettingsPatternPairs); |
253 EXPECT_TRUE(merged_value->Equals(local_dict_value)); | 254 EXPECT_TRUE(merged_value->Equals(local_dict_value)); |
254 } | 255 } |
255 | 256 |
256 TEST_F(DictionaryPreferenceMergeTest, ServerEmpty) { | 257 TEST_F(DictionaryPreferenceMergeTest, ServerEmpty) { |
257 scoped_ptr<Value> empty_value(new DictionaryValue); | 258 scoped_ptr<base::Value> empty_value(new base::DictionaryValue); |
258 { | 259 { |
259 DictionaryPrefUpdate update(pref_service_, | 260 DictionaryPrefUpdate update(pref_service_, |
260 prefs::kContentSettingsPatternPairs); | 261 prefs::kContentSettingsPatternPairs); |
261 DictionaryValue* local_dict_value = update.Get(); | 262 base::DictionaryValue* local_dict_value = update.Get(); |
262 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); | 263 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); |
263 } | 264 } |
264 | 265 |
265 const PrefService::Preference* pref = | 266 const PrefService::Preference* pref = |
266 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); | 267 pref_service_->FindPreference(prefs::kContentSettingsPatternPairs); |
267 scoped_ptr<Value> merged_value( | 268 scoped_ptr<base::Value> merged_value( |
268 PrefModelAssociator::MergePreference(pref->name(), | 269 PrefModelAssociator::MergePreference(pref->name(), |
269 *pref->GetValue(), | 270 *pref->GetValue(), |
270 *empty_value)); | 271 *empty_value)); |
271 const DictionaryValue* local_dict_value = | 272 const base::DictionaryValue* local_dict_value = |
272 pref_service_->GetDictionary(prefs::kContentSettingsPatternPairs); | 273 pref_service_->GetDictionary(prefs::kContentSettingsPatternPairs); |
273 EXPECT_TRUE(merged_value->Equals(local_dict_value)); | 274 EXPECT_TRUE(merged_value->Equals(local_dict_value)); |
274 } | 275 } |
275 | 276 |
276 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) { | 277 TEST_F(DictionaryPreferenceMergeTest, MergeNoConflicts) { |
277 { | 278 { |
278 DictionaryPrefUpdate update(pref_service_, | 279 DictionaryPrefUpdate update(pref_service_, |
279 prefs::kContentSettingsPatternPairs); | 280 prefs::kContentSettingsPatternPairs); |
280 DictionaryValue* local_dict_value = update.Get(); | 281 base::DictionaryValue* local_dict_value = update.Get(); |
281 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); | 282 SetContentPattern(local_dict_value, expression2_, content_type0_, 1); |
282 } | 283 } |
283 | 284 |
284 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 285 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
285 prefs::kContentSettingsPatternPairs, | 286 prefs::kContentSettingsPatternPairs, |
286 *pref_service_->FindPreference(prefs::kContentSettingsPatternPairs)-> | 287 *pref_service_->FindPreference(prefs::kContentSettingsPatternPairs)-> |
287 GetValue(), | 288 GetValue(), |
288 server_patterns_)); | 289 server_patterns_)); |
289 | 290 |
290 DictionaryValue expected; | 291 base::DictionaryValue expected; |
291 SetContentPattern(&expected, expression0_, content_type0_, 1); | 292 SetContentPattern(&expected, expression0_, content_type0_, 1); |
292 SetContentPattern(&expected, expression0_, content_type1_, 2); | 293 SetContentPattern(&expected, expression0_, content_type1_, 2); |
293 SetContentPattern(&expected, expression1_, content_type0_, 1); | 294 SetContentPattern(&expected, expression1_, content_type0_, 1); |
294 SetContentPattern(&expected, expression2_, content_type0_, 1); | 295 SetContentPattern(&expected, expression2_, content_type0_, 1); |
295 EXPECT_TRUE(merged_value->Equals(&expected)); | 296 EXPECT_TRUE(merged_value->Equals(&expected)); |
296 } | 297 } |
297 | 298 |
298 TEST_F(DictionaryPreferenceMergeTest, MergeConflicts) { | 299 TEST_F(DictionaryPreferenceMergeTest, MergeConflicts) { |
299 { | 300 { |
300 DictionaryPrefUpdate update(pref_service_, | 301 DictionaryPrefUpdate update(pref_service_, |
301 prefs::kContentSettingsPatternPairs); | 302 prefs::kContentSettingsPatternPairs); |
302 DictionaryValue* local_dict_value = update.Get(); | 303 base::DictionaryValue* local_dict_value = update.Get(); |
303 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); | 304 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); |
304 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); | 305 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); |
305 SetContentPattern(local_dict_value, expression1_, content_type1_, 1); | 306 SetContentPattern(local_dict_value, expression1_, content_type1_, 1); |
306 SetContentPattern(local_dict_value, expression2_, content_type0_, 2); | 307 SetContentPattern(local_dict_value, expression2_, content_type0_, 2); |
307 } | 308 } |
308 | 309 |
309 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 310 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
310 prefs::kContentSettingsPatternPairs, | 311 prefs::kContentSettingsPatternPairs, |
311 *pref_service_->FindPreference(prefs::kContentSettingsPatternPairs)-> | 312 *pref_service_->FindPreference(prefs::kContentSettingsPatternPairs)-> |
312 GetValue(), | 313 GetValue(), |
313 server_patterns_)); | 314 server_patterns_)); |
314 | 315 |
315 DictionaryValue expected; | 316 base::DictionaryValue expected; |
316 SetContentPattern(&expected, expression0_, content_type0_, 1); | 317 SetContentPattern(&expected, expression0_, content_type0_, 1); |
317 SetContentPattern(&expected, expression0_, content_type1_, 2); | 318 SetContentPattern(&expected, expression0_, content_type1_, 2); |
318 SetContentPattern(&expected, expression1_, content_type0_, 1); | 319 SetContentPattern(&expected, expression1_, content_type0_, 1); |
319 SetContentPattern(&expected, expression1_, content_type1_, 1); | 320 SetContentPattern(&expected, expression1_, content_type1_, 1); |
320 SetContentPattern(&expected, expression2_, content_type0_, 2); | 321 SetContentPattern(&expected, expression2_, content_type0_, 2); |
321 EXPECT_TRUE(merged_value->Equals(&expected)); | 322 EXPECT_TRUE(merged_value->Equals(&expected)); |
322 } | 323 } |
323 | 324 |
324 TEST_F(DictionaryPreferenceMergeTest, Equal) { | 325 TEST_F(DictionaryPreferenceMergeTest, Equal) { |
325 { | 326 { |
326 DictionaryPrefUpdate update(pref_service_, | 327 DictionaryPrefUpdate update(pref_service_, |
327 prefs::kContentSettingsPatternPairs); | 328 prefs::kContentSettingsPatternPairs); |
328 DictionaryValue* local_dict_value = update.Get(); | 329 base::DictionaryValue* local_dict_value = update.Get(); |
329 SetContentPattern(local_dict_value, expression0_, content_type0_, 1); | 330 SetContentPattern(local_dict_value, expression0_, content_type0_, 1); |
330 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); | 331 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); |
331 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); | 332 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); |
332 } | 333 } |
333 | 334 |
334 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 335 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
335 prefs::kContentSettingsPatternPairs, | 336 prefs::kContentSettingsPatternPairs, |
336 *pref_service_-> | 337 *pref_service_-> |
337 FindPreference(prefs::kContentSettingsPatternPairs)->GetValue(), | 338 FindPreference(prefs::kContentSettingsPatternPairs)->GetValue(), |
338 server_patterns_)); | 339 server_patterns_)); |
339 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | 340 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); |
340 } | 341 } |
341 | 342 |
342 TEST_F(DictionaryPreferenceMergeTest, ConflictButServerWins) { | 343 TEST_F(DictionaryPreferenceMergeTest, ConflictButServerWins) { |
343 { | 344 { |
344 DictionaryPrefUpdate update(pref_service_, | 345 DictionaryPrefUpdate update(pref_service_, |
345 prefs::kContentSettingsPatternPairs); | 346 prefs::kContentSettingsPatternPairs); |
346 DictionaryValue* local_dict_value = update.Get(); | 347 base::DictionaryValue* local_dict_value = update.Get(); |
347 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); | 348 SetContentPattern(local_dict_value, expression0_, content_type0_, 2); |
348 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); | 349 SetContentPattern(local_dict_value, expression0_, content_type1_, 2); |
349 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); | 350 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); |
350 } | 351 } |
351 | 352 |
352 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 353 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
353 prefs::kContentSettingsPatternPairs, | 354 prefs::kContentSettingsPatternPairs, |
354 *pref_service_-> | 355 *pref_service_-> |
355 FindPreference(prefs::kContentSettingsPatternPairs)->GetValue(), | 356 FindPreference(prefs::kContentSettingsPatternPairs)->GetValue(), |
356 server_patterns_)); | 357 server_patterns_)); |
357 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); | 358 EXPECT_TRUE(merged_value->Equals(&server_patterns_)); |
358 } | 359 } |
359 | 360 |
360 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest { | 361 class IndividualPreferenceMergeTest : public AbstractPreferenceMergeTest { |
361 protected: | 362 protected: |
362 IndividualPreferenceMergeTest() : | 363 IndividualPreferenceMergeTest() : |
363 url0_("http://example.com/server0"), | 364 url0_("http://example.com/server0"), |
364 url1_("http://example.com/server1"), | 365 url1_("http://example.com/server1"), |
365 expression0_("expression0"), | 366 expression0_("expression0"), |
366 expression1_("expression1"), | 367 expression1_("expression1"), |
367 content_type0_("content_type0") {} | 368 content_type0_("content_type0") {} |
368 | 369 |
369 virtual void SetUp() { | 370 virtual void SetUp() { |
370 AbstractPreferenceMergeTest::SetUp(); | 371 AbstractPreferenceMergeTest::SetUp(); |
371 server_url_list_.Append(Value::CreateStringValue(url0_)); | 372 server_url_list_.Append(base::Value::CreateStringValue(url0_)); |
372 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); | 373 SetContentPattern(&server_patterns_, expression0_, content_type0_, 1); |
373 } | 374 } |
374 | 375 |
375 bool MergeListPreference(const char* pref) { | 376 bool MergeListPreference(const char* pref) { |
376 { | 377 { |
377 ListPrefUpdate update(pref_service_, pref); | 378 ListPrefUpdate update(pref_service_, pref); |
378 ListValue* local_list_value = update.Get(); | 379 base::ListValue* local_list_value = update.Get(); |
379 local_list_value->Append(Value::CreateStringValue(url1_)); | 380 local_list_value->Append(base::Value::CreateStringValue(url1_)); |
380 } | 381 } |
381 | 382 |
382 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 383 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
383 pref, | 384 pref, |
384 *pref_service_->GetUserPrefValue(pref), | 385 *pref_service_->GetUserPrefValue(pref), |
385 server_url_list_)); | 386 server_url_list_)); |
386 | 387 |
387 ListValue expected; | 388 base::ListValue expected; |
388 expected.Append(Value::CreateStringValue(url0_)); | 389 expected.Append(base::Value::CreateStringValue(url0_)); |
389 expected.Append(Value::CreateStringValue(url1_)); | 390 expected.Append(base::Value::CreateStringValue(url1_)); |
390 return merged_value->Equals(&expected); | 391 return merged_value->Equals(&expected); |
391 } | 392 } |
392 | 393 |
393 bool MergeDictionaryPreference(const char* pref) { | 394 bool MergeDictionaryPreference(const char* pref) { |
394 { | 395 { |
395 DictionaryPrefUpdate update(pref_service_, pref); | 396 DictionaryPrefUpdate update(pref_service_, pref); |
396 DictionaryValue* local_dict_value = update.Get(); | 397 base::DictionaryValue* local_dict_value = update.Get(); |
397 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); | 398 SetContentPattern(local_dict_value, expression1_, content_type0_, 1); |
398 } | 399 } |
399 | 400 |
400 scoped_ptr<Value> merged_value(PrefModelAssociator::MergePreference( | 401 scoped_ptr<base::Value> merged_value(PrefModelAssociator::MergePreference( |
401 pref, | 402 pref, |
402 *pref_service_->GetUserPrefValue(pref), | 403 *pref_service_->GetUserPrefValue(pref), |
403 server_patterns_)); | 404 server_patterns_)); |
404 | 405 |
405 DictionaryValue expected; | 406 base::DictionaryValue expected; |
406 SetContentPattern(&expected, expression0_, content_type0_, 1); | 407 SetContentPattern(&expected, expression0_, content_type0_, 1); |
407 SetContentPattern(&expected, expression1_, content_type0_, 1); | 408 SetContentPattern(&expected, expression1_, content_type0_, 1); |
408 return merged_value->Equals(&expected); | 409 return merged_value->Equals(&expected); |
409 } | 410 } |
410 | 411 |
411 std::string url0_; | 412 std::string url0_; |
412 std::string url1_; | 413 std::string url1_; |
413 std::string expression0_; | 414 std::string expression0_; |
414 std::string expression1_; | 415 std::string expression1_; |
415 std::string content_type0_; | 416 std::string content_type0_; |
416 ListValue server_url_list_; | 417 base::ListValue server_url_list_; |
417 DictionaryValue server_patterns_; | 418 base::DictionaryValue server_patterns_; |
418 }; | 419 }; |
419 | 420 |
420 TEST_F(IndividualPreferenceMergeTest, URLsToRestoreOnStartup) { | 421 TEST_F(IndividualPreferenceMergeTest, URLsToRestoreOnStartup) { |
421 EXPECT_TRUE(MergeListPreference(prefs::kURLsToRestoreOnStartup)); | 422 EXPECT_TRUE(MergeListPreference(prefs::kURLsToRestoreOnStartup)); |
422 } | 423 } |
OLD | NEW |