in maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java [350:447]
private void constructTestCaseSection(ReportTestCase testCase) {
sink.tableRow();
sink.tableCell();
if (testCase.getFailureType() != null) {
sink.link("#" + toHtmlId(testCase.getFullName()));
sinkIcon(testCase.getFailureType());
sink.link_();
} else {
sinkIcon("success");
}
sink.tableCell_();
if (!testCase.isSuccessful()) {
sink.tableCell();
sinkAnchor("TC_" + toHtmlId(testCase.getFullName()));
link("#" + toHtmlId(testCase.getFullName()), testCase.getName());
SinkEventAttributeSet atts = new SinkEventAttributeSet();
atts.addAttribute(CLASS, "detailToggle");
atts.addAttribute(STYLE, "display:inline");
sink.unknown("div", TAG_TYPE_START, atts);
sinkLink("javascript:toggleDisplay('" + toHtmlId(testCase.getFullName()) + "');");
atts = new SinkEventAttributeSet();
atts.addAttribute(STYLE, "display:inline;");
atts.addAttribute(ID, toHtmlId(testCase.getFullName()) + "-off");
sink.unknown("span", TAG_TYPE_START, atts);
sink.text(" + ");
sink.unknown("span", TAG_TYPE_END, null);
atts = new SinkEventAttributeSet();
atts.addAttribute(STYLE, "display:none;");
atts.addAttribute(ID, toHtmlId(testCase.getFullName()) + "-on");
sink.unknown("span", TAG_TYPE_START, atts);
sink.text(" - ");
sink.unknown("span", TAG_TYPE_END, null);
sink.text("[ Detail ]");
sinkLink_();
sink.unknown("div", TAG_TYPE_END, null);
sink.tableCell_();
} else {
sinkCellAnchor(testCase.getName(), "TC_" + toHtmlId(testCase.getFullName()));
}
tableCell(formatI18nString("surefire", "value.time", testCase.getTime()));
sink.tableRow_();
if (!testCase.isSuccessful()) {
String message = testCase.getFailureMessage();
if (message != null) {
sink.tableRow();
tableCell("");
sink.tableCell();
// This shall not be subject to #linkPatternedText()
text(message);
sink.tableCell_();
tableCell("");
sink.tableRow_();
}
String detail = testCase.getFailureDetail();
if (detail != null) {
SinkEventAttributeSet atts = new SinkEventAttributeSet();
atts.addAttribute(ID, toHtmlId(testCase.getFullName()) + toHtmlIdFailure(testCase));
atts.addAttribute(STYLE, "display:none;");
sink.tableRow(atts);
tableCell("");
sink.tableCell();
verbatimText(detail);
sink.tableCell_();
tableCell("");
sink.tableRow_();
}
}
}