summaryrefslogtreecommitdiff
path: root/chromium/base/json/json_parser_unittest.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/base/json/json_parser_unittest.cc
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/base/json/json_parser_unittest.cc')
-rw-r--r--chromium/base/json/json_parser_unittest.cc161
1 files changed, 94 insertions, 67 deletions
diff --git a/chromium/base/json/json_parser_unittest.cc b/chromium/base/json/json_parser_unittest.cc
index c4926423433..9e89afe3f7d 100644
--- a/chromium/base/json/json_parser_unittest.cc
+++ b/chromium/base/json/json_parser_unittest.cc
@@ -210,76 +210,103 @@ TEST_F(JSONParserTest, ConsumeNumbers) {
}
TEST_F(JSONParserTest, ErrorMessages) {
- JSONReader::ValueWithError root =
- JSONReader::ReadAndReturnValueWithError("[42]", JSON_PARSE_RFC);
- EXPECT_TRUE(root.error_message.empty());
- EXPECT_EQ(0, root.error_code);
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[42]");
+ EXPECT_TRUE(value);
+ EXPECT_TRUE(parser.GetErrorMessage().empty());
+ EXPECT_EQ(0, parser.error_code());
+ }
// Test each of the error conditions
- root = JSONReader::ReadAndReturnValueWithError("{},{}", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(
- 1, 3, JSONReader::kUnexpectedDataAfterRoot),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_UNEXPECTED_DATA_AFTER_ROOT, root.error_code);
-
- std::string nested_json;
- for (int i = 0; i < 201; ++i) {
- nested_json.insert(nested_json.begin(), '[');
- nested_json.append(1, ']');
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("{},{}");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(
+ 1, 3, JSONParser::kUnexpectedDataAfterRoot),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_UNEXPECTED_DATA_AFTER_ROOT, parser.error_code());
+ }
+
+ {
+ std::string nested_json;
+ for (int i = 0; i < 201; ++i) {
+ nested_json.insert(nested_json.begin(), '[');
+ nested_json.append(1, ']');
+ }
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse(nested_json);
+ EXPECT_FALSE(value);
+ EXPECT_EQ(
+ JSONParser::FormatErrorMessage(1, 200, JSONParser::kTooMuchNesting),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_TOO_MUCH_NESTING, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[1,]");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 4, JSONParser::kTrailingComma),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_TRAILING_COMMA, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("{foo:\"bar\"}");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(
+ 1, 2, JSONParser::kUnquotedDictionaryKey),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_UNQUOTED_DICTIONARY_KEY, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("{\"foo\":\"bar\",}");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 14, JSONParser::kTrailingComma),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_TRAILING_COMMA, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[nu]");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 2, JSONParser::kSyntaxError),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_SYNTAX_ERROR, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[\"xxx\\xq\"]");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONParser::kInvalidEscape),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[\"xxx\\uq\"]");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONParser::kInvalidEscape),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code());
+ }
+
+ {
+ JSONParser parser(JSON_PARSE_RFC);
+ Optional<Value> value = parser.Parse("[\"xxx\\q\"]");
+ EXPECT_FALSE(value);
+ EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONParser::kInvalidEscape),
+ parser.GetErrorMessage());
+ EXPECT_EQ(JSONParser::JSON_INVALID_ESCAPE, parser.error_code());
}
- root = JSONReader::ReadAndReturnValueWithError(nested_json, JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 200, JSONReader::kTooMuchNesting),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_TOO_MUCH_NESTING, root.error_code);
-
- root = JSONReader::ReadAndReturnValueWithError("[1,]", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 4, JSONReader::kTrailingComma),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_TRAILING_COMMA, root.error_code);
-
- root =
- JSONReader::ReadAndReturnValueWithError("{foo:\"bar\"}", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(
- JSONParser::FormatErrorMessage(1, 2, JSONReader::kUnquotedDictionaryKey),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_UNQUOTED_DICTIONARY_KEY, root.error_code);
-
- root = JSONReader::ReadAndReturnValueWithError("{\"foo\":\"bar\",}",
- JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 14, JSONReader::kTrailingComma),
- root.error_message);
-
- root = JSONReader::ReadAndReturnValueWithError("[nu]", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 2, JSONReader::kSyntaxError),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_SYNTAX_ERROR, root.error_code);
-
- root =
- JSONReader::ReadAndReturnValueWithError("[\"xxx\\xq\"]", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, root.error_code);
-
- root =
- JSONReader::ReadAndReturnValueWithError("[\"xxx\\uq\"]", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, root.error_code);
-
- root =
- JSONReader::ReadAndReturnValueWithError("[\"xxx\\q\"]", JSON_PARSE_RFC);
- EXPECT_FALSE(root.value);
- EXPECT_EQ(JSONParser::FormatErrorMessage(1, 7, JSONReader::kInvalidEscape),
- root.error_message);
- EXPECT_EQ(JSONReader::JSON_INVALID_ESCAPE, root.error_code);
}
} // namespace internal