Skip to content

Commit

Permalink
Fixed an issue in reporting that caused the error 'Index 1 out of bou…
Browse files Browse the repository at this point in the history
…nds for length 1
  • Loading branch information
wakaleo committed Jan 10, 2024
1 parent 385fead commit db1f955
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

public class TestTag implements Comparable<TestTag> {

public static final TestTag EMPTY_TAG = new TestTag("","");
public static final TestTag EMPTY_TAG = new TestTag("", "");
public static final String DEFAULT_TAG_TYPE = "tag";

private final String name;
Expand All @@ -27,7 +27,7 @@ public class TestTag implements Comparable<TestTag> {
private transient String normalisedType;

private TestTag(String name, String type) {
this(name,type, name);
this(name, type, name);
}

private TestTag(String name, String type, String displayName) {
Expand All @@ -47,7 +47,9 @@ public boolean isIssueTag() {
}

public String normalisedName() {
if (normalisedName == null) { normalisedName = normalised(name); }
if (normalisedName == null) {
normalisedName = normalised(name);
}
return normalisedName;
}

Expand All @@ -58,16 +60,20 @@ private String normalised(String name) {
}

private String normalised(String name, String type) {
return name.replaceAll("[\\s_-]"," ").toLowerCase() + type.replaceAll("[\\s_-]"," ").toLowerCase();
return name.replaceAll("[\\s_-]", " ").toLowerCase() + type.replaceAll("[\\s_-]", " ").toLowerCase();
}

public String normalisedType() {
if (normalisedType == null) { normalisedType = normalised(type); }
if (normalisedType == null) {
normalisedType = normalised(type);
}
return normalisedType;
}

public String getCompleteName() {
if (isEmpty(name) && isEmpty(type)) { return ""; }
if (isEmpty(name) && isEmpty(type)) {
return "";
}

return Joiner.on("_").join(normalisedType(), normalisedName());
}
Expand All @@ -88,6 +94,7 @@ public String getType() {
public String getShortName() {
return name.contains("/") ? name.substring(name.indexOf("/") + 1) : name;
}

public static TestTagBuilder withName(final String tagName) {
return new TestTagBuilder(tagName);
}
Expand Down Expand Up @@ -143,7 +150,7 @@ public static class TestTagBuilder {
public TestTagBuilder(String name) {
this.name = name;
}

public TestTag andType(String type) {
return new TestTag(name, withoutTagSymbol(type));
}
Expand All @@ -165,7 +172,7 @@ public boolean equals(Object o) {
}

public static final Set<String> SUPPORTED_PLATFORMS = ImmutableSet.of("windows", "mac", "linux");
public static final Set<String> SUPPORTED_BROWSERS = ImmutableSet.of("firefox", "chrome", "edge", "iexplorer", "safari", "htmlunit", "appium","iphone","android");
public static final Set<String> SUPPORTED_BROWSERS = ImmutableSet.of("firefox", "chrome", "edge", "iexplorer", "safari", "htmlunit", "appium", "iphone", "android");

public boolean isAPlatform() {
return "context".equalsIgnoreCase(type) && SUPPORTED_PLATFORMS.contains(name.toLowerCase());
Expand All @@ -178,9 +185,9 @@ public boolean isABrowser() {
public boolean isABrowserPlatformCombination() {
if (name.contains(",")) {
List<String> nameElements = Arrays.stream(name.split(",")).map(String::trim).collect(Collectors.toList());
String browser = nameElements.get(0);
String platform = nameElements.get(1);
return SUPPORTED_BROWSERS.contains(browser.toLowerCase()) && SUPPORTED_PLATFORMS.contains(platform.toLowerCase());
return ((nameElements.size() == 2)
&& SUPPORTED_BROWSERS.contains(nameElements.get(0).toLowerCase())
&& SUPPORTED_PLATFORMS.contains(nameElements.get(1)));
} else {
return false;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package net.thucydides.model.domain;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.stream.Stream;

import static org.assertj.core.api.Assertions.assertThat;

public class TestTagTest {

private static Stream<Arguments> browserPlatformTags() {
return Stream.of(
Arguments.of("color:red", false),
Arguments.of("red", false),
Arguments.of("red,", false),
Arguments.of("chrome", false),
Arguments.of("random,windows", false),
Arguments.of("chrome,random", false),
Arguments.of("chrome,windows", true)
);
}

@ParameterizedTest
@MethodSource("browserPlatformTags")
void testWithStringAndBoolean(String tag, boolean isABrowserPlatformTag) {
assertThat(TestTag.withValue(tag).isABrowserPlatformCombination()).isEqualTo(isABrowserPlatformTag);
}
}

0 comments on commit db1f955

Please sign in to comment.