package hudson.plugins.PerfPublisher; import java.awt.Color; import java.io.IOException; import java.util.List; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.CategoryItemRenderer; import org.jfree.ui.RectangleInsets; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import hudson.model.ModelObject; import hudson.model.AbstractBuild; import hudson.model.Result; import hudson.plugins.PerfPublisher.Report.Report; import hudson.plugins.PerfPublisher.Report.ReportContainer; import hudson.plugins.PerfPublisher.Report.Test; import hudson.util.ChartUtil; import hudson.util.ColorPalette; import hudson.util.DataSetBuilder; import hudson.util.ShiftedCategoryAxis; import hudson.util.ChartUtil.NumberOnlyBuildLabel; public class ChangedStatusTestsDetails implements ModelObject { private final TrendReport report; private final AbstractBuild<?, ?> _owner; public ChangedStatusTestsDetails(final AbstractBuild<?, ?> owner, TrendReport rep) { report = rep; this._owner = owner; } public AbstractBuild<?, ?> getOwner() { return _owner; } public String getDisplayName() { return "Details of status changed tests."; } public TrendReport getReport() { return report; } public String getPageContent() { StringBuilder stb = new StringBuilder(); List<Test> tests = report.getExecutionStatusChangedTests(); if (tests.size()>0) { stb.append("<table border=\"1px\" class=\"pane sortable\">"); stb.append("<tr>"); stb.append("<td class= \"pane-header\" title=\"Message\">Tests</td>"); stb.append("<td class=\"pane-header\" title=\"Number of tests\">Execution status modification</td>"); stb.append("</tr>"); for (int i=0; i<tests.size(); i++) { Test t = tests.get(i); stb.append("<tr><td><a class=\"info_bulle\" href=\"../testDetails."+t.getNameForUrl()+"\">"+t.getName()+"</a></td>"); if (t.isExecuted()){ stb.append("<td>Not executed <img border=\"0\" src=\"/plugin/PerfPublisher/icons/bullet_go.png\" /> <b>Executed</b></td>"); }else { stb.append("<td>Executed <img border=\"0\" src=\"/plugin/PerfPublisher/icons/bullet_go.png\" /> <b>Not executed</b></td>"); } stb.append("</tr>"); } stb.append("</table>"); } else { stb.append("<b>None of the tests has changed of execution status.</b><br />"); } tests = report.getSuccessStatusChangedTests(); if (tests.size()>0) { stb.append("<table border=\"1px\" class=\"pane sortable\">"); stb.append("<tr>"); stb.append("<td class= \"pane-header\" title=\"Message\">Tests</td>"); stb.append("<td class=\"pane-header\" title=\"Number of tests\">Success status modification</td>"); stb.append("</tr>"); for (int i=0; i<tests.size(); i++) { Test t = tests.get(i); stb.append("<tr><td><a class=\"info_bulle\" href=\"../testDetails."+t.getNameForUrl()+"\">"+t.getName()+"</a></td>"); if (t.isSuccessfull()){ stb.append("<td>Failed <img border=\"0\" src=\"/plugin/PerfPublisher/icons/bullet_go.png\" /> <b>Successfull</b></td>"); }else { stb.append("<td>Successfull <img border=\"0\" src=\"/plugin/PerfPublisher/icons/bullet_go.png\" /> <b>Failed</b></td>"); } stb.append("</tr>"); } stb.append("</table>"); } else { stb.append("<b>None of the tests has changed of success status.</b><br />"); } return stb.toString(); } }