Add a test for java_import with a custom java rule

(ignore-relnotes)

PiperOrigin-RevId: 756410044
Change-Id: I9adc599880b5b66c904d02b945d625afb8b53a36
diff --git a/test/java/common/rules/java_import_tests.bzl b/test/java/common/rules/java_import_tests.bzl
index 2cea4c6..680136a 100644
--- a/test/java/common/rules/java_import_tests.bzl
+++ b/test/java/common/rules/java_import_tests.bzl
@@ -12,6 +12,7 @@
 load("//test/java/testutil:helper.bzl", "always_passes")
 load("//test/java/testutil:java_info_subject.bzl", "java_info_subject")
 load("//test/java/testutil:javac_action_subject.bzl", "javac_action_subject")
+load("//test/java/testutil:rules/custom_library.bzl", "custom_library")
 load("//test/java/testutil:rules/forward_java_info.bzl", "java_info_forwarding_rule")
 
 def _test_java_import_attributes(name):
@@ -913,6 +914,40 @@
         "{package}/src_jar_a.jar",
     ])
 
+def _test_with_custom_library(name):
+    target_name = name + "/javalib"
+    util.helper_target(
+        java_library,
+        name = target_name,
+        srcs = ["MyClass.java"],
+        deps = [target_name + "/foo"],
+    )
+    util.helper_target(
+        java_import,
+        name = target_name + "/foo",
+        jars = ["foo.jar"],
+        runtime_deps = [target_name + "/javacustomlib"],
+    )
+    util.helper_target(
+        custom_library,
+        name = target_name + "/javacustomlib",
+        srcs = ["Other.java"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_with_custom_library_impl,
+        target = target_name,
+    )
+
+def _test_with_custom_library_impl(env, target):
+    assert_java_info = java_info_subject.from_target(env, target)
+    assert_java_info.compilation_info().runtime_classpath_list().contains_exactly_predicates([
+        matching.file_basename_equals("javalib.jar"),
+        matching.file_basename_equals("foo.jar"),
+        matching.file_basename_equals("javacustomlib.jar"),
+    ]).in_order()
+
 def java_import_tests(name):
     test_suite(
         name = name,
@@ -946,5 +981,6 @@
             _test_proguard_specs_are_validated,
             _test_transitive_proguard_specs_are_exported,
             _test_src_jars_output_groups,
+            _test_with_custom_library,
         ],
     )
diff --git a/test/java/testutil/java_info_subject.bzl b/test/java/testutil/java_info_subject.bzl
index f263b04..e924243 100644
--- a/test/java/testutil/java_info_subject.bzl
+++ b/test/java/testutil/java_info_subject.bzl
@@ -57,7 +57,7 @@
     public = struct(
         compilation_classpath = lambda: subjects.depset_file(self.actual.compilation_classpath, self.meta.derive("compilation_classpath")),
         runtime_classpath = lambda: subjects.depset_file(self.actual.runtime_classpath, self.meta.derive("runtime_classpath")),
-        runtime_classpath_list = lambda: subjects.collection(self.actual.runtime_classpath.to_list(), self.meta.derive("runtime_classpath.to_list()")),
+        runtime_classpath_list = lambda: subjects.collection(self.actual.runtime_classpath.to_list(), self.meta.derive("runtime_classpath.to_list()"), format = True),
         javac_options = lambda: subjects.collection(helper.tokenize_javacopts(opts = self.actual.javac_options), self.meta.derive("javac_options")),
     )
     return public