소스 검색

Add unit test for loading unknown fields in Any messages

Use ./tests.sh cpp to run it
Brandon Cole 7 년 전
부모
커밋
d83a9f66bc
1개의 변경된 파일18개의 추가작업 그리고 0개의 파일을 삭제
  1. 18 0
      src/google/protobuf/util/json_util_test.cc

+ 18 - 0
src/google/protobuf/util/json_util_test.cc

@@ -56,6 +56,7 @@ using proto3::TestEnumValue;
 using proto3::TestMap;
 using proto3::TestMessage;
 using proto3::TestOneof;
+using proto3::TestAny;
 
 static const char kTypeUrlPrefix[] = "type.googleapis.com";
 
@@ -357,6 +358,23 @@ TEST_F(JsonUtilTest, TestDynamicMessage) {
   EXPECT_EQ(ToJson(generated, options), ToJson(*message, options));
 }
 
+TEST_F(JsonUtilTest, TestParsingUnknownAnyFields) {
+  string input =
+      "{\n"
+      "  \"value\": {\n"
+      "    \"@type\": \"type.googleapis.com/proto3.TestMessage\",\n"
+      "    \"unknown_field\": \"UNKOWN_VALUE\"\n"
+      "  }\n"
+      "}";
+      
+  TestAny m;
+  JsonParseOptions options;
+  EXPECT_FALSE(FromJson(input, &m, options));
+
+  options.ignore_unknown_fields = true;
+  EXPECT_TRUE(FromJson(input, &m, options));
+}
+
 TEST_F(JsonUtilTest, TestParsingUnknownEnumsProto2) {
   string input =
       "{\n"