Internal changes
PiperOrigin-RevId: 803644071
diff --git a/src/google/protobuf/compiler/java/name_resolver_test.cc b/src/google/protobuf/compiler/java/name_resolver_test.cc
index 6b64785..f57f92b 100644
--- a/src/google/protobuf/compiler/java/name_resolver_test.cc
+++ b/src/google/protobuf/compiler/java/name_resolver_test.cc
@@ -141,6 +141,88 @@
"ConflictingFileClassNameOuterClass");
}
+TEST_F(NameResolverTest, FileProto1ClassNameEdition2023) {
+ BuildFileAndPopulatePool("foo.proto",
+ R"schema(
+ edition = "2023";
+
+ package proto2_unittest;
+
+ option java_api_version = 1;
+
+ message Bar {
+ int32 field = 1;
+ }
+ )schema");
+
+ ClassNameResolver resolver;
+ auto file = pool_.FindFileByName("foo.proto");
+ EXPECT_EQ(resolver.GetFileClassName(file, /* immutable = */ false),
+ "FooOuterClass");
+}
+
+TEST_F(NameResolverTest, FileProto1ClassNameEdition2024) {
+ BuildFileAndPopulatePool("foo.proto",
+ R"schema(
+ edition = "2024";
+
+ package proto2_unittest;
+
+ option java_api_version = 1;
+
+ message Bar {
+ int32 field = 1;
+ }
+ )schema");
+
+ ClassNameResolver resolver;
+ auto file = pool_.FindFileByName("foo.proto");
+ EXPECT_EQ(resolver.GetFileClassName(file, /* immutable = */ false),
+ "FooProto");
+}
+
+TEST_F(NameResolverTest, FileProto1ClassNameEdition2024Overridden) {
+ BuildFileAndPopulatePool("foo.proto",
+ R"schema(
+ edition = "2024";
+
+ package proto2_unittest;
+
+ option java_api_version = 1;
+ option java_outer_classname = "BarBuz";
+
+ message Bar {
+ int32 field = 1;
+ }
+ )schema");
+
+ ClassNameResolver resolver;
+ auto file = pool_.FindFileByName("foo.proto");
+ EXPECT_EQ(resolver.GetFileClassName(file, /* immutable = */ false), "BarBuz");
+}
+
+TEST_F(NameResolverTest, FileProto1ClassNameEdition2024OverriddenProto1) {
+ BuildFileAndPopulatePool("foo.proto",
+ R"schema(
+ edition = "2024";
+
+ package proto2_unittest;
+
+ option java_api_version = 1;
+ option java_outer_classname = "BarBuz";
+ option java_outer_classname_proto1 = "BarBuzProto1";
+
+ message Bar {
+ int32 field = 1;
+ }
+ )schema");
+
+ ClassNameResolver resolver;
+ auto file = pool_.FindFileByName("foo.proto");
+ EXPECT_EQ(resolver.GetFileClassName(file, /* immutable = */ false),
+ "BarBuzProto1");
+}
+
TEST_F(NameResolverTest, MultipleFilesServiceEdition2023) {
BuildFileAndPopulatePool("foo.proto",
R"schema(