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

Side by Side Diff: chrome/browser/extensions/settings/settings_storage_unittest.cc

Issue 8587025: Extension settings API: force through changes that come from sync (ignoring (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 "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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698