aboutsummaryrefslogtreecommitdiff
path: root/conformance/conformance_test.cc
diff options
context:
space:
mode:
authorThomas Van Lenten <thomasvl@google.com>2016-08-23 08:19:45 -0400
committerGitHub <noreply@github.com>2016-08-23 08:19:45 -0400
commit80f65d2df82cc23eb92ef5355d638b9102074190 (patch)
tree7573a77e4b7b55aa39495dd8892d8f52eec1416a /conformance/conformance_test.cc
parentb5794ed02420770bf58398581c1ca11e1c9a29d9 (diff)
downloadprotobuf-80f65d2df82cc23eb92ef5355d638b9102074190.tar.gz
protobuf-80f65d2df82cc23eb92ef5355d638b9102074190.tar.bz2
protobuf-80f65d2df82cc23eb92ef5355d638b9102074190.zip
Add note about JSON tests maybe being wrong. (#1992)
Add note about JSON tests maybe being wrong. - Add note about the JSON test maybe not being correct yet. - Add test to checks the generated names for double underscores to be sure they are what is expected.
Diffstat (limited to 'conformance/conformance_test.cc')
-rw-r--r--conformance/conformance_test.cc32
1 files changed, 28 insertions, 4 deletions
diff --git a/conformance/conformance_test.cc b/conformance/conformance_test.cc
index 05ca2719..fb963f68 100644
--- a/conformance/conformance_test.cc
+++ b/conformance/conformance_test.cc
@@ -654,14 +654,16 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
RunValidJsonTest("HelloWorld", "{\"optionalString\":\"Hello, World!\"}",
"optional_string: 'Hello, World!'");
+ // NOTE: The spec for JSON support is still being sorted out, these may not
+ // all be correct.
// Test field name conventions.
RunValidJsonTest(
"FieldNameInSnakeCase",
R"({
"fieldname1": 1,
"fieldName2": 2,
- "FieldName3": 3,
- "FieldName4": 4
+ "fieldName3": 3,
+ "fieldName4": 4
})",
R"(
fieldname1: 1
@@ -848,18 +850,22 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
"optionalNestedMessage": {a: 1},
"optional_nested_message": {}
})");
+ // NOTE: The spec for JSON support is still being sorted out, these may not
+ // all be correct.
// Serializers should use lowerCamelCase by default.
RunValidJsonTestWithValidator(
"FieldNameInLowerCamelCase",
R"({
"fieldname1": 1,
"fieldName2": 2,
- "FieldName3": 3
+ "fieldName3": 3,
+ "fieldName4": 4
})",
[](const Json::Value& value) {
return value.isMember("fieldname1") &&
value.isMember("fieldName2") &&
- value.isMember("FieldName3");
+ value.isMember("fieldName3") &&
+ value.isMember("fieldName4");
});
RunValidJsonTestWithValidator(
"FieldNameWithNumbers",
@@ -889,6 +895,24 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
value.isMember("fIELDNAME11") &&
value.isMember("fIELDName12");
});
+ RunValidJsonTestWithValidator(
+ "FieldNameWithDoubleUnderscores",
+ R"({
+ "fieldName13": 13,
+ "fieldName14": 14,
+ "fieldName15": 15,
+ "fieldName16": 16,
+ "fieldName17": 17,
+ "fieldName18": 18
+ })",
+ [](const Json::Value& value) {
+ return value.isMember("fieldName13") &&
+ value.isMember("fieldName14") &&
+ value.isMember("fieldName15") &&
+ value.isMember("fieldName16") &&
+ value.isMember("fieldName17") &&
+ value.isMember("fieldName18");
+ });
// Integer fields.
RunValidJsonTest(