Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
JENKINS-24868: Rename zoomToChanges to more meaningful name, zoom to
failures only if we are looking at significant changes and failures
only, chnage default to be to both passed and failed tests
  • Loading branch information
ninian committed Oct 25, 2014
1 parent d4858a7 commit d29992f
Show file tree
Hide file tree
Showing 11 changed files with 41 additions and 22 deletions.
Expand Up @@ -95,7 +95,8 @@ public void doGraph(StaplerRequest req, StaplerResponse rsp)

Graph g = RobotGraphHelper.createDataSetForTestObject(getResult(),
Boolean.valueOf(req.getParameter("zoomSignificant")),
false, Boolean.valueOf(req.getParameter("hd")));
false, Boolean.valueOf(req.getParameter("hd")),
Boolean.valueOf(req.getParameter("failedOnly")));
g.doPng(req, rsp);
}

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/hudson/plugins/robot/RobotBuildAction.java
Expand Up @@ -47,7 +47,7 @@

import com.thoughtworks.xstream.XStream;

public class RobotBuildAction extends AbstractTestResultAction implements StaplerProxy {
public class RobotBuildAction extends AbstractTestResultAction<RobotBuildAction> implements StaplerProxy {

private static final Logger logger = Logger.getLogger(RobotBuildAction.class.getName());
private static final XStream XSTREAM = new XStream2();
Expand Down Expand Up @@ -247,7 +247,8 @@ public void doGraph(StaplerRequest req, StaplerResponse rsp)

Graph g = RobotGraphHelper.createDataSetForTestObject(getResult(),
Boolean.valueOf(req.getParameter("zoomSignificant")), false,
Boolean.valueOf(req.getParameter("hd")));
Boolean.valueOf(req.getParameter("hd")),
Boolean.valueOf(req.getParameter("failedOnly")));
g.doPng(req, rsp);
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/hudson/plugins/robot/RobotProjectAction.java
Expand Up @@ -96,7 +96,8 @@ public void doGraph(StaplerRequest req, StaplerResponse rsp)
AbstractBuild<?,?> lastBuild = getLastBuildWithRobot();
rsp.sendRedirect2("../" + lastBuild.getNumber() + "/" + getUrlName()
+ "/graph?zoomSignificant="+Boolean.valueOf(req.getParameter("zoomSignificant"))
+ "&hd="+Boolean.valueOf(req.getParameter("hd")));
+ "&hd="+Boolean.valueOf(req.getParameter("hd"))
+ "&failedOnly="+Boolean.valueOf(req.getParameter("failedOnly")));
}

