Handle its conditions with spaces
This change allows its-base to process event-type string containing
spaces.
Bug: issue 4359
Change-Id: I3e035f6cd36294d6af9c84e34c22a0cb38842047
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/Condition.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/Condition.java
index 13f6cb4..bf9f9df 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/Condition.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/Condition.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.its.base.workflow;
+import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.gerrit.common.Nullable;
@@ -66,7 +67,8 @@
if (values == null) {
modifyableValues = Collections.emptySet();
} else {
- List<String> valueList = Lists.newArrayList(values.split(","));
+ List<String> valueList = Lists.newArrayList(
+ Splitter.on(',').trimResults().split(values));
if (!valueList.isEmpty() && "!".equals(valueList.get(0))) {
modifyableNegated = true;
valueList.remove(0);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ConditionTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ConditionTest.java
index f6cd47f..5f58dcc 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ConditionTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ConditionTest.java
@@ -123,6 +123,26 @@
assertTrue("isMetBy gave false", condition.isMetBy(properties));
}
+ public void testIsMetByOredMultipleWithSpaces() {
+ Condition condition = createCondition("testKey", "value1, value2, value3");
+
+ Property property1 = createMock(Property.class);
+ expect(property1.getKey()).andReturn("testKey").anyTimes();
+ expect(property1.getValue()).andReturn("value1").anyTimes();
+
+ Property property2 = createMock(Property.class);
+ expect(property2.getKey()).andReturn("testKey").anyTimes();
+ expect(property2.getValue()).andReturn("value3").anyTimes();
+
+ Collection<Property> properties = Lists.newArrayListWithCapacity(2);
+ properties.add(property1);
+ properties.add(property2);
+
+ replayMocks();
+
+ assertTrue("isMetBy gave false", condition.isMetBy(properties));
+ }
+
public void testIsMetByOredAll() {
Condition condition = createCondition("testKey", "value1,value2,value3");