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

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

Issue 8497065: Extension Settings API: make it so that when leveldb storage areas fail to be (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
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 } 127 }
128 if (!ValuesEqual(expected_change.old_value(), it->old_value(), &error)) { 128 if (!ValuesEqual(expected_change.old_value(), it->old_value(), &error)) {
129 return testing::AssertionFailure() << 129 return testing::AssertionFailure() <<
130 "Old value for " << it->key() << " was unexpected: " << error; 130 "Old value for " << it->key() << " was unexpected: " << error;
131 } 131 }
132 } 132 }
133 133
134 return testing::AssertionSuccess(); 134 return testing::AssertionSuccess();
135 } 135 }
136 136
137 SettingsStorageTest::SettingsStorageTest() 137 ExtensionSettingsStorageTest::ExtensionSettingsStorageTest()
138 : key1_("foo"), 138 : key1_("foo"),
139 key2_("bar"), 139 key2_("bar"),
140 key3_("baz"), 140 key3_("baz"),
141 empty_dict_(new DictionaryValue()), 141 empty_dict_(new DictionaryValue()),
142 dict1_(new DictionaryValue()), 142 dict1_(new DictionaryValue()),
143 dict3_(new DictionaryValue()), 143 dict3_(new DictionaryValue()),
144 dict12_(new DictionaryValue()), 144 dict12_(new DictionaryValue()),
145 dict123_(new DictionaryValue()), 145 dict123_(new DictionaryValue()),
146 ui_thread_(BrowserThread::UI, MessageLoop::current()), 146 ui_thread_(BrowserThread::UI, MessageLoop::current()),
147 file_thread_(BrowserThread::FILE, MessageLoop::current()) { 147 file_thread_(BrowserThread::FILE, MessageLoop::current()) {
(...skipping 21 matching lines...) Expand all
169 169
170 dict1_->Set(key1_, val1_->DeepCopy()); 170 dict1_->Set(key1_, val1_->DeepCopy());
171 dict3_->Set(key3_, val3_->DeepCopy()); 171 dict3_->Set(key3_, val3_->DeepCopy());
172 dict12_->Set(key1_, val1_->DeepCopy()); 172 dict12_->Set(key1_, val1_->DeepCopy());
173 dict12_->Set(key2_, val2_->DeepCopy()); 173 dict12_->Set(key2_, val2_->DeepCopy());
174 dict123_->Set(key1_, val1_->DeepCopy()); 174 dict123_->Set(key1_, val1_->DeepCopy());
175 dict123_->Set(key2_, val2_->DeepCopy()); 175 dict123_->Set(key2_, val2_->DeepCopy());
176 dict123_->Set(key3_, val3_->DeepCopy()); 176 dict123_->Set(key3_, val3_->DeepCopy());
177 } 177 }
178 178
179 SettingsStorageTest::~SettingsStorageTest() {} 179 ExtensionSettingsStorageTest::~ExtensionSettingsStorageTest() {}
180 180
181 void SettingsStorageTest::SetUp() { 181 void ExtensionSettingsStorageTest::SetUp() {
182 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 182 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
183 storage_.reset((GetParam())(temp_dir_.path(), "fakeExtension")); 183 storage_.reset((GetParam())(temp_dir_.path(), "fakeExtension"));
184 ASSERT_TRUE(storage_.get()); 184 ASSERT_TRUE(storage_.get());
185 } 185 }
186 186
187 void SettingsStorageTest::TearDown() { 187 void ExtensionSettingsStorageTest::TearDown() {
188 storage_.reset(); 188 storage_.reset();
189 } 189 }
190 190
191 TEST_P(SettingsStorageTest, GetWhenEmpty) { 191 TEST_P(ExtensionSettingsStorageTest, GetWhenEmpty) {
192 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 192 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
193 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 193 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
194 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); 194 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_));
195 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 195 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
196 } 196 }
197 197
198 TEST_P(SettingsStorageTest, GetWithSingleValue) { 198 TEST_P(ExtensionSettingsStorageTest, GetWithSingleValue) {
199 { 199 {
200 SettingChangeList changes; 200 SettingChangeList changes;
201 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); 201 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy()));
202 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(key1_, *val1_)); 202 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(key1_, *val1_));
203 } 203 }
204 204
205 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); 205 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_));
206 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); 206 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_));
207 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); 207 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_));
208 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 208 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
209 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list123_)); 209 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list123_));
210 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get()); 210 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get());
211 } 211 }
212 212
213 TEST_P(SettingsStorageTest, GetWithMultipleValues) { 213 TEST_P(ExtensionSettingsStorageTest, GetWithMultipleValues) {
214 { 214 {
215 SettingChangeList changes; 215 SettingChangeList changes;
216 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy())); 216 changes.push_back(SettingChange(key1_, NULL, val1_->DeepCopy()));
217 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); 217 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy()));
218 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_)); 218 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_));
219 } 219 }
220 220
221 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); 221 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_));
222 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); 222 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_));
223 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 223 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
224 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); 224 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_));
225 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); 225 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get());
226 } 226 }
227 227
228 TEST_P(SettingsStorageTest, RemoveWhenEmpty) { 228 TEST_P(ExtensionSettingsStorageTest, RemoveWhenEmpty) {
229 EXPECT_PRED_FORMAT2(ChangesEq, 229 EXPECT_PRED_FORMAT2(ChangesEq,
230 SettingChangeList(), storage_->Remove(key1_)); 230 SettingChangeList(), storage_->Remove(key1_));
231 231
232 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 232 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
233 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); 233 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_));
234 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 234 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
235 } 235 }
236 236
237 TEST_P(SettingsStorageTest, RemoveWithSingleValue) { 237 TEST_P(ExtensionSettingsStorageTest, RemoveWithSingleValue) {
238 storage_->Set(*dict1_); 238 storage_->Set(*dict1_);
239 { 239 {
240 SettingChangeList changes; 240 SettingChangeList changes;
241 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); 241 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL));
242 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_)); 242 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key1_));
243 } 243 }
244 244
245 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 245 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
246 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_)); 246 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key2_));
247 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); 247 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_));
248 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); 248 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_));
249 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 249 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
250 } 250 }
251 251
252 TEST_P(SettingsStorageTest, RemoveWithMultipleValues) { 252 TEST_P(ExtensionSettingsStorageTest, RemoveWithMultipleValues) {
253 storage_->Set(*dict123_); 253 storage_->Set(*dict123_);
254 { 254 {
255 SettingChangeList changes; 255 SettingChangeList changes;
256 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); 256 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL));
257 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key3_)); 257 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(key3_));
258 } 258 }
259 259
260 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); 260 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_));
261 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); 261 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_));
262 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 262 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
(...skipping 13 matching lines...) Expand all
276 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 276 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
277 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); 277 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_));
278 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 278 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
279 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_)); 279 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list1_));
280 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_)); 280 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list12_));
281 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list13_)); 281 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list13_));
282 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); 282 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_));
283 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 283 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
284 } 284 }
285 285
286 TEST_P(SettingsStorageTest, SetWhenOverwriting) { 286 TEST_P(ExtensionSettingsStorageTest, SetWhenOverwriting) {
287 storage_->Set(key1_, *val2_); 287 storage_->Set(key1_, *val2_);
288 { 288 {
289 SettingChangeList changes; 289 SettingChangeList changes;
290 changes.push_back( 290 changes.push_back(
291 SettingChange(key1_, val2_->DeepCopy(), val1_->DeepCopy())); 291 SettingChange(key1_, val2_->DeepCopy(), val1_->DeepCopy()));
292 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy())); 292 changes.push_back(SettingChange(key2_, NULL, val2_->DeepCopy()));
293 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_)); 293 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(*dict12_));
294 } 294 }
295 295
296 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_)); 296 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(key1_));
297 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_)); 297 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key3_));
298 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 298 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
299 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_)); 299 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list1_));
300 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_)); 300 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list12_));
301 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_)); 301 EXPECT_PRED_FORMAT2(SettingsEq, *dict1_, storage_->Get(list13_));
302 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_)); 302 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get(list123_));
303 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get()); 303 EXPECT_PRED_FORMAT2(SettingsEq, *dict12_, storage_->Get());
304 } 304 }
305 305
306 TEST_P(SettingsStorageTest, ClearWhenEmpty) { 306 TEST_P(ExtensionSettingsStorageTest, ClearWhenEmpty) {
307 EXPECT_PRED_FORMAT2(ChangesEq, 307 EXPECT_PRED_FORMAT2(ChangesEq,
308 SettingChangeList(), storage_->Clear()); 308 SettingChangeList(), storage_->Clear());
309 309
310 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 310 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
311 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 311 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
312 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); 312 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_));
313 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 313 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
314 } 314 }
315 315
316 TEST_P(SettingsStorageTest, ClearWhenNotEmpty) { 316 TEST_P(ExtensionSettingsStorageTest, ClearWhenNotEmpty) {
317 storage_->Set(*dict12_); 317 storage_->Set(*dict12_);
318 { 318 {
319 SettingChangeList changes; 319 SettingChangeList changes;
320 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL)); 320 changes.push_back(SettingChange(key1_, val1_->DeepCopy(), NULL));
321 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL)); 321 changes.push_back(SettingChange(key2_, val2_->DeepCopy(), NULL));
322 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear()); 322 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear());
323 } 323 }
324 324
325 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_)); 325 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(key1_));
326 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_)); 326 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(empty_list_));
327 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_)); 327 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(list123_));
328 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 328 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
329 } 329 }
330 330
331 // Dots should be allowed in key names; they shouldn't be interpreted as 331 // Dots should be allowed in key names; they shouldn't be interpreted as
332 // indexing into a dictionary. 332 // indexing into a dictionary.
333 TEST_P(SettingsStorageTest, DotsInKeyNames) { 333 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNames) {
334 std::string dot_key("foo.bar"); 334 std::string dot_key("foo.bar");
335 StringValue dot_value("baz.qux"); 335 StringValue dot_value("baz.qux");
336 std::vector<std::string> dot_list; 336 std::vector<std::string> dot_list;
337 dot_list.push_back(dot_key); 337 dot_list.push_back(dot_key);
338 DictionaryValue dot_dict; 338 DictionaryValue dot_dict;
339 dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy()); 339 dot_dict.SetWithoutPathExpansion(dot_key, dot_value.DeepCopy());
340 340
341 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); 341 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key));
342 342
343 { 343 {
(...skipping 29 matching lines...) Expand all
373 SettingChangeList changes; 373 SettingChangeList changes;
374 changes.push_back( 374 changes.push_back(
375 SettingChange(dot_key, dot_value.DeepCopy(), NULL)); 375 SettingChange(dot_key, dot_value.DeepCopy(), NULL));
376 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_list)); 376 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Remove(dot_list));
377 } 377 }
378 378
379 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key)); 379 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get(dot_key));
380 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get()); 380 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get());
381 } 381 }
382 382
383 TEST_P(SettingsStorageTest, DotsInKeyNamesWithDicts) { 383 TEST_P(ExtensionSettingsStorageTest, DotsInKeyNamesWithDicts) {
384 DictionaryValue outer_dict; 384 DictionaryValue outer_dict;
385 DictionaryValue* inner_dict = new DictionaryValue(); 385 DictionaryValue* inner_dict = new DictionaryValue();
386 outer_dict.Set("foo", inner_dict); 386 outer_dict.Set("foo", inner_dict);
387 inner_dict->SetString("bar", "baz"); 387 inner_dict->SetString("bar", "baz");
388 388
389 { 389 {
390 SettingChangeList changes; 390 SettingChangeList changes;
391 changes.push_back( 391 changes.push_back(
392 SettingChange("foo", NULL, inner_dict->DeepCopy())); 392 SettingChange("foo", NULL, inner_dict->DeepCopy()));
393 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(outer_dict)); 393 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Set(outer_dict));
394 } 394 }
395 395
396 EXPECT_PRED_FORMAT2(SettingsEq, outer_dict, storage_->Get("foo")); 396 EXPECT_PRED_FORMAT2(SettingsEq, outer_dict, storage_->Get("foo"));
397 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get("foo.bar")); 397 EXPECT_PRED_FORMAT2(SettingsEq, *empty_dict_, storage_->Get("foo.bar"));
398 } 398 }
399 399
400 TEST_P(SettingsStorageTest, ComplexChangedKeysScenarios) { 400 TEST_P(ExtensionSettingsStorageTest, ComplexChangedKeysScenarios) {
401 // Test: 401 // Test:
402 // - Setting over missing/changed/same keys, combinations. 402 // - Setting over missing/changed/same keys, combinations.
403 // - Removing over missing and present keys, combinations. 403 // - Removing over missing and present keys, combinations.
404 // - Clearing. 404 // - Clearing.
405 std::vector<std::string> complex_list; 405 std::vector<std::string> complex_list;
406 DictionaryValue complex_changed_dict; 406 DictionaryValue complex_changed_dict;
407 407
408 storage_->Set(key1_, *val1_); 408 storage_->Set(key1_, *val1_);
409 EXPECT_PRED_FORMAT2(ChangesEq, 409 EXPECT_PRED_FORMAT2(ChangesEq,
410 SettingChangeList(), storage_->Set(key1_, *val1_)); 410 SettingChangeList(), storage_->Set(key1_, *val1_));
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL)); 482 changes.push_back(SettingChange(key3_, val3_->DeepCopy(), NULL));
483 changes.push_back( 483 changes.push_back(
484 SettingChange("qwerty", val3_->DeepCopy(), NULL)); 484 SettingChange("qwerty", val3_->DeepCopy(), NULL));
485 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear()); 485 EXPECT_PRED_FORMAT2(ChangesEq, changes, storage_->Clear());
486 EXPECT_PRED_FORMAT2(ChangesEq, 486 EXPECT_PRED_FORMAT2(ChangesEq,
487 SettingChangeList(), storage_->Clear()); 487 SettingChangeList(), storage_->Clear());
488 } 488 }
489 } 489 }
490 490
491 } // namespace extensions 491 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698