Fix capitalizing
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1736021 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
index 089df0a..cc0350a 100644
--- a/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
+++ b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
@@ -939,7 +939,7 @@
if (flagC || flagL || flagU) {
Function<String, String> cnv;
if (flagC)
- cnv = s -> s.isEmpty() ? s : s.substring(0, 1).toUpperCase() + s.substring(1);
+ cnv = s -> s.isEmpty() ? s : s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase();
else if (flagL)
cnv = String::toLowerCase;
else
diff --git a/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java b/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
index 61459ab..e4477af 100644
--- a/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
+++ b/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
@@ -195,6 +195,28 @@
}
@Test
+ public void testParamFlag() throws Exception {
+ vars.clear();
+ vars.put("foo", "bar");
+ vars.put("bar", "baz");
+
+ assertEquals("bar", expand("${${foo}}"));
+ assertEquals("baz", expand("${(P)foo}"));
+ assertEquals("baz", expand("${(P)${foo}}"));
+ }
+
+ @Test
+ public void testCaseFlags() throws Exception {
+ vars.clear();
+ vars.put("foo", "bAr");
+
+ assertEquals("bAr", expand("${foo}"));
+ assertEquals("bar", expand("${(L)foo}"));
+ assertEquals("BAR", expand("${(U)${foo}}"));
+ assertEquals("Bar", expand("${(C)${foo}}"));
+ }
+
+ @Test
public void testSorting() throws Exception {
vars.clear();
vars.put("array", Arrays.asList("foo1", "foo02", "foo2", "fOo3", "Foo20", "foo23"));