You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by gs...@apache.org on 2007/11/04 02:43:40 UTC

svn commit: r591721 - in /wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/util/string/interpolator/ test/java/org/apache/wicket/model/ test/java/org/apache/wicket/util/string/interpolator/

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 {@link 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