From 641294d614e5a1b25f9902aa37329956745f6113 Mon Sep 17 00:00:00 2001 From: Benjamin Bischoff Date: Mon, 15 Jan 2018 14:49:36 +0100 Subject: [PATCH 01/12] made report engine more resilient to missinv json values --- pom.xml | 2 +- .../com/trivago/rta/constants/Status.java | 7 +++++- .../com/trivago/rta/json/pojo/Element.java | 18 ++++++++++----- .../com/trivago/rta/json/pojo/Embedding.java | 2 +- .../java/com/trivago/rta/json/pojo/Match.java | 2 +- .../com/trivago/rta/json/pojo/Report.java | 11 +++++++++- .../com/trivago/rta/json/pojo/Result.java | 9 ++++---- .../trivago/rta/json/pojo/ResultMatch.java | 11 ++++++---- .../pages/pojos/CustomParameter.java | 2 +- src/main/resources/template/index.html | 22 +++++++++---------- .../template/scenario-detail/detail.html | 8 +++---- .../rta/json/JsonPojoConverterTest.java | 2 +- 12 files changed, 61 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index acb56d2b..220da4c4 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.trivago.rta cluecumber-report-plugin - 0.1.1 + 0.1.2 https://github.com/trivago/cluecumber-report-plugin Cluecumber Maven Plugin for Cucumber Reports diff --git a/src/main/java/com/trivago/rta/constants/Status.java b/src/main/java/com/trivago/rta/constants/Status.java index 3c7efad3..eefcc55a 100644 --- a/src/main/java/com/trivago/rta/constants/Status.java +++ b/src/main/java/com/trivago/rta/constants/Status.java @@ -20,7 +20,12 @@ * Enum to manage all states for steps and scenarios. */ public enum Status { - PASSED("passed"), FAILED("failed"), SKIPPED("skipped"), PENDING("pending"), UNDEFINED("undefined"); + PASSED("passed"), + FAILED("failed"), + SKIPPED("skipped"), + PENDING("pending"), + UNDEFINED("undefined"), + AMBIGUOUS("ambiguous"); private final String status; diff --git a/src/main/java/com/trivago/rta/json/pojo/Element.java b/src/main/java/com/trivago/rta/json/pojo/Element.java index f527de7c..d9e3a145 100644 --- a/src/main/java/com/trivago/rta/json/pojo/Element.java +++ b/src/main/java/com/trivago/rta/json/pojo/Element.java @@ -25,12 +25,12 @@ public class Element { private List before = new ArrayList<>(); private int line; - private String name; - private String description; - private String id; + private String name = ""; + private String description = ""; + private String id = ""; private List after = new ArrayList<>(); - private String type; - private String keyword; + private String type = ""; + private String keyword = ""; private List steps = new ArrayList<>(); private List tags = new ArrayList<>(); @@ -60,6 +60,10 @@ public void setLine(final int line) { this.line = line; } + public String getEncodedName(){ + return RenderingUtils.escapeHTML(getName()); + } + public String getName() { return name; } @@ -68,6 +72,10 @@ public void setName(final String name) { this.name = name; } + public String getEncodedDescription(){ + return RenderingUtils.escapeHTML(getDescription()); + } + public String getDescription() { return description; } diff --git a/src/main/java/com/trivago/rta/json/pojo/Embedding.java b/src/main/java/com/trivago/rta/json/pojo/Embedding.java index 9adfb678..6b340965 100644 --- a/src/main/java/com/trivago/rta/json/pojo/Embedding.java +++ b/src/main/java/com/trivago/rta/json/pojo/Embedding.java @@ -22,7 +22,7 @@ public class Embedding { private String data; @SerializedName("mime_type") - private String mimeType; + private String mimeType = "unknown"; private transient String filename; diff --git a/src/main/java/com/trivago/rta/json/pojo/Match.java b/src/main/java/com/trivago/rta/json/pojo/Match.java index fc96a695..20410707 100644 --- a/src/main/java/com/trivago/rta/json/pojo/Match.java +++ b/src/main/java/com/trivago/rta/json/pojo/Match.java @@ -20,7 +20,7 @@ import java.util.List; public class Match { - private String location; + private String location = ""; private List arguments = new ArrayList<>(); public String getLocation() { diff --git a/src/main/java/com/trivago/rta/json/pojo/Report.java b/src/main/java/com/trivago/rta/json/pojo/Report.java index f4d48a12..f85a8a05 100644 --- a/src/main/java/com/trivago/rta/json/pojo/Report.java +++ b/src/main/java/com/trivago/rta/json/pojo/Report.java @@ -16,7 +16,8 @@ package com.trivago.rta.json.pojo; -import java.time.Duration; +import com.trivago.rta.rendering.RenderingUtils; + import java.util.ArrayList; import java.util.List; @@ -45,6 +46,10 @@ public void setElements(final List elements) { this.elements = elements; } + public String getEncodedName() { + return RenderingUtils.escapeHTML(getName()); + } + public String getName() { return name; } @@ -53,6 +58,10 @@ public void setName(final String name) { this.name = name; } + public String getEncodedDescription() { + return RenderingUtils.escapeHTML(getDescription()); + } + public String getDescription() { return description; } diff --git a/src/main/java/com/trivago/rta/json/pojo/Result.java b/src/main/java/com/trivago/rta/json/pojo/Result.java index ef101122..3777a768 100644 --- a/src/main/java/com/trivago/rta/json/pojo/Result.java +++ b/src/main/java/com/trivago/rta/json/pojo/Result.java @@ -26,9 +26,7 @@ public class Result { private String status = Status.UNDEFINED.toString(); @SerializedName("error_message") - private String errorMessage; - - private transient String durationString; + private String errorMessage = ""; public long getDuration() { return duration; @@ -46,6 +44,10 @@ public String getStatus() { return status; } + public boolean hasErrorMessage() { + return !errorMessage.isEmpty(); + } + public String getErrorMessage() { return errorMessage; } @@ -72,7 +74,6 @@ public String toString() { "duration=" + duration + ", status='" + status + '\'' + ", errorMessage='" + errorMessage + '\'' + - ", durationString='" + durationString + '\'' + '}'; } } diff --git a/src/main/java/com/trivago/rta/json/pojo/ResultMatch.java b/src/main/java/com/trivago/rta/json/pojo/ResultMatch.java index c1a457e3..2c38ff4a 100644 --- a/src/main/java/com/trivago/rta/json/pojo/ResultMatch.java +++ b/src/main/java/com/trivago/rta/json/pojo/ResultMatch.java @@ -38,12 +38,12 @@ public void setMatch(final Match match) { this.match = match; } - public String getGlueMethodName(){ - return match != null ? match.getLocation() : ""; + public String getGlueMethodName() { + return getMatch().getLocation(); } public Status getStatus() { - return Status.fromString(result.getStatus()); + return Status.fromString(getResult().getStatus()); } public boolean isFailed() { @@ -55,7 +55,10 @@ public boolean isPassed() { } public boolean isSkipped() { - return getStatus() == Status.SKIPPED || getStatus() == Status.PENDING || getStatus() == Status.UNDEFINED; + return getStatus() == Status.SKIPPED || + getStatus() == Status.PENDING || + getStatus() == Status.UNDEFINED || + getStatus() == Status.AMBIGUOUS; } @Override diff --git a/src/main/java/com/trivago/rta/rendering/pages/pojos/CustomParameter.java b/src/main/java/com/trivago/rta/rendering/pages/pojos/CustomParameter.java index 47721755..15516969 100644 --- a/src/main/java/com/trivago/rta/rendering/pages/pojos/CustomParameter.java +++ b/src/main/java/com/trivago/rta/rendering/pages/pojos/CustomParameter.java @@ -16,7 +16,7 @@ public String getKey() { } public String getValue() { - return value; + return value != null ? value : ""; } public boolean isUrl() { diff --git a/src/main/resources/template/index.html b/src/main/resources/template/index.html index 8369582f..7bc5111d 100644 --- a/src/main/resources/template/index.html +++ b/src/main/resources/template/index.html @@ -47,12 +47,12 @@