OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <limits> | 5 #include <limits> |
6 | 6 |
7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/string16.h" | 9 #include "base/string16.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 delete boolean; | 478 delete boolean; |
479 | 479 |
480 DictionaryValue dv; | 480 DictionaryValue dv; |
481 dv.SetBoolean("a", false); | 481 dv.SetBoolean("a", false); |
482 dv.SetInteger("b", 2); | 482 dv.SetInteger("b", 2); |
483 dv.SetReal("c", 2.5); | 483 dv.SetReal("c", 2.5); |
484 dv.SetString("d1", "string"); | 484 dv.SetString("d1", "string"); |
485 dv.SetString("d2", ASCIIToUTF16("http://google.com")); | 485 dv.SetString("d2", ASCIIToUTF16("http://google.com")); |
486 dv.Set("e", Value::CreateNullValue()); | 486 dv.Set("e", Value::CreateNullValue()); |
487 | 487 |
488 DictionaryValue* copy = static_cast<DictionaryValue*>(dv.DeepCopy()); | 488 scoped_ptr<DictionaryValue> copy; |
489 EXPECT_TRUE(dv.Equals(copy)); | 489 copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy())); |
| 490 EXPECT_TRUE(dv.Equals(copy.get())); |
490 | 491 |
491 ListValue* list = new ListValue; | 492 ListValue* list = new ListValue; |
492 list->Append(Value::CreateNullValue()); | 493 list->Append(Value::CreateNullValue()); |
493 list->Append(new DictionaryValue); | 494 list->Append(new DictionaryValue); |
494 dv.Set("f", list); | 495 dv.Set("f", list); |
495 | 496 |
496 EXPECT_FALSE(dv.Equals(copy)); | 497 EXPECT_FALSE(dv.Equals(copy.get())); |
497 copy->Set("f", list->DeepCopy()); | 498 copy->Set("f", list->DeepCopy()); |
498 EXPECT_TRUE(dv.Equals(copy)); | 499 EXPECT_TRUE(dv.Equals(copy.get())); |
499 | 500 |
500 list->Append(Value::CreateBooleanValue(true)); | 501 list->Append(Value::CreateBooleanValue(true)); |
501 EXPECT_FALSE(dv.Equals(copy)); | 502 EXPECT_FALSE(dv.Equals(copy.get())); |
502 delete copy; | 503 |
| 504 // Check if Equals detects differences in only the keys. |
| 505 copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy())); |
| 506 EXPECT_TRUE(dv.Equals(copy.get())); |
| 507 copy->Remove("a", NULL); |
| 508 copy->SetBoolean("aa", false); |
| 509 EXPECT_FALSE(dv.Equals(copy.get())); |
503 } | 510 } |
504 | 511 |
505 TEST_F(ValuesTest, RemoveEmptyChildren) { | 512 TEST_F(ValuesTest, RemoveEmptyChildren) { |
506 scoped_ptr<DictionaryValue> root(new DictionaryValue); | 513 scoped_ptr<DictionaryValue> root(new DictionaryValue); |
507 // Remove empty lists and dictionaries. | 514 // Remove empty lists and dictionaries. |
508 root->Set("empty_dict", new DictionaryValue); | 515 root->Set("empty_dict", new DictionaryValue); |
509 root->Set("empty_list", new ListValue); | 516 root->Set("empty_list", new ListValue); |
510 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue); | 517 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue); |
511 root.reset(root->DeepCopyWithoutEmptyChildren()); | 518 root.reset(root->DeepCopyWithoutEmptyChildren()); |
512 EXPECT_TRUE(root->empty()); | 519 EXPECT_TRUE(root->empty()); |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 "s1", | 732 "s1", |
726 "s1.s2" | 733 "s1.s2" |
727 }; | 734 }; |
728 dict1.reset(new DictionaryValue()); | 735 dict1.reset(new DictionaryValue()); |
729 dict1->Set("s1.s2", new DictionaryValue()); | 736 dict1->Set("s1.s2", new DictionaryValue()); |
730 dict2.reset(new DictionaryValue()); | 737 dict2.reset(new DictionaryValue()); |
731 dict2->SetInteger("s1", 1); | 738 dict2->SetInteger("s1", 1); |
732 CompareDictionariesAndCheckResult(dict1.get(), dict2.get(), expected_paths8, | 739 CompareDictionariesAndCheckResult(dict1.get(), dict2.get(), expected_paths8, |
733 arraysize(expected_paths8)); | 740 arraysize(expected_paths8)); |
734 } | 741 } |
OLD | NEW |