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 "chrome/browser/extensions/settings/settings_storage_unittest.h" | 5 #include "chrome/browser/extensions/settings/settings_storage_unittest.h" |
6 | 6 |
7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 | 10 |
11 namespace extensions { | 11 namespace extensions { |
12 | 12 |
13 using content::BrowserThread; | 13 using content::BrowserThread; |
14 | 14 |
15 namespace { | 15 namespace { |
16 | 16 |
| 17 // To save typing SettingsStorage::DEFAULTS everywhere. |
| 18 const SettingsStorage::WriteOptions DEFAULTS = SettingsStorage::DEFAULTS; |
| 19 |
17 // Gets the pretty-printed JSON for a value. | 20 // Gets the pretty-printed JSON for a value. |
18 std::string GetJSON(const Value& value) { | 21 std::string GetJSON(const Value& value) { |
19 std::string json; | 22 std::string json; |
20 base::JSONWriter::Write(&value, true, &json); | 23 base::JSONWriter::Write(&value, true, &json); |
21 return json; | 24 return json; |
22 } | 25 } |
23 | 26 |
24 // Pretty-prints a set of strings. | 27 // Pretty-prints a set of strings. |
25 std::string ToString(const std::set<std::string>& strings) { | 28 std::string ToString(const std::set<std::string>& strings) { |
26 std::string string("{"); | 29 std::string string("{"); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 195 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
193 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 196 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
194 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); | 197 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); |
195 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 198 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
196 } | 199 } |
197 | 200 |
198 TEST_P(ExtensionSettingsStorageTest, GetWithSingleValue) { | 201 TEST_P(ExtensionSettingsStorageTest, GetWithSingleValue) { |
199 { | 202 { |
200 SettingChangeList changes; | 203 SettingChangeList changes; |
201 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); | 204 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); |
202 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(key1_, *val1_)); | 205 EXPECT_PRED_FORMAT2(ChangesEq, |
| 206 changes, storage_->Set(DEFAULTS, key1_, *val1_)); |
203 } | 207 } |
204 | 208 |
205 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); | 209 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); |
206 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); | 210 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); |
207 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); | 211 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); |
208 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 212 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
209 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list123_)); | 213 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list123_)); |
210 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get()); | 214 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get()); |
211 } | 215 } |
212 | 216 |
213 TEST_P(ExtensionSettingsStorageTest, GetWithMultipleValues) { | 217 TEST_P(ExtensionSettingsStorageTest, GetWithMultipleValues) { |
214 { | 218 { |
215 SettingChangeList changes; | 219 SettingChangeList changes; |
216 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); | 220 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); |
217 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); | 221 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); |
218 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_)); | 222 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_)); |
219 } | 223 } |
220 | 224 |
221 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); | 225 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); |
222 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); | 226 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); |
223 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 227 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
224 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); | 228 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); |
225 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); | 229 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); |
226 } | 230 } |
227 | 231 |
228 TEST_P(ExtensionSettingsStorageTest, RemoveWhenEmpty) { | 232 TEST_P(ExtensionSettingsStorageTest, RemoveWhenEmpty) { |
229 EXPECT_PRED_FORMAT2(ChangesEq, | 233 EXPECT_PRED_FORMAT2(ChangesEq, |
230 SettingChangeList(), storage_->Remove(key1_)); | 234 SettingChangeList(), storage_->Remove(DEFAULTS, key1_)); |
231 | 235 |
232 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 236 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
233 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); | 237 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); |
234 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 238 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
235 } | 239 } |
236 | 240 |
237 TEST_P(ExtensionSettingsStorageTest, RemoveWithSingleValue) { | 241 TEST_P(ExtensionSettingsStorageTest, RemoveWithSingleValue) { |
238 storage_->Set(*dict1_); | 242 storage_->Set(DEFAULTS, *dict1_); |
239 { | 243 { |
240 SettingChangeList changes; | 244 SettingChangeList changes; |
241 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); | 245 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); |
242 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_)); | 246 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(DEFAULTS, key1_)); |
243 } | 247 } |
244 | 248 |
245 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 249 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
246 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); | 250 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); |
247 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); | 251 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); |
248 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); | 252 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); |
249 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 253 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
250 } | 254 } |
251 | 255 |
252 TEST_P(ExtensionSettingsStorageTest, RemoveWithMultipleValues) { | 256 TEST_P(ExtensionSettingsStorageTest, RemoveWithMultipleValues) { |
253 storage_->Set(*dict123_); | 257 storage_->Set(DEFAULTS, *dict123_); |
254 { | 258 { |
255 SettingChangeList changes; | 259 SettingChangeList changes; |
256 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); | 260 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); |
257 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key3_)); | 261 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(DEFAULTS, key3_)); |
258 } | 262 } |
259 | 263 |
260 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); | 264 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); |
261 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); | 265 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); |
262 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 266 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
263 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_)); | 267 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_)); |
264 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_)); | 268 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_)); |
265 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_)); | 269 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_)); |
266 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); | 270 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); |
267 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); | 271 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); |
268 | 272 |
269 { | 273 { |
270 SettingChangeList changes; | 274 SettingChangeList changes; |
271 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); | 275 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); |
272 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); | 276 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); |
273 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(list12_)); | 277 EXPECT_PRED_FORMAT2(ChangesEq, |
| 278 changes, storage_->Remove(DEFAULTS, list12_)); |
274 } | 279 } |
275 | 280 |
276 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 281 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
277 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); | 282 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); |
278 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 283 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
279 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); | 284 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); |
280 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); | 285 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); |
281 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list13_)); | 286 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list13_)); |
282 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); | 287 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); |
283 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 288 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
284 } | 289 } |
285 | 290 |
286 TEST_P(ExtensionSettingsStorageTest, SetWhenOverwriting) { | 291 TEST_P(ExtensionSettingsStorageTest, SetWhenOverwriting) { |
287 storage_->Set(key1_, *val2_); | 292 storage_->Set(DEFAULTS, key1_, *val2_); |
288 { | 293 { |
289 SettingChangeList changes; | 294 SettingChangeList changes; |
290 changes.push_back( | 295 changes.push_back( |
291 SettingChange(key1_, val2_->DeepCopy(), val1_->DeepCopy())); | 296 SettingChange(key1_, val2_->DeepCopy(), val1_->DeepCopy())); |
292 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); | 297 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); |
293 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_)); | 298 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_)); |
294 } | 299 } |
295 | 300 |
296 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); | 301 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); |
297 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); | 302 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); |
298 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 303 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
299 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_)); | 304 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_)); |
300 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_)); | 305 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_)); |
301 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_)); | 306 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_)); |
302 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); | 307 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); |
303 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); | 308 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); |
304 } | 309 } |
305 | 310 |
306 TEST_P(ExtensionSettingsStorageTest, ClearWhenEmpty) { | 311 TEST_P(ExtensionSettingsStorageTest, ClearWhenEmpty) { |
307 EXPECT_PRED_FORMAT2(ChangesEq, | 312 EXPECT_PRED_FORMAT2(ChangesEq, |
308 SettingChangeList(), storage_->Clear()); | 313 SettingChangeList(), storage_->Clear(DEFAULTS)); |
309 | 314 |
310 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 315 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
311 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 316 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
312 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); | 317 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); |
313 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 318 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
314 } | 319 } |
315 | 320 |
316 TEST_P(ExtensionSettingsStorageTest, ClearWhenNotEmpty) { | 321 TEST_P(ExtensionSettingsStorageTest, ClearWhenNotEmpty) { |
317 storage_->Set(*dict12_); | 322 storage_->Set(DEFAULTS, *dict12_); |
318 { | 323 { |
319 SettingChangeList changes; | 324 SettingChangeList changes; |
320 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); | 325 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); |
321 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); | 326 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); |
322 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear()); | 327 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear(DEFAULTS)); |
323 } | 328 } |
324 | 329 |
325 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); | 330 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); |
326 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); | 331 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); |
327 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); | 332 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); |
328 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 333 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
329 } | 334 } |
330 | 335 |
331 // Dots should be allowed in key names; they shouldn't be interpreted as | 336 // Dots should be allowed in key names; they shouldn't be interpreted as |
332 // indexing into a dictionary. | 337 // indexing into a dictionary. |
333 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNames) { | 338 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNames) { |
334 std::string dot_key("foo.bar"); | 339 std::string dot_key("foo.bar"); |
335 StringValue dot_value("baz.qux"); | 340 StringValue dot_value("baz.qux"); |
336 std::vector<std::string> dot_list; | 341 std::vector<std::string> dot_list; |
337 dot_list.push_back(dot_key); | 342 dot_list.push_back(dot_key); |
338 DictionaryValue dot_dict; | 343 DictionaryValue dot_dict; |
339 dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy()); | 344 dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy()); |
340 | 345 |
341 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); | 346 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); |
342 | 347 |
343 { | 348 { |
344 SettingChangeList changes; | 349 SettingChangeList changes; |
345 changes.push_back( | 350 changes.push_back( |
346 SettingChange(dot_key, NULL, dot_value.DeepCopy())); | 351 SettingChange(dot_key, NULL, dot_value.DeepCopy())); |
347 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(dot_key, dot_value)); | 352 EXPECT_PRED_FORMAT2(ChangesEq, |
| 353 changes, storage_->Set(DEFAULTS, dot_key, dot_value)); |
348 } | 354 } |
349 EXPECT_PRED_FORMAT2(ChangesEq, | 355 EXPECT_PRED_FORMAT2(ChangesEq, |
350 SettingChangeList(), storage_->Set(dot_key, dot_value)); | 356 SettingChangeList(), storage_->Set(DEFAULTS, dot_key, dot_value)); |
351 | 357 |
352 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get(dot_key)); | 358 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get(dot_key)); |
353 | 359 |
354 { | 360 { |
355 SettingChangeList changes; | 361 SettingChangeList changes; |
356 changes.push_back( | 362 changes.push_back( |
357 SettingChange(dot_key, dot_value.DeepCopy(), NULL)); | 363 SettingChange(dot_key, dot_value.DeepCopy(), NULL)); |
358 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_key)); | 364 EXPECT_PRED_FORMAT2(ChangesEq, |
| 365 changes, storage_->Remove(DEFAULTS, dot_key)); |
359 } | 366 } |
360 EXPECT_PRED_FORMAT2(ChangesEq, | 367 EXPECT_PRED_FORMAT2(ChangesEq, |
361 SettingChangeList(), storage_->Remove(dot_key)); | 368 SettingChangeList(), storage_->Remove(DEFAULTS, dot_key)); |
362 { | 369 { |
363 SettingChangeList changes; | 370 SettingChangeList changes; |
364 changes.push_back( | 371 changes.push_back( |
365 SettingChange(dot_key, NULL, dot_value.DeepCopy())); | 372 SettingChange(dot_key, NULL, dot_value.DeepCopy())); |
366 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(dot_dict)); | 373 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, dot_dict)); |
367 } | 374 } |
368 | 375 |
369 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get(dot_list)); | 376 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get(dot_list)); |
370 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get()); | 377 EXPECT_PRED_FORMAT2(SettingsEq, dot_dict, storage_->Get()); |
371 | 378 |
372 { | 379 { |
373 SettingChangeList changes; | 380 SettingChangeList changes; |
374 changes.push_back( | 381 changes.push_back( |
375 SettingChange(dot_key, dot_value.DeepCopy(), NULL)); | 382 SettingChange(dot_key, dot_value.DeepCopy(), NULL)); |
376 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_list)); | 383 EXPECT_PRED_FORMAT2(ChangesEq, |
| 384 changes, storage_->Remove(DEFAULTS, dot_list)); |
377 } | 385 } |
378 | 386 |
379 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); | 387 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); |
380 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); | 388 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); |
381 } | 389 } |
382 | 390 |
383 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNamesWithDicts) { | 391 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNamesWithDicts) { |
384 DictionaryValue outer_dict; | 392 DictionaryValue outer_dict; |
385 DictionaryValue* inner_dict = new DictionaryValue(); | 393 DictionaryValue* inner_dict = new DictionaryValue(); |
386 outer_dict.Set("foo", inner_dict); | 394 outer_dict.Set("foo", inner_dict); |
387 inner_dict->SetString("bar", "baz"); | 395 inner_dict->SetString("bar", "baz"); |
388 | 396 |
389 { | 397 { |
390 SettingChangeList changes; | 398 SettingChangeList changes; |
391 changes.push_back( | 399 changes.push_back( |
392 SettingChange("foo", NULL, inner_dict->DeepCopy())); | 400 SettingChange("foo", NULL, inner_dict->DeepCopy())); |
393 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(outer_dict)); | 401 EXPECT_PRED_FORMAT2(ChangesEq, |
| 402 changes, storage_->Set(DEFAULTS, outer_dict)); |
394 } | 403 } |
395 | 404 |
396 EXPECT_PRED_FORMAT2(SettingsEq, outer_dict, storage_->Get("foo")); | 405 EXPECT_PRED_FORMAT2(SettingsEq, outer_dict, storage_->Get("foo")); |
397 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get("foo.bar")); | 406 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get("foo.bar")); |
398 } | 407 } |
399 | 408 |
400 TEST_P(ExtensionSettingsStorageTest, ComplexChangedKeysScenarios) { | 409 TEST_P(ExtensionSettingsStorageTest, ComplexChangedKeysScenarios) { |
401 // Test: | 410 // Test: |
402 // - Setting over missing/changed/same keys, combinations. | 411 // - Setting over missing/changed/same keys, combinations. |
403 // - Removing over missing and present keys, combinations. | 412 // - Removing over missing and present keys, combinations. |
404 // - Clearing. | 413 // - Clearing. |
405 std::vector<std::string> complex_list; | 414 std::vector<std::string> complex_list; |
406 DictionaryValue complex_changed_dict; | 415 DictionaryValue complex_changed_dict; |
407 | 416 |
408 storage_->Set(key1_, *val1_); | 417 storage_->Set(DEFAULTS, key1_, *val1_); |
409 EXPECT_PRED_FORMAT2(ChangesEq, | 418 EXPECT_PRED_FORMAT2(ChangesEq, |
410 SettingChangeList(), storage_->Set(key1_, *val1_)); | 419 SettingChangeList(), storage_->Set(DEFAULTS, key1_, *val1_)); |
411 { | 420 { |
412 SettingChangeList changes; | 421 SettingChangeList changes; |
413 changes.push_back(SettingChange( | 422 changes.push_back(SettingChange( |
414 key1_, val1_->DeepCopy(), val2_->DeepCopy())); | 423 key1_, val1_->DeepCopy(), val2_->DeepCopy())); |
415 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(key1_, *val2_)); | 424 EXPECT_PRED_FORMAT2(ChangesEq, |
| 425 changes, storage_->Set(DEFAULTS, key1_, *val2_)); |
416 } | 426 } |
417 { | 427 { |
418 SettingChangeList changes; | 428 SettingChangeList changes; |
419 changes.push_back(SettingChange(key1_, val2_->DeepCopy(), NULL)); | 429 changes.push_back(SettingChange(key1_, val2_->DeepCopy(), NULL)); |
420 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_)); | 430 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(DEFAULTS, key1_)); |
421 EXPECT_PRED_FORMAT2(ChangesEq, | 431 EXPECT_PRED_FORMAT2(ChangesEq, |
422 SettingChangeList(), storage_->Remove(key1_)); | 432 SettingChangeList(), storage_->Remove(DEFAULTS, key1_)); |
423 } | 433 } |
424 { | 434 { |
425 SettingChangeList changes; | 435 SettingChangeList changes; |
426 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); | 436 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); |
427 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(key1_, *val1_)); | 437 EXPECT_PRED_FORMAT2(ChangesEq, |
| 438 changes, storage_->Set(DEFAULTS, key1_, *val1_)); |
428 } | 439 } |
429 { | 440 { |
430 SettingChangeList changes; | 441 SettingChangeList changes; |
431 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); | 442 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); |
432 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear()); | 443 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear(DEFAULTS)); |
433 EXPECT_PRED_FORMAT2(ChangesEq, | 444 EXPECT_PRED_FORMAT2(ChangesEq, |
434 SettingChangeList(), storage_->Clear()); | 445 SettingChangeList(), storage_->Clear(DEFAULTS)); |
435 } | 446 } |
436 | 447 |
437 { | 448 { |
438 SettingChangeList changes; | 449 SettingChangeList changes; |
439 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); | 450 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); |
440 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); | 451 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); |
441 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_)); | 452 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict12_)); |
442 EXPECT_PRED_FORMAT2(ChangesEq, | 453 EXPECT_PRED_FORMAT2(ChangesEq, |
443 SettingChangeList(), storage_->Set(*dict12_)); | 454 SettingChangeList(), storage_->Set(DEFAULTS, *dict12_)); |
444 } | 455 } |
445 { | 456 { |
446 SettingChangeList changes; | 457 SettingChangeList changes; |
447 changes.push_back(SettingChange(key3_, NULL, val3_->DeepCopy())); | 458 changes.push_back(SettingChange(key3_, NULL, val3_->DeepCopy())); |
448 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict123_)); | 459 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, *dict123_)); |
449 } | 460 } |
450 { | 461 { |
451 DictionaryValue to_set; | 462 DictionaryValue to_set; |
452 to_set.Set(key1_, val2_->DeepCopy()); | 463 to_set.Set(key1_, val2_->DeepCopy()); |
453 to_set.Set(key2_, val2_->DeepCopy()); | 464 to_set.Set(key2_, val2_->DeepCopy()); |
454 to_set.Set("asdf", val1_->DeepCopy()); | 465 to_set.Set("asdf", val1_->DeepCopy()); |
455 to_set.Set("qwerty", val3_->DeepCopy()); | 466 to_set.Set("qwerty", val3_->DeepCopy()); |
456 | 467 |
457 SettingChangeList changes; | 468 SettingChangeList changes; |
458 changes.push_back( | 469 changes.push_back( |
459 SettingChange(key1_, val1_->DeepCopy(), val2_->DeepCopy())); | 470 SettingChange(key1_, val1_->DeepCopy(), val2_->DeepCopy())); |
460 changes.push_back(SettingChange("asdf", NULL, val1_->DeepCopy())); | 471 changes.push_back(SettingChange("asdf", NULL, val1_->DeepCopy())); |
461 changes.push_back( | 472 changes.push_back( |
462 SettingChange("qwerty", NULL, val3_->DeepCopy())); | 473 SettingChange("qwerty", NULL, val3_->DeepCopy())); |
463 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(to_set)); | 474 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(DEFAULTS, to_set)); |
464 } | 475 } |
465 { | 476 { |
466 SettingChangeList changes; | 477 SettingChangeList changes; |
467 changes.push_back(SettingChange(key1_, val2_->DeepCopy(), NULL)); | 478 changes.push_back(SettingChange(key1_, val2_->DeepCopy(), NULL)); |
468 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); | 479 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); |
469 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(list12_)); | 480 EXPECT_PRED_FORMAT2(ChangesEq, |
| 481 changes, storage_->Remove(DEFAULTS, list12_)); |
470 } | 482 } |
471 { | 483 { |
472 std::vector<std::string> to_remove; | 484 std::vector<std::string> to_remove; |
473 to_remove.push_back(key1_); | 485 to_remove.push_back(key1_); |
474 to_remove.push_back("asdf"); | 486 to_remove.push_back("asdf"); |
475 | 487 |
476 SettingChangeList changes; | 488 SettingChangeList changes; |
477 changes.push_back(SettingChange("asdf", val1_->DeepCopy(), NULL)); | 489 changes.push_back(SettingChange("asdf", val1_->DeepCopy(), NULL)); |
478 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(to_remove)); | 490 EXPECT_PRED_FORMAT2(ChangesEq, |
| 491 changes, storage_->Remove(DEFAULTS, to_remove)); |
479 } | 492 } |
480 { | 493 { |
481 SettingChangeList changes; | 494 SettingChangeList changes; |
482 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); | 495 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); |
483 changes.push_back( | 496 changes.push_back( |
484 SettingChange("qwerty", val3_->DeepCopy(), NULL)); | 497 SettingChange("qwerty", val3_->DeepCopy(), NULL)); |
485 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear()); | 498 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear(DEFAULTS)); |
486 EXPECT_PRED_FORMAT2(ChangesEq, | 499 EXPECT_PRED_FORMAT2(ChangesEq, |
487 SettingChangeList(), storage_->Clear()); | 500 SettingChangeList(), storage_->Clear(DEFAULTS)); |
488 } | 501 } |
489 } | 502 } |
490 | 503 |
491 } // namespace extensions | 504 } // namespace extensions |
OLD | NEW |