@@ -263,6 +263,38 @@ public void ensureOutputsAreProperlyEscaped() {
263
263
assertEquals ("[31mAlso bad![0m" , text );
264
264
}
265
265
266
+ @ Test
267
+ public void ensureTestCaseNamesAreProperlyEscaped () {
268
+ var testDescriptor = new StubbedTestDescriptor (createId ("Weird\b name" ));
269
+ var identifier = TestIdentifier .from (testDescriptor );
270
+
271
+ var testCaseData = new TestData (identifier );
272
+ testCaseData .mark (TestExecutionResult .successful ());
273
+
274
+ Document xml = generateTestXml (Mockito .mock (TestPlan .class ), testCaseData );
275
+
276
+ Node item = xml .getElementsByTagName ("testcase" ).item (0 );
277
+ String testName = item .getAttributes ().getNamedItem ("name" ).getNodeValue ();
278
+
279
+ assertEquals ("[engine:mocked]/[class:ExampleTest]/[method:Weirdname" , testName );
280
+ }
281
+
282
+ @ Test
283
+ public void ensureTestSuiteNamesAreProperlyEscaped () {
284
+ var testDescriptor = new StubbedTestDescriptor (createId ("Weird\b name" ));
285
+ var identifier = TestIdentifier .from (testDescriptor );
286
+
287
+ var testSuiteData = new TestData (identifier );
288
+ testSuiteData .mark (TestExecutionResult .successful ());
289
+
290
+ Document xml = generateTestXml (Mockito .mock (TestPlan .class ), testSuiteData , List .of ());
291
+
292
+ Node item = xml .getElementsByTagName ("testsuite" ).item (0 );
293
+ String testName = item .getAttributes ().getNamedItem ("name" ).getNodeValue ();
294
+
295
+ assertEquals ("[engine:mocked]/[class:ExampleTest]/[method:Weirdname()]" , testName );
296
+ }
297
+
266
298
private Document generateTestXml (TestPlan testPlan , TestData testCase ) {
267
299
return generateDocument (xml -> new TestCaseXmlRenderer (testPlan ).toXml (xml , testCase ));
268
300
}
0 commit comments