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");