Index: third_party/protobuf/java/core/src/test/java/com/google/protobuf/DescriptorsTest.java |
diff --git a/third_party/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java b/third_party/protobuf/java/core/src/test/java/com/google/protobuf/DescriptorsTest.java |
similarity index 95% |
rename from third_party/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java |
rename to third_party/protobuf/java/core/src/test/java/com/google/protobuf/DescriptorsTest.java |
index 82ff34afe3ec0a1ef56e8613b56beeb65bb8577c..ef89b389c26ebaf0b7858c8f3a76bc3ee2ba9cf3 100644 |
--- a/third_party/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java |
+++ b/third_party/protobuf/java/core/src/test/java/com/google/protobuf/DescriptorsTest.java |
@@ -59,7 +59,6 @@ import protobuf_unittest.UnittestProto.TestMultipleExtensionRanges; |
import protobuf_unittest.UnittestProto.TestRequired; |
import protobuf_unittest.UnittestProto.TestReservedFields; |
import protobuf_unittest.UnittestProto.TestService; |
- |
import junit.framework.TestCase; |
import java.util.Arrays; |
@@ -573,6 +572,42 @@ public class DescriptorsTest extends TestCase { |
} |
} |
+ public void testUnknownFieldsDenied() throws Exception { |
+ FileDescriptorProto fooProto = FileDescriptorProto.newBuilder() |
+ .setName("foo.proto") |
+ .addMessageType(DescriptorProto.newBuilder() |
+ .setName("Foo") |
+ .addField(FieldDescriptorProto.newBuilder() |
+ .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL) |
+ .setTypeName("Bar") |
+ .setName("bar") |
+ .setNumber(1))) |
+ .build(); |
+ |
+ try { |
+ Descriptors.FileDescriptor.buildFrom(fooProto, new FileDescriptor[0]); |
+ fail("DescriptorValidationException expected"); |
+ } catch (DescriptorValidationException e) { |
+ assertTrue(e.getMessage().indexOf("Bar") != -1); |
+ assertTrue(e.getMessage().indexOf("is not defined") != -1); |
+ } |
+ } |
+ |
+ public void testUnknownFieldsAllowed() throws Exception { |
+ FileDescriptorProto fooProto = FileDescriptorProto.newBuilder() |
+ .setName("foo.proto") |
+ .addDependency("bar.proto") |
+ .addMessageType(DescriptorProto.newBuilder() |
+ .setName("Foo") |
+ .addField(FieldDescriptorProto.newBuilder() |
+ .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL) |
+ .setTypeName("Bar") |
+ .setName("bar") |
+ .setNumber(1))) |
+ .build(); |
+ Descriptors.FileDescriptor.buildFrom(fooProto, new FileDescriptor[0], true); |
+ } |
+ |
public void testHiddenDependency() throws Exception { |
FileDescriptorProto barProto = FileDescriptorProto.newBuilder() |
.setName("bar.proto") |