From 14fd11947f98ad50efa67c96cc0ce7bfd06e92ba Mon Sep 17 00:00:00 2001
From: "tc@google.com" <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Tue, 29 Jul 2008 00:45:32 +0000
Subject: [PATCH] Add a unittest for the
 JSONValueSerializer::set_allow_trailing_comma() method.  Fixes the return
 type in the header.

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55 0039d316-1c4b-4281-b951-d872f2087c98
---
 chrome/common/json_value_serializer.h           |  2 +-
 chrome/common/json_value_serializer_unittest.cc | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/chrome/common/json_value_serializer.h b/chrome/common/json_value_serializer.h
index ff18104e5673e..c3e20bcfcd4a8 100644
--- a/chrome/common/json_value_serializer.h
+++ b/chrome/common/json_value_serializer.h
@@ -72,7 +72,7 @@ class JSONStringValueSerializer : public ValueSerializer {
   void set_pretty_print(bool new_value) { pretty_print_ = new_value; }
   bool pretty_print() { return pretty_print_; }
 
-  bool set_allow_trailing_comma(bool new_value) {
+  void set_allow_trailing_comma(bool new_value) {
     allow_trailing_comma_ = new_value;
   }
 
diff --git a/chrome/common/json_value_serializer_unittest.cc b/chrome/common/json_value_serializer_unittest.cc
index a4e9d8923da0a..1c2b433503432 100644
--- a/chrome/common/json_value_serializer_unittest.cc
+++ b/chrome/common/json_value_serializer_unittest.cc
@@ -187,6 +187,23 @@ TEST(JSONValueSerializerTest, HexStrings) {
   delete deserial_root;
 }
 
+TEST(JSONValueSerializerTest, AllowTrailingComma) {
+  Value* root = NULL;
+  Value* root_expected = NULL;
+  std::string test_with_commas("{\"key\": [true,],}");
+  std::string test_no_commas("{\"key\": [true]}");
+
+  JSONStringValueSerializer serializer(test_with_commas);
+  serializer.set_allow_trailing_comma(true);
+  JSONStringValueSerializer serializer_expected(test_no_commas);
+  ASSERT_TRUE(serializer.Deserialize(&root));
+  ASSERT_TRUE(serializer_expected.Deserialize(&root_expected));
+  ASSERT_TRUE(root->Equals(root_expected));
+
+  delete root;
+  delete root_expected;
+}
+
 namespace {
 
 void ValidateJsonList(const std::string& json) {
-- 
GitLab