diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 21:26:41 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 21:26:41 +0000 |
commit | 32c0e003a39395f42c800928f4b25fe77715c414 (patch) | |
tree | 439d4fec3aa8ab9520b008d20dcdb58dd9adaabf /base/values_unittest.cc | |
parent | 3aedf268a834b0710acb31b28b1b5bd34eb3cd91 (diff) | |
download | chromium_src-32c0e003a39395f42c800928f4b25fe77715c414.zip chromium_src-32c0e003a39395f42c800928f4b25fe77715c414.tar.gz chromium_src-32c0e003a39395f42c800928f4b25fe77715c414.tar.bz2 |
Add a key/value iterator to DictionaryValue (in addition to the existing key
iterator).
BUG=
TEST=ValuesTest.DictionaryIterator
Review URL: http://codereview.chromium.org/8351059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109102 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/values_unittest.cc')
-rw-r--r-- | base/values_unittest.cc | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/base/values_unittest.cc b/base/values_unittest.cc index 458a4e1..806347c 100644 --- a/base/values_unittest.cc +++ b/base/values_unittest.cc @@ -702,4 +702,41 @@ TEST(ValuesTest, MergeDictionary) { EXPECT_EQ("sub_merge_key_value_merge", sub_merge_key_value); // Merged in. } +TEST(ValuesTest, DictionaryIterator) { + DictionaryValue dict; + for (DictionaryValue::Iterator it(dict); it.HasNext(); it.Advance()) { + ADD_FAILURE(); + } + + StringValue value1("value1"); + dict.Set("key1", value1.DeepCopy()); + bool seen1 = false; + for (DictionaryValue::Iterator it(dict); it.HasNext(); it.Advance()) { + EXPECT_FALSE(seen1); + EXPECT_EQ("key1", it.key()); + EXPECT_TRUE(value1.Equals(&it.value())); + seen1 = true; + } + EXPECT_TRUE(seen1); + + StringValue value2("value2"); + dict.Set("key2", value2.DeepCopy()); + bool seen2 = seen1 = false; + for (DictionaryValue::Iterator it(dict); it.HasNext(); it.Advance()) { + if (it.key() == "key1") { + EXPECT_FALSE(seen1); + EXPECT_TRUE(value1.Equals(&it.value())); + seen1 = true; + } else if (it.key() == "key2") { + EXPECT_FALSE(seen2); + EXPECT_TRUE(value2.Equals(&it.value())); + seen2 = true; + } else { + ADD_FAILURE(); + } + } + EXPECT_TRUE(seen1); + EXPECT_TRUE(seen2); +} + } // namespace base |