Author: doogie
Date: Sun Feb 21 01:31:30 2010
New Revision: 912280
URL: http://svn.apache.org/viewvc?rev=912280&view=rev
Log:
BUG FIX: Fix parsing of currency, by using the correct subExpression,
instead of the entire parent expression.
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java?rev=912280&r1=912279&r2=912280&view=diff
==============================================================================
---
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
(original)
+++
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
Sun Feb 21 01:31:30 2010
@@ -214,7 +214,7 @@
if (escapedExpression) {
strElems.add(new ConstElem(expression.substring(start, end
+ 1)));
} else if (subExpression.contains("?currency(")) {
- strElems.add(new CurrElem(expression));
+ strElems.add(new CurrElem(subExpression));
} else if (subExpression.contains(openBracket)) {
strElems.add(new NestedVarElem(subExpression));
} else {
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java?rev=912280&r1=912279&r2=912280&view=diff
==============================================================================
---
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
(original)
+++
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/test/FlexibleStringExpanderTests.java
Sun Feb 21 01:31:30 2010
@@ -84,13 +84,13 @@
parserTest("currency", "${price?currency(usd)",
"${price?currency(usd)");
// CurrElem doesn't protected itself
//parserTest("currency", "${?currency(}", "${?currency(}");
- parserTest("currency", "${?currency()}", "${?currency()}");
+ parserTest("currency", "${?currency()}", "?currency()");
//parserTest("currency", "${?currency(usd}", "${?currency(usd}");
- parserTest("currency", "${?currency(usd)}", "${?currency(usd)}");
+ parserTest("currency", "${?currency(usd)}", "?currency(usd)");
//parserTest("currency", "${price?currency(}", "${price?currency(}");
- parserTest("currency", "${price?currency()}", "${price?currency()}");
+ parserTest("currency", "${price?currency()}", "price?currency()");
//parserTest("currency", "${price?currency(usd}",
"${price?currency(usd}");
- parserTest("currency", "${price?currency(usd)}",
"${price?currency(usd)}");
+ parserTest("currency", "${price?currency(usd)}",
"price?currency(usd)");
parserTest("currency", "a${price?currency(usd)}b",
"a${price?currency(usd)}b");
}
@@ -271,10 +271,10 @@
fseTest("just bad", "${foobar", testMap, "${foobar", false);
fseTest("constant and bad", "Hello${foobar", testMap, "Hello${foobar",
false);
fseTest("good and bad", "Hello ${var}${foobar", testMap, "Hello
World${foobar", false);
- //fseTest("currency(USD)", "The total is ${amount?currency(${usd})}.",
testMap, null, localeToTest, "The total is $1,234,567.89.", false);
- //fseTest("currency(USD): null", "The total is
${testMap.missing?currency(${usd})}.", testMap, null, localeToTest, "The total
is .", false);
- //fseTest("currency(USD): missing", "The total is
${noList[0]?currency(${usd})}.", testMap, null, localeToTest, "The total is .",
false);
- //fseTest("currency(USD): exception", "The total is
${throwException.value?currency(${usd})}.", testMap, null, localeToTest, "The
total is .", false);
+ fseTest("currency(USD)", "The total is ${amount?currency(${usd})}.",
testMap, null, localeToTest, "The total is $1,234,567.89.", false);
+ fseTest("currency(USD): null", "The total is
${testMap.missing?currency(${usd})}.", testMap, null, localeToTest, "The total
is .", false);
+ fseTest("currency(USD): missing", "The total is
${noList[0]?currency(${usd})}.", testMap, null, localeToTest, "The total is .",
false);
+ fseTest("currency(USD): exception", "The total is
${throwException.value?currency(${usd})}.", testMap, null, localeToTest, "The
total is .", false);
fseTest("null nested", "${${nullVar}}!", testMap, "!", false);
fseTest("bsh: script", "${bsh:return \"Hello \" + var + \"!\";}",
testMap, "Hello World!", false);
fseTest("bsh: null", "${bsh:return null;}!", testMap, "!", false);