Author: gseitz
Date: Sat Nov  3 18:43:39 2007
New Revision: 591721

URL: http://svn.apache.org/viewvc?rev=591721&view=rev
Log:
WICKET-1015:
PropertyVariableInterpolator#getString returns a string with escaped single 
quotes
added tests for PropertyVariableInterpolator
enhanced test for StringResourceModel

Added:
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java
   (with props)
Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolator.java
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.properties

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolator.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolator.java?rev=591721&r1=591720&r2=591721&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolator.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolator.java
 Sat Nov  3 18:43:39 2007
@@ -17,6 +17,7 @@
 package org.apache.wicket.util.string.interpolator;
 
 import org.apache.wicket.util.lang.PropertyResolver;
+import org.apache.wicket.util.string.Strings;
 
 /**
  * Interpolates values into <code>String</code>s that are produced by 
interpreting property
@@ -84,6 +85,6 @@
        protected String getValue(final String variableName)
        {
                Object value = PropertyResolver.getValue(variableName, model);
-               return (value != null) ? value.toString() : null;
+               return value != null ? Strings.replaceAll(value.toString(), 
"'", "''").toString() : null;
        }
 }

Modified: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java?rev=591721&r1=591720&r2=591721&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.java
 Sat Nov  3 18:43:39 2007
@@ -111,7 +111,7 @@
                Assert.assertEquals("Text should be as expected", "It's sunny, 
wear sunscreen", model
                                .getString());
                ws.setCurrentStatus("raining");
-               Assert.assertEquals("Text should be as expected", "It's 
raining, take an umberella", model
+               Assert.assertEquals("Text should be as expected", "It's 
raining, take an umbrella", model
                                .getString());
        }
 
@@ -122,11 +122,17 @@
        public void testGetPropertySubstitutedResource()
        {
                StringResourceModel model = new 
StringResourceModel("weather.message", page, wsModel);
-               Assert.assertEquals("Text should be as expected",
-                               "Weather station reports that the temperature 
is 25.7 \u00B0C", model.getString());
+               Assert
+                               .assertEquals(
+                                               "Text should be as expected",
+                                               "Weather station \"Europe''s 
main weather station\" reports that the temperature is 25.7 \u00B0C",
+                                               model.getString());
                ws.setCurrentTemperature(11.5);
-               Assert.assertEquals("Text should be as expected",
-                               "Weather station reports that the temperature 
is 11.5 \u00B0C", model.getString());
+               Assert
+                               .assertEquals(
+                                               "Text should be as expected",
+                                               "Weather station \"Europe''s 
main weather station\" reports that the temperature is 11.5 \u00B0C",
+                                               model.getString());
        }
 
        /**
@@ -138,7 +144,7 @@
                Calendar cal = Calendar.getInstance();
                cal.set(2004, Calendar.OCTOBER, 15, 13, 21);
                MessageFormat format = new MessageFormat(
-                               "The report for {0,date,medium}, shows the 
temparature as {2,number,###.##} {3} and the weather to be {1}",
+                               "The report for {0,date,medium}, shows the 
temperature as {2,number,###.##} {3} and the weather to be {1}",
                                page.getLocale());
                StringResourceModel model = new 
StringResourceModel("weather.detail", page, wsModel,
                                new Object[] { cal.getTime(), 
"${currentStatus}",
@@ -242,6 +248,7 @@
        {
                private static final long serialVersionUID = 1L;
 
+               private final String name = "Europe's main weather station";
 
                private String currentStatus = "sunny";
 
@@ -285,6 +292,14 @@
                public String getUnits()
                {
                        return "\u00B0C";
+               }
+
+               /**
+                * @return name
+                */
+               public String getName()
+               {
+                       return name;
                }
        }
 

Modified: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.properties
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.properties?rev=591721&r1=591720&r2=591721&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.properties
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/model/StringResourceModelTest.properties
 Sat Nov  3 18:43:39 2007
@@ -18,6 +18,6 @@
 #
 simple.text=Simple text
 weather.sunny=It's sunny, wear sunscreen
-weather.raining=It's raining, take an umberella
-weather.message=Weather station reports that the temperature is 
${currentTemperature} ${units}
-weather.detail=The report for {0,date,medium}, shows the temparature as 
{2,number,###.##} {3} and the weather to be {1}
+weather.raining=It's raining, take an umbrella
+weather.message=Weather station "${name}" reports that the temperature is 
${currentTemperature} ${units}
+weather.detail=The report for {0,date,medium}, shows the temperature as 
{2,number,###.##} {3} and the weather to be {1}
\ No newline at end of file

Added: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java?rev=591721&view=auto
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java
 (added)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java
 Sat Nov  3 18:43:39 2007
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.string.interpolator;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests [EMAIL PROTECTED] PropertyVariableInterpolator}
+ * 
+ * @author Gerolf Seitz
+ */
+public class PropertyVariableInterpolatorTest extends TestCase
+{
+       /**
+        * 
+        */
+       public void testWithValue()
+       {
+               TestClass object = new TestClass("value");
+               String result = 
PropertyVariableInterpolator.interpolate("${key}", object);
+               assertEquals("value", result.toString());
+       }
+
+       /**
+        * 
+        */
+       public void testWithoutValue()
+       {
+               String result = 
PropertyVariableInterpolator.interpolate("${key}", null);
+               assertEquals("${key}", result.toString());
+       }
+
+       /**
+        * 
+        */
+       public void testWithValueWithSingleQuotes()
+       {
+               TestClass object = new TestClass("'value '' with multiple' 
quotes'");
+               String result = 
PropertyVariableInterpolator.interpolate("${key}", object);
+               assertEquals("''value '''' with multiple'' quotes''", result);
+       }
+
+       private static class TestClass
+       {
+               private final String key;
+
+               public TestClass(String key)
+               {
+                       this.key = key;
+               }
+       }
+}

Propchange: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/interpolator/PropertyVariableInterpolatorTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to