From 4f189ca2db7b9895e0e5ea60f44742b5840feb05 Mon Sep 17 00:00:00 2001 From: YamStranger Date: Wed, 18 Nov 2015 10:45:15 +0200 Subject: [PATCH] 188_issue: new level of take screenshots configuration added --- .../net/thucydides/core/annotations/Screenshots.java | 1 + .../net/thucydides/core/model/ScreenshotPermission.java | 4 +++- .../java/net/thucydides/core/model/TakeScreenshots.java | 3 ++- .../model/WhenDecidingWhetherToTakeScreenshots.groovy | 9 +++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/serenity-core/src/main/java/net/thucydides/core/annotations/Screenshots.java b/serenity-core/src/main/java/net/thucydides/core/annotations/Screenshots.java index 75db32424a..716d7377e0 100644 --- a/serenity-core/src/main/java/net/thucydides/core/annotations/Screenshots.java +++ b/serenity-core/src/main/java/net/thucydides/core/annotations/Screenshots.java @@ -12,4 +12,5 @@ boolean beforeAndAfterEachStep() default true; boolean afterEachStep() default false; boolean forEachAction() default false; + boolean disabled() default false; } diff --git a/serenity-core/src/main/java/net/thucydides/core/model/ScreenshotPermission.java b/serenity-core/src/main/java/net/thucydides/core/model/ScreenshotPermission.java index eafdf4dd05..a153e72637 100644 --- a/serenity-core/src/main/java/net/thucydides/core/model/ScreenshotPermission.java +++ b/serenity-core/src/main/java/net/thucydides/core/model/ScreenshotPermission.java @@ -52,7 +52,9 @@ private Optional methodOverride() { } private TakeScreenshots screenshotLevelFrom(Screenshots screenshots) { - if (screenshots.onlyOnFailures()) { + if (screenshots.disabled()) { + return TakeScreenshots.DISABLED; + } else if (screenshots.onlyOnFailures()) { return TakeScreenshots.FOR_FAILURES; } else if (screenshots.forEachAction()) { return TakeScreenshots.FOR_EACH_ACTION; diff --git a/serenity-core/src/main/java/net/thucydides/core/model/TakeScreenshots.java b/serenity-core/src/main/java/net/thucydides/core/model/TakeScreenshots.java index 1b0da8fd60..61531e0853 100644 --- a/serenity-core/src/main/java/net/thucydides/core/model/TakeScreenshots.java +++ b/serenity-core/src/main/java/net/thucydides/core/model/TakeScreenshots.java @@ -4,5 +4,6 @@ public enum TakeScreenshots { FOR_EACH_ACTION, BEFORE_AND_AFTER_EACH_STEP, AFTER_EACH_STEP, - FOR_FAILURES + FOR_FAILURES, + DISABLED } diff --git a/serenity-core/src/test/groovy/net/thucydides/core/model/WhenDecidingWhetherToTakeScreenshots.groovy b/serenity-core/src/test/groovy/net/thucydides/core/model/WhenDecidingWhetherToTakeScreenshots.groovy index c359591d40..3aa08072b7 100644 --- a/serenity-core/src/test/groovy/net/thucydides/core/model/WhenDecidingWhetherToTakeScreenshots.groovy +++ b/serenity-core/src/test/groovy/net/thucydides/core/model/WhenDecidingWhetherToTakeScreenshots.groovy @@ -183,4 +183,13 @@ class WhenDecidingWhetherToTakeScreenshots extends Specification { assert permissions.areAllowed(TakeScreenshots.FOR_FAILURES) assert !permissions.areAllowed(TakeScreenshots.FOR_EACH_ACTION) } + + @Screenshots(disabled = true) + public void shouldNotTakeScreenshots(Configuration configuration) { + ScreenshotPermission permissions = new ScreenshotPermission(configuration) + assert !permissions.areAllowed(TakeScreenshots.FOR_EACH_ACTION) + assert !permissions.areAllowed(TakeScreenshots.BEFORE_AND_AFTER_EACH_STEP) + assert !permissions.areAllowed(TakeScreenshots.AFTER_EACH_STEP) + assert !permissions.areAllowed(TakeScreenshots.FOR_FAILURES) + } }