| Index: base/json/json_reader_unittest.cc
|
| diff --git a/base/json/json_reader_unittest.cc b/base/json/json_reader_unittest.cc
|
| index 17dea560382dd5266bc6a503d2c869ec994d6593..71649dfdd5faff6aae3ffd0c08b22e36dd6d6f7f 100644
|
| --- a/base/json/json_reader_unittest.cc
|
| +++ b/base/json/json_reader_unittest.cc
|
| @@ -468,23 +468,30 @@ TEST(JSONReaderTest, Reading) {
|
| TEST(JSONReaderTest, ErrorMessages) {
|
| // Error strings should not be modified in case of success.
|
| std::string error_message;
|
| + int error_code = 0;
|
| scoped_ptr<Value> root;
|
| - root.reset(JSONReader::ReadAndReturnError("[42]", false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError("[42]", false,
|
| + &error_code, &error_message));
|
| EXPECT_TRUE(error_message.empty());
|
| + EXPECT_EQ(0, error_code);
|
|
|
| // Test line and column counting
|
| const char* big_json = "[\n0,\n1,\n2,\n3,4,5,6 7,\n8,\n9\n]";
|
| // error here --------------------------------^
|
| - root.reset(JSONReader::ReadAndReturnError(big_json, false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError(big_json, false,
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(5, 9, JSONReader::kSyntaxError),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_SYNTAX_ERROR, error_code);
|
|
|
| // Test each of the error conditions
|
| - root.reset(JSONReader::ReadAndReturnError("{},{}", false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError("{},{}", false,
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 3,
|
| JSONReader::kUnexpectedDataAfterRoot), error_message);
|
| + EXPECT_EQ(JSONReader::JSON_UNEXPECTED_DATA_AFTER_ROOT, error_code);
|
|
|
| std::string nested_json;
|
| for (int i = 0; i < 101; ++i) {
|
| @@ -492,56 +499,66 @@ TEST(JSONReaderTest, ErrorMessages) {
|
| nested_json.append(1, ']');
|
| }
|
| root.reset(JSONReader::ReadAndReturnError(nested_json, false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 101, JSONReader::kTooMuchNesting),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_TOO_MUCH_NESTING, error_code);
|
|
|
| - root.reset(JSONReader::ReadAndReturnError("42", false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError("42", false,
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 1,
|
| JSONReader::kBadRootElementType), error_message);
|
| + EXPECT_EQ(JSONReader::JSON_BAD_ROOT_ELEMENT_TYPE, error_code);
|
|
|
| - root.reset(JSONReader::ReadAndReturnError("[1,]", false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError("[1,]", false,
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 4, JSONReader::kTrailingComma),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_TRAILING_COMMA, error_code);
|
|
|
| root.reset(JSONReader::ReadAndReturnError("{foo:\"bar\"}", false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 2,
|
| JSONReader::kUnquotedDictionaryKey), error_message);
|
| + EXPECT_EQ(JSONReader::JSON_UNQUOTED_DICTIONARY_KEY, error_code);
|
|
|
| root.reset(JSONReader::ReadAndReturnError("{\"foo\":\"bar\",}", false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 14, JSONReader::kTrailingComma),
|
| error_message);
|
|
|
| - root.reset(JSONReader::ReadAndReturnError("[nu]", false, &error_message));
|
| + root.reset(JSONReader::ReadAndReturnError("[nu]", false,
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 2, JSONReader::kSyntaxError),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_SYNTAX_ERROR, error_code);
|
|
|
| root.reset(JSONReader::ReadAndReturnError("[\"xxx\\xq\"]", false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, error_code);
|
|
|
| root.reset(JSONReader::ReadAndReturnError("[\"xxx\\uq\"]", false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
|
| error_message);
|
| + EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, error_code);
|
|
|
| root.reset(JSONReader::ReadAndReturnError("[\"xxx\\q\"]", false,
|
| - &error_message));
|
| + &error_code, &error_message));
|
| EXPECT_FALSE(root.get());
|
| EXPECT_EQ(JSONReader::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
|
| error_message);
|
| -
|
| + EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, error_code);
|
| }
|
|
|
| } // namespace base
|
|
|