1package org.testng.reporters.jq;
2
3import org.testng.ISuite;
4import org.testng.ITestResult;
5import org.testng.Reporter;
6import org.testng.reporters.XMLStringBuffer;
7
8import java.util.List;
9
10/**
11 * Display the reporter output for each test result.
12 */
13public class ReporterPanel extends BaseMultiSuitePanel {
14
15  public ReporterPanel(Model model) {
16    super(model);
17  }
18
19
20  @Override
21  public String getPrefix() {
22    return "reporter-";
23  }
24
25  @Override
26  public String getHeader(ISuite suite) {
27    return "Reporter output for " + suite.getName();
28  }
29
30  @Override
31  public String getContent(ISuite suite, XMLStringBuffer main) {
32    XMLStringBuffer xsb = new XMLStringBuffer(main.getCurrentIndent());
33    for (ITestResult tr : getModel().getAllTestResults(suite)) {
34      List<String> lines = Reporter.getOutput(tr);
35      if (! lines.isEmpty()) {
36        xsb.push(D, C, "reporter-method-div");
37        xsb.addRequired(S, Model.getTestResultName(tr), C, "reporter-method-name");
38        xsb.push(D, C, "reporter-method-output-div");
39        for (String output : lines) {
40          xsb.addRequired(S, output, C, "reporter-method-output");
41        }
42        xsb.pop(D);
43        xsb.pop(D);
44      }
45    }
46    return xsb.toXML();
47  }
48
49  @Override
50  public String getNavigatorLink(ISuite suite) {
51    return "Reporter output";
52  }
53
54}
55