X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2Fhtmlreport%2FResultPage.java;h=22fa7a39c879f7f0d546f17f367116a32b31b656;hb=b5c4e0c9c2fcf788a56d6ce72989fe15182e057d;hp=06bf7c30d3cffe37dcccb48d7dc7d1b91eba8f30;hpb=ad6192d6f2a2740d6c2a644d8d30bb9f529de46b;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java index 06bf7c30d..22fa7a39c 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java @@ -1,12 +1,14 @@ package org.argeo.slc.core.test.tree.htmlreport; import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.Date; import java.util.SortedMap; import java.util.TreeMap; -import javax.swing.tree.TreePath; - import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -42,18 +44,23 @@ class ResultPage { StringBuffer buf = new StringBuffer(""); buf.append("\n"); buf.append("
"); - buf.append("Result #").append(result.getTestResultId()).append( - "\n"); - buf - .append(""); + buf.append("Result #").append(result.getTestResultId()); + buf.append("\n"); + report.addStyles(buf); buf.append("
\n"); buf.append("\n"); // Header + buf.append("\n"); buf.append("

Result #").append(result.getTestResultId()).append( "

\n"); - buf.append(report.sdf.format(result.getCloseDate())); + Date closeDate = result.getCloseDate(); + if (closeDate == null) { + buf.append("[Not closed]"); + } else { + buf.append(report.sdf.format(closeDate)); + } // TOC generateToc(buf, registry); @@ -126,33 +133,49 @@ class ResultPage { buf.append("

\n"); buf.append(""); buf.append("

"); - String description = path.getName(); - if (registry != null) { - StructureElement element = registry.getElement(path); - if (element != null) { - description = element.getDescription(); - } - } - buf.append(description); + describedPath(path, registry, buf); buf.append("

"); PartSubList subList = (PartSubList) result.getResultParts().get( path); buf.append("\n"); + int displayedIndex = 1;// for display only for (TestResultPart part : subList.getParts()) { SimpleResultPart sPart = (SimpleResultPart) part; String clss = ""; - if (sPart.getStatus().equals(SimpleResultPart.PASSED)) { + if (sPart.getStatus().equals(TestStatus.PASSED)) { clss = "passed"; } else { clss = "failed"; } - buf.append(""); + buf.append(""); + buf.append("\n"); + if (sPart.getStatus().equals(TestStatus.ERROR)) { + buf + .append("

An unexpected error prevented the test to run properly."); + Throwable exception = sPart.getException(); + if (exception != null) { + StringWriter writer = new StringWriter(); + exception.printStackTrace(new PrintWriter(writer)); + buf.append("

");
+						buf.append(writer.toString());
+						buf.append("
"); + IOUtils.closeQuietly(writer); + } + buf.append("

"); + } + buf.append(""); + buf.append("\n"); + + displayedIndex++; } buf.append("
"); + buf.append("
").append(displayedIndex) + .append(""); buf.append(sPart.getMessage()); - buf.append("
\n"); + buf.append("top\n"); + buf.append("
\n"); } } @@ -175,8 +198,19 @@ class ResultPage { return path.getAsUniqueString().replace(path.getSeparator(), '_'); } - private String describedPath(TreePath path, StructureRegistry registry) { - StringBuffer buf = new StringBuffer(""); - return buf.toString(); + private void describedPath(TreeSPath path, StructureRegistry registry, + StringBuffer buf) { + // StringBuffer buf = new StringBuffer(""); + if (path.getParent() != null) { + describedPath(path.getParent(), registry, buf); + } + String description = path.getName(); + if (registry != null) { + StructureElement element = registry.getElement(path); + if (element != null) { + description = element.getDescription(); + } + } + buf.append('/').append(description); } }