summaryrefslogtreecommitdiffstats
path: root/base/values_unittest.cc
diff options
context:
space:
mode:
authormnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 16:23:40 +0000
committermnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 16:23:40 +0000
commitdc1f2440d6c1773491b472e7595822b207052ac9 (patch)
tree8a159f623f9bd66c2a8b59f21e54d1ad183b2666 /base/values_unittest.cc
parent70edb8606702fd26565cc46fd3075bfe75f68d97 (diff)
downloadchromium_src-dc1f2440d6c1773491b472e7595822b207052ac9.zip
chromium_src-dc1f2440d6c1773491b472e7595822b207052ac9.tar.gz
chromium_src-dc1f2440d6c1773491b472e7595822b207052ac9.tar.bz2
Fix DictionaryValue::Equals() to also detect differences in key names.
BUG=52419 TEST=unit tests in values_unittest.cc Review URL: http://codereview.chromium.org/3163020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56536 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/values_unittest.cc')
-rw-r--r--base/values_unittest.cc19
1 files changed, 13 insertions, 6 deletions
diff --git a/base/values_unittest.cc b/base/values_unittest.cc
index a36c588..c1fb018 100644
--- a/base/values_unittest.cc
+++ b/base/values_unittest.cc
@@ -484,21 +484,28 @@ TEST_F(ValuesTest, Equals) {
dv.SetString("d2", ASCIIToUTF16("http://google.com"));
dv.Set("e", Value::CreateNullValue());
- DictionaryValue* copy = static_cast<DictionaryValue*>(dv.DeepCopy());
- EXPECT_TRUE(dv.Equals(copy));
+ scoped_ptr<DictionaryValue> copy;
+ copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy()));
+ EXPECT_TRUE(dv.Equals(copy.get()));
ListValue* list = new ListValue;
list->Append(Value::CreateNullValue());
list->Append(new DictionaryValue);
dv.Set("f", list);
- EXPECT_FALSE(dv.Equals(copy));
+ EXPECT_FALSE(dv.Equals(copy.get()));
copy->Set("f", list->DeepCopy());
- EXPECT_TRUE(dv.Equals(copy));
+ EXPECT_TRUE(dv.Equals(copy.get()));
list->Append(Value::CreateBooleanValue(true));
- EXPECT_FALSE(dv.Equals(copy));
- delete copy;
+ EXPECT_FALSE(dv.Equals(copy.get()));
+
+ // Check if Equals detects differences in only the keys.
+ copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy()));
+ EXPECT_TRUE(dv.Equals(copy.get()));
+ copy->Remove("a", NULL);
+ copy->SetBoolean("aa", false);
+ EXPECT_FALSE(dv.Equals(copy.get()));
}
TEST_F(ValuesTest, RemoveEmptyChildren) {