base: Add AsList() function to Value API.

This function should simplify some constructions.

Instead of:

if (!value->IsType(Value::TYPE_LIST))
  return false;
ListValue* list_value = static_cast<ListValue*>(value);

You can do:

ListValue* list_value = value->AsList();
if (!list_value)
  return false;

BUG=None
TEST=base_unittests --gtest_filter=Values*

R=evan@chromium.org,tony@chromium.org

Review URL: http://codereview.chromium.org/7714004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98223 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: a7f1806937d541ab67e37dcc7451783679599384
diff --git a/base/json/json_reader_unittest.cc b/base/json/json_reader_unittest.cc
index a7aeaf0..7623a68 100644
--- a/base/json/json_reader_unittest.cc
+++ b/base/json/json_reader_unittest.cc
@@ -222,8 +222,8 @@
   // Basic array
   root.reset(JSONReader::Read("[true, false, null]", false));
   ASSERT_TRUE(root.get());
-  ASSERT_TRUE(root->IsType(Value::TYPE_LIST));
-  ListValue* list = static_cast<ListValue*>(root.get());
+  ListValue* list = root->AsList();
+  ASSERT_TRUE(list);
   ASSERT_EQ(3U, list->GetSize());
 
   // Test with trailing comma.  Should be parsed the same as above.
@@ -234,16 +234,16 @@
   // Empty array
   root.reset(JSONReader::Read("[]", false));
   ASSERT_TRUE(root.get());
-  ASSERT_TRUE(root->IsType(Value::TYPE_LIST));
-  list = static_cast<ListValue*>(root.get());
+  list = root->AsList();
+  ASSERT_TRUE(list);
   ASSERT_EQ(0U, list->GetSize());
 
   // Nested arrays
   root.reset(JSONReader::Read("[[true], [], [false, [], [null]], null]",
                               false));
   ASSERT_TRUE(root.get());
-  ASSERT_TRUE(root->IsType(Value::TYPE_LIST));
-  list = static_cast<ListValue*>(root.get());
+  list = root->AsList();
+  ASSERT_TRUE(list);
   ASSERT_EQ(4U, list->GetSize());
 
   // Lots of trailing commas.
@@ -272,8 +272,8 @@
   // Valid if we set |allow_trailing_comma| to true.
   root.reset(JSONReader::Read("[true,]", true));
   ASSERT_TRUE(root.get());
-  ASSERT_TRUE(root->IsType(Value::TYPE_LIST));
-  list = static_cast<ListValue*>(root.get());
+  list = root->AsList();
+  ASSERT_TRUE(list);
   EXPECT_EQ(1U, list->GetSize());
   Value* tmp_value = NULL;
   ASSERT_TRUE(list->Get(0, &tmp_value));
@@ -435,8 +435,8 @@
   not_evil.append("[]]");
   root.reset(JSONReader::Read(not_evil, false));
   ASSERT_TRUE(root.get());
-  ASSERT_TRUE(root->IsType(Value::TYPE_LIST));
-  list = static_cast<ListValue*>(root.get());
+  list = root->AsList();
+  ASSERT_TRUE(list);
   ASSERT_EQ(5001U, list->GetSize());
 
   // Test utf8 encoded input