You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by jo...@apache.org on 2009/02/28 01:27:23 UTC
svn commit: r748762 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/variables/Substitutions.java
test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java
Author: johnh
Date: Sat Feb 28 00:27:22 2009
New Revision: 748762
URL: http://svn.apache.org/viewvc?rev=748762&view=rev
Log:
Fix for hangman substitution accommodating an odd number of underbars preceding a variable expansion.
Closes issue SHINDIG-956.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/variables/Substitutions.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/variables/Substitutions.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/variables/Substitutions.java?rev=748762&r1=748761&r2=748762&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/variables/Substitutions.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/variables/Substitutions.java Sat Feb 28 00:27:22 2009
@@ -128,9 +128,12 @@
}
if (replacement == null) {
- // Keep it.
- output.append(pattern);
- lastPosition = next;
+ // Just append the first underbar of the __ prefix. The substitution
+ // selection algorithm will move on to the next underbar, which itself
+ // might be a __ prefix suitable for substitution, ensuring proper
+ // accommodation of cases such as ___MODULE_ID__.
+ output.append('_');
+ lastPosition = i + 1;
} else {
lastPosition = next + 2;
if (isMessage && !isNested) {
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java?rev=748762&r1=748761&r2=748762&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/variables/SubstitutionsTest.java Sat Feb 28 00:27:22 2009
@@ -91,6 +91,24 @@
assertEquals("Hello__________ten__________World____", subst.substituteString(msg));
}
+ public void testMessageId() throws Exception {
+ String msg = "Hello, __MODULE_ID__!";
+ subst.addSubstitution(Type.MODULE, "ID", "123");
+ assertEquals("Hello, 123!", subst.substituteString(msg));
+ }
+
+ public void testOddNumberOfPrecedingUnderscores() throws Exception {
+ String msg = "<div id='div___MODULE_ID__'/>";
+ subst.addSubstitution(Type.MODULE, "ID", "123");
+ assertEquals("<div id='div_123'/>", subst.substituteString(msg));
+ }
+
+ public void testOddUnderscoresWithInvalidSubstFollowedByValidSubst() throws Exception {
+ String msg = "<div id='div___HI_THERE__MODULE_ID___'/>";
+ subst.addSubstitution(Type.MODULE, "ID", "123");
+ assertEquals("<div id='div___HI_THERE123_'/>", subst.substituteString(msg));
+ }
+
public void loadTest() throws Exception {
String msg
= "Random text and __UP_hello__, amongst other words __MSG_world__ stuff __weeeeee";