diff --git a/java/test/com/github/bazel_contrib/contrib_rules_jvm/junit5/BazelJUnitOuputListenerTest.java b/java/test/com/github/bazel_contrib/contrib_rules_jvm/junit5/BazelJUnitOuputListenerTest.java index 8020ff7b..820c517e 100644 --- a/java/test/com/github/bazel_contrib/contrib_rules_jvm/junit5/BazelJUnitOuputListenerTest.java +++ b/java/test/com/github/bazel_contrib/contrib_rules_jvm/junit5/BazelJUnitOuputListenerTest.java @@ -263,6 +263,38 @@ public void ensureOutputsAreProperlyEscaped() { assertEquals("Also bad!", text); } + @Test + public void ensureTestCaseNamesAreProperlyEscaped() { + var testDescriptor = new StubbedTestDescriptor(createId("Weird\bname")); + var identifier = TestIdentifier.from(testDescriptor); + + var testCaseData = new TestData(identifier); + testCaseData.mark(TestExecutionResult.successful()); + + Document xml = generateTestXml(Mockito.mock(TestPlan.class), testCaseData); + + Node item = xml.getElementsByTagName("testcase").item(0); + String testName = item.getAttributes().getNamedItem("name").getNodeValue(); + + assertEquals("[engine:mocked]/[class:ExampleTest]/[method:Weirdname", testName); + } + + @Test + public void ensureTestSuiteNamesAreProperlyEscaped() { + var testDescriptor = new StubbedTestDescriptor(createId("Weird\bname")); + var identifier = TestIdentifier.from(testDescriptor); + + var testSuiteData = new TestData(identifier); + testSuiteData.mark(TestExecutionResult.successful()); + + Document xml = generateTestXml(Mockito.mock(TestPlan.class), testSuiteData, List.of()); + + Node item = xml.getElementsByTagName("testsuite").item(0); + String testName = item.getAttributes().getNamedItem("name").getNodeValue(); + + assertEquals("[engine:mocked]/[class:ExampleTest]/[method:Weirdname()]", testName); + } + private Document generateTestXml(TestPlan testPlan, TestData testCase) { return generateDocument(xml -> new TestCaseXmlRenderer(testPlan).toXml(xml, testCase)); }