From eee8ee81c683169914ed9dd8f6c514eab7811214 Mon Sep 17 00:00:00 2001 From: Jesse Hallett Date: Fri, 3 Jan 2014 13:26:24 -0800 Subject: Outputs message, xpath, and proper severity in batch run reports Result extracts xpath from problem report Retrieves msg and xpath from problem report got severity working --- .../main/java/com/galois/fiveui/BatchRunner.java | 41 +++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) (limited to 'src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java') diff --git a/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java b/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java index 934620a..4adbd67 100644 --- a/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java +++ b/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java @@ -123,7 +123,7 @@ public class BatchRunner { } catch (Exception e) { String errStr = "failed to complete webcrawl of" + seedUrl + "\n"; errStr += e.toString(); - builder.add(new Result(ResType.Exception, _driver, errStr, seedUrl, + builder.add(new Result(ResType.Exception, _driver, errStr, null, seedUrl, rs.getName(), rs.getDescription(), "")); logger.error(errStr); continue; @@ -148,7 +148,7 @@ public class BatchRunner { } catch (Exception e) { String errStr = "exception during runRule: " + rs.getName() + "\n"; errStr += e.toString(); - builder.add(new Result(ResType.Exception, _driver, errStr, url, + builder.add(new Result(ResType.Exception, _driver, errStr, null, url, rs.getName(), rs.getDescription(), "")); logger.error(errStr); } @@ -192,33 +192,36 @@ public class BatchRunner { if (res.getClass() == String.class) { // we received an error via the expected mechanisms: logger.error("exception running rule: " + res); - builder.add(new Result(ResType.Exception, _driver, "", _driver.getCurrentUrl(), + builder.add(new Result(ResType.Exception, _driver, "", null, _driver.getCurrentUrl(), ruleSet.getName(), ruleSet.getDescription(), "")); return builder.build(); } else { try { @SuppressWarnings({ "unchecked", "rawtypes" }) - List>> results = (List) res; + List>> results = (List) res; if (0 == results.size()) { builder.add(new Result(ResType.Pass, _driver, - "passed " + ruleSet.getRules().size() + " tests", + "passed " + ruleSet.getRules().size() + " tests", null, _driver.getCurrentUrl(), ruleSet.getName(), ruleSet.getDescription(), "")); } - for (Map> r : results) { - Map problem = r.get("payload"); + for (Map> r : results) { + Map problem = r.get("payload"); // TODO decide what to extract from problem object and what // to do with it. // // Probably we should just pass along the Map // and let the reporter deal with it. - String ruleName = problem.get("name"); - String ruleDescr = problem.get("descr"); - String problemAsHTML = "Rule Name: " + ruleName + " / " + String ruleName = (String) problem.get("name"); + String ruleDescr = (String) problem.get("descr"); + String msg = (String) (problem.get("msg") != null ? problem.get("msg") : ""); + String xpath = (String) problem.get("xpath"); + ResType severity = mapSeverity((Long) problem.get("severity")); + String problemAsHTML = "Rule Name: " + ruleName + " / " + "Rule Desc: " + ruleDescr + " / " - + "XPath: " + problem.get("xpath"); - builder.add(new Result(ResType.Error, _driver, "", + + "XPath: " + (String) problem.get("xpath"); + builder.add(new Result(severity, _driver, msg, xpath, _driver.getCurrentUrl(), ruleName, ruleDescr, problemAsHTML)); @@ -228,7 +231,7 @@ public class BatchRunner { // An unexpected error happened: logger.error("unexpected object returned: " + e.toString()); builder.add(new Result(ResType.Exception, _driver, - "Unexpected object returned: " + res + ", state: " + state, + "Unexpected object returned: " + res + ", state: " + state, null, _driver.getCurrentUrl(), ruleSet.getName(), ruleSet.getDescription(), @@ -302,4 +305,16 @@ public class BatchRunner { private void loadURL(String url) { _driver.get(url); } + + private static ResType mapSeverity(long sev) { + ResType res; + + switch ((int) sev) { + case 0: res = ResType.Error; break; + case 1: res = ResType.Warning; break; + default: res = ResType.Error; break; + } + + return res; + } } -- cgit v1.2.3