Migrate the `javaTestSetsSecurityManagerPropertyOnVersion17` to Starlark

The test is added to rules_java and removed from Bazel

(ignore-relnotes)

PiperOrigin-RevId: 903721335
Change-Id: I8cd6b6c86bb32304f63cc1f21fae16f20319eefd
diff --git a/test/java/common/rules/java_test_tests.bzl b/test/java/common/rules/java_test_tests.bzl
index f1c4466..d4bd4b0 100644
--- a/test/java/common/rules/java_test_tests.bzl
+++ b/test/java/common/rules/java_test_tests.bzl
@@ -12,6 +12,7 @@
 load("//java/common:java_semantics.bzl", "semantics")
 load("//test/java/testutil:helper.bzl", "always_passes")
 load("//test/java/testutil:mock_cc_toolchain.bzl", "mock_cc_toolchain")
+load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_runtime_toolchain")
 load("//test/java/testutil:mock_test_toolchain.bzl", "mock_test_toolchains")
 load("//test/java/testutil:rules/custom_java_info_rule.bzl", "custom_java_info_rule")
 
@@ -315,6 +316,42 @@
         {"requires-darwin": ""},
     )
 
+def _test_java_test_sets_securiry_manager_property_jdk17(name):
+    util.helper_target(
+        java_test,
+        name = name + "/test",
+        srcs = ["FooTest.java"],
+        test_class = "FooTest",
+    )
+    util.helper_target(
+        mock_java_runtime_toolchain,
+        name = name + "/toolchain",
+        version = 17,
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_java_test_sets_securiry_manager_property_jdk17_impl,
+        target = name + "/test",
+        config_settings = {
+            "//command_line_option:extra_toolchains": [Label(name + "/toolchain")],
+        },
+    )
+
+def _test_java_test_sets_securiry_manager_property_jdk17_impl(env, target):
+    executable = env.expect.that_target(target).executable().actual.short_path
+    assert_action = env.expect.that_target(target).action_generating(executable)
+    if assert_action.actual.substitutions:
+        # TemplateExpansion action on linux/mac
+        assert_action.substitutions().get("%jvm_flags%", factory = subjects.str).contains(
+            "-Djava.security.manager=allow",
+        )
+    else:
+        # windows
+        assert_action.argv().contains_predicate(
+            matching.str_matches("-Djava.security.manager=allow"),
+        )
+
 def java_test_tests(name):
     test_suite(
         name = name,
@@ -327,5 +364,6 @@
             _test_stamp_values,
             _test_add_test_support_to_compile_time_deps_flag,
             _test_mac_requires_darwin_for_execution,
+            _test_java_test_sets_securiry_manager_property_jdk17,
         ],
     )
diff --git a/test/java/testutil/mock_java_toolchain.bzl b/test/java/testutil/mock_java_toolchain.bzl
index c0ca631..de824b1 100644
--- a/test/java/testutil/mock_java_toolchain.bzl
+++ b/test/java/testutil/mock_java_toolchain.bzl
@@ -46,12 +46,14 @@
         srcs = [],
         java_home = None,
         java = None,
+        version = None,
         **kwargs):
     _java_runtime_rule(
         name = name + "_runtime",
         srcs = srcs,
         java_home = java_home,
         java = java,
+        version = version,
         **kwargs
     )
     native.toolchain(