1 package org
.argeo
.slc
.core
.test
.tree
;
4 import java
.io
.FileWriter
;
5 import java
.io
.IOException
;
8 import org
.argeo
.slc
.core
.structure
.tree
.TreeSPath
;
9 import org
.argeo
.slc
.core
.test
.SimpleResultPart
;
10 import org
.argeo
.slc
.core
.test
.TestReport
;
11 import org
.argeo
.slc
.core
.test
.TestResult
;
12 import org
.argeo
.slc
.core
.test
.TestResultPart
;
13 import org
.argeo
.slc
.dao
.test
.TestResultDao
;
15 public class FullHtmlTreeReport
implements TestReport
{
16 private TestResultDao testResultDao
;
17 private File reportDir
;
19 public void generateTestReport(TestResult testResult
) {
20 if (testResultDao
== null) {
21 TreeTestResult result
= (TreeTestResult
) testResult
;
22 generateResultPage(getResultFile(result
), result
);
24 if (reportDir
.exists()) {
26 for (File file
: reportDir
.listFiles()) {
32 StringBuffer index
= new StringBuffer("");
34 .append("<html><header><title>Results</title></header><body>\n<table border=1>\n");
36 List
<TestResult
> list
= testResultDao
.listTestResults();
37 for (TestResult testRes
: list
) {
38 TreeTestResult res
= (TreeTestResult
) testRes
;
40 File file
= getResultFile(res
);
41 index
.append("<tr><td><a href=\"").append(file
.getName())
43 index
.append(res
.getTestResultId()).append("</a></td></tr>\n");
44 generateResultPage(file
, res
);
47 index
.append("</table>\n</body></html>");
50 FileWriter writer
= new FileWriter(reportDir
.getPath()
51 + File
.separator
+ "index.html");
52 writer
.write(index
.toString());
54 } catch (IOException e
) {
61 protected void generateResultPage(File file
, TreeTestResult result
) {
62 StringBuffer buf
= new StringBuffer("");
63 buf
.append("<html>\n");
64 buf
.append("<header><title>Result #").append(result
.getTestResultId())
65 .append("</title></header>\n");
67 buf
.append("<body>\n");
69 buf
.append("<h1>Result #").append(result
.getTestResultId()).append(
72 buf
.append("<table border=1>\n");
73 for (TreeSPath path
: result
.getResultParts().keySet()) {
74 buf
.append("<tr><td>").append(path
).append("</td>\n");
76 PartSubList subList
= (PartSubList
) result
.getResultParts().get(
78 buf
.append("<table border=0>\n");
79 for (TestResultPart part
: subList
.getParts()) {
80 SimpleResultPart sPart
= (SimpleResultPart
) part
;
81 String color
= "yellow";
82 if (sPart
.getStatus() == SimpleResultPart
.PASSED
) {
87 buf
.append("<tr><td style=\"color:").append(color
)
90 buf
.append(sPart
.getMessage());
91 buf
.append("</td></tr>\n");
93 buf
.append("</table>\n");
95 buf
.append("</td></tr>\n");
97 buf
.append("</table>\n");
99 buf
.append("</body>");
100 buf
.append("</html>");
103 FileWriter writer
= new FileWriter(file
);
104 writer
.write(buf
.toString());
106 } catch (IOException e
) {
111 protected File
getResultFile(TreeTestResult result
) {
112 return new File(reportDir
.getPath() + File
.separator
113 + result
.getTestResultId() + ".html");
116 public void setTestResultDao(TestResultDao testResultDao
) {
117 this.testResultDao
= testResultDao
;
120 public void setReportDir(File reportDir
) {
121 this.reportDir
= reportDir
;