/**
Expand Down
16 changes: 12 additions & 4 deletions src/main/java/hudson/plugins/robot/graph/RobotGraphHelper.java
Expand Up @@ -40,9 +40,10 @@ public class RobotGraphHelper {
* Create a test result trend graph. The graph will ignore builds with no robot results.
* @param rootObject The dataset will be taken from rootObject backwards.
* (i.e. there are no saved robot results in a given build)
* @param failedOnly put test failures onto the graph only, to allow focus on test failures
* @return
*/
public static Graph createDataSetForTestObject(RobotTestObject rootObject, boolean significantData, boolean binarydata, boolean hd) {
public static Graph createDataSetForTestObject(RobotTestObject rootObject, boolean significantData, boolean binarydata, boolean hd, boolean failedOnly) {
List<Number> values = new ArrayList<Number>();
List<String> rows = new ArrayList<String>();
List<NumberOnlyBuildLabel> columns = new ArrayList<NumberOnlyBuildLabel>();
Expand All @@ -51,11 +52,18 @@ public static Graph createDataSetForTestObject(RobotTestObject rootObject, boole
double upperbound = 0;
for (RobotTestObject testObject = rootObject; testObject != null; testObject = testObject.getPreviousResult()) {
Number failed = testObject.getFailed();
Number passed = testObject.getPassed();
Number passed = 0;
int compareLowerBoundTo;
if ( failedOnly) {
compareLowerBoundTo = failed.intValue();
} else {
passed = testObject.getPassed();
compareLowerBoundTo = passed.intValue();
}

if (significantData){
if(lowerbound == 0 || lowerbound > passed.intValue())
lowerbound = passed.intValue();
if(lowerbound == 0 || lowerbound > compareLowerBoundTo)
lowerbound = compareLowerBoundTo;

if(upperbound < failed.intValue() + passed.intValue())
upperbound = failed.intValue() + passed.intValue();
Expand Down
Expand Up @@ -239,7 +239,7 @@ public void doGraph(StaplerRequest req, StaplerResponse rsp)
throws IOException {
if(!isNeedToGenerate(req, rsp)) return;
Graph g = RobotGraphHelper.createDataSetForTestObject(this, false, true,
Boolean.valueOf(req.getParameter("hd")));
Boolean.valueOf(req.getParameter("hd")),false);
g.doPng(req, rsp);
}

Expand Down
Expand Up @@ -244,7 +244,8 @@ public void doGraph(StaplerRequest req, StaplerResponse rsp)
if(!isNeedToGenerate(req, rsp)) return;
Graph g = RobotGraphHelper.createDataSetForTestObject(this,
Boolean.valueOf(req.getParameter("zoomSignificant")),
false, Boolean.valueOf(req.getParameter("hd")));
false, Boolean.valueOf(req.getParameter("hd")),
Boolean.valueOf(req.getParameter("failedOnly")));
g.doPng(req, rsp);
}

Expand Down
Expand Up @@ -22,8 +22,8 @@ limitations under the License.
<div style="border: 1px solid gray; margin-bottom: 20px; padding: 10px" >
<h2>Configuration: ${run.parent.displayName}</h2>
<div style="float:right">
<a href="${run.project.absoluteUrl}${run.number}/robot"><img title="Browse results" src="${run.project.absoluteUrl}${run.number}/robot/graph?zoomSignificant=true" width="500" height="200"/></a><br/>
<p style="float:right"><a href="graph?hd=true&amp;zoomSignificant=true">Show bigger image</a></p>
<a href="${run.project.absoluteUrl}${run.number}/robot"><img title="Browse results" src="${run.project.absoluteUrl}${run.number}/robot/graph?zoomSignificant=true&amp;failedOnly=false" width="500" height="200"/></a><br/>
<p style="float:right"><a href="graph?hd=true&amp;zoomSignificant=true&amp;failedOnly=false">Show bigger image</a></p>
</div>
<u:robotsummary action="${it.getChildBuildAction(run)}"/>
<div style="clear: both" />
Expand Down
Expand Up @@ -22,7 +22,8 @@ limitations under the License.
<a href="${from.urlName}">
<img id="passfailgraph" src="" title="Browse results" width="500" height="200"/>
</a><br/>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="zoomToChanges('${from.urlName}/');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="redrawGraph('${from.urlName}/');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="failedOnly" onclick="redrawGraph('${from.urlName}/');"/>Show failed tests only</label></p>
<p style="float:right"><a id="passfailgraph_hd_link" href="">Show bigger image</a></p>
</div>
<script>initGraph('${from.urlName}/');</script>
Expand Down
Expand Up @@ -56,7 +56,8 @@ limitations under the License.
<a id="passfailgraph_hd" href="">
<img id="passfailgraph" src="" title="Show bigger image" width="500" height="200"/>
</a><br/>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="zoomToChanges('');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="redrawGraph('');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="failedOnly" onclick="redawGraph('');"/>Show failed tests only</label></p>
<p style="float:right"><a id="passfailgraph_hd_link" href="">Show bigger image</a></p>
</div>
<script>initGraph('');</script>
Expand Down
Expand Up @@ -56,7 +56,8 @@ limitations under the License.
<a id="passfailgraph_hd" href="">
<img id="passfailgraph" src="" title="Show bigger image" width="500" height="200"/>
</a><br/>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="zoomToChanges('');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="zoomToChanges" onclick="redrawGraph('');"/>Zoom to changes</label></p>
<p style="float:left"><label><input type="checkbox" id="failedOnly" onclick="redrawGraph('');"/>Show failed tests only</label></p>
<p style="float:right"><a id="passfailgraph_hd_link" href="">Show bigger image</a></p>
</div>
<script>initGraph('');</script>
Expand Down
18 changes: 11 additions & 7 deletions src/main/webapp/robot.js
@@ -1,20 +1,24 @@
function initGraph(target) {
var mode = getCookie("RobotResult_zoom", "true");
var failedOnly = getCookie("RobotResult_failedOnly", "true");
document.getElementById("zoomToChanges").checked = (mode == "true");
setGraphSrc(target, mode);
document.getElementById("failedOnly").checked = (failedOnly == "false");
setGraphSrc(target, mode, failedOnly);
}

function setGraphSrc(target, mode) {
function setGraphSrc(target, mode, failedOnly) {
if (document.getElementById("passfailgraph_hd"))
document.getElementById("passfailgraph_hd").href = target+"graph?hd=true&zoomSignificant="+mode;
document.getElementById("passfailgraph_hd_link").href = target+"graph?hd=true&zoomSignificant="+mode;
document.getElementById("passfailgraph").src = target+"graph?zoomSignificant="+mode;
document.getElementById("passfailgraph_hd").href = target+"graph?hd=true&zoomSignificant="+mode+"&failedOnly="+failedOnly;
document.getElementById("passfailgraph_hd_link").href = target+"graph?hd=true&zoomSignificant="+mode+"&failedOnly="+failedOnly;
document.getElementById("passfailgraph").src = target+"graph?zoomSignificant="+mode+"&failedOnly="+failedOnly;
}

function zoomToChanges(target) {
function redrawGraph(target) {
var mode = Boolean(document.getElementById('zoomToChanges').checked).toString();
var failedOnly = Boolean(document.getElementById('failedOnly').checked).toString();
setCookie("RobotResult_zoom",mode, 365);
setGraphSrc(target, mode);
setCookie("RobotResult_failedOnly",failedOnly, 365);
setGraphSrc(target, mode,failedOnly);
}

function setCookie(c_name,value,exdays) {
Expand Down

0 comments on commit d29992f

Please sign in to comment.