From 54ad707351cb37da798725bfe085dced24aca0b1 Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Wed, 18 Jul 2018 21:55:47 +0200 Subject: [PATCH] Cucumber JVM: ignore comment and tags when calculating feature's name IDEA-191020 Run tool for cucumber doen't show feature description when using an alternative language and CucumberJvm2SMFormatter --- .../java/run/CucumberJvmSMFormatterUtil.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/plugins/cucumber-jvm-formatter/src/org/jetbrains/plugins/cucumber/java/run/CucumberJvmSMFormatterUtil.java b/plugins/cucumber-jvm-formatter/src/org/jetbrains/plugins/cucumber/java/run/CucumberJvmSMFormatterUtil.java index 8d8443102289..a3c7fb914100 100644 --- a/plugins/cucumber-jvm-formatter/src/org/jetbrains/plugins/cucumber/java/run/CucumberJvmSMFormatterUtil.java +++ b/plugins/cucumber-jvm-formatter/src/org/jetbrains/plugins/cucumber/java/run/CucumberJvmSMFormatterUtil.java @@ -47,9 +47,10 @@ public class CucumberJvmSMFormatterUtil { } /** - * Gets feature title from @param featureHeader + * Gets feature title from @param featureHeader. Skips comments and tags * From code: *
{@code
+   *     #language: en
    *     @wip
    *     Feature: super puper
    *       my feature
@@ -60,22 +61,19 @@ public class CucumberJvmSMFormatterUtil {
    * }
returned */ public static String getFeatureName(String featureHeader) { - int i = featureHeader.indexOf(":"); - if (i < 0) { - return featureHeader; - } + String[] lines = featureHeader.split("\n"); + for (String line : lines) { + line = line.trim(); - int start = i; - while (start >= 0 && !Character.isWhitespace(featureHeader.charAt(start))) { - start--; + if (line.length() == 0 || line.charAt(0) == '#' || line.charAt(0) == '@') { + continue; + } + int i = featureHeader.indexOf(":"); + if (i < 0) { + continue; + } + return line; } - start++; - - int end = i; - while (end < featureHeader.length() && featureHeader.charAt(end) != '\n') { - end++; - } - - return featureHeader.substring(start, end); + return featureHeader; } }