Author: musachy
Date: Mon Mar  9 19:28:20 2009
New Revision: 751799

URL: http://svn.apache.org/viewvc?rev=751799&view=rev
Log:
WW-3029 Fix backward compatible problem in the Label tag

Added:
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-4.txt
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-5.txt
Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java
    
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
    
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-2.txt

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java?rev=751799&r1=751798&r2=751799&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Label.java
 Mon Mar  9 19:28:20 2009
@@ -84,9 +84,12 @@
         if (value != null) {
             addParameter("nameValue", findString(value));
         } else if (key != null) {
-            // get the label from a TextProvider (default value is the key)
-            String providedLabel = TextProviderHelper.getText(key, key, stack);
-            addParameter("nameValue", providedLabel);
+            Object nameValue = parameters.get("nameValue");
+            if (nameValue == null || nameValue.toString().length() == 0) {
+                // get the label from a TextProvider (default value is the key)
+                String providedLabel = TextProviderHelper.getText(key, key, 
stack);
+                addParameter("nameValue", providedLabel);
+            }
         } else if (name != null) {
             String expr = completeExpressionIfAltSyntax(name);
             addParameter("nameValue", findString(expr));

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java?rev=751799&r1=751798&r2=751799&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
 Mon Mar  9 19:28:20 2009
@@ -97,7 +97,7 @@
         tag.doStartTag();
         tag.doEndTag();
 
-        verify(LabelTest.class.getResource("Label-2.txt"));
+        verify(LabelTest.class.getResource("Label-5.txt"));
     }
 
     public void testGenericSimple() throws Exception {
@@ -110,7 +110,7 @@
         verifyGenericProperties(tag, "xhtml", null);
     }
 
-    public void testWithKey() throws Exception {
+    public void testWithKeyNoValueFromStack() throws Exception {
         TestAction testAction = (TestAction) action;
         final String key = "labelKey";
         final String value = "baz";
@@ -122,7 +122,7 @@
         tag.setPageContext(pageContext);
         tag.setLabel("mylabel");
         tag.setFor("for");
-        tag.setName("foo");
+        tag.setName("foo2");
         tag.setKey(key);
 
         tag.doStartTag();
@@ -131,4 +131,25 @@
         verify(LabelTest.class.getResource("Label-2.txt"));
     }
 
+     public void testWithKeyValueFromStack() throws Exception {
+        TestAction testAction = (TestAction) action;
+        final String key = "labelKey";
+        final String value = "baz";
+        testAction.setText(key, value);
+
+        testAction.setFoo("output");
+
+        LabelTag tag = new LabelTag();
+        tag.setPageContext(pageContext);
+        tag.setLabel("mylabel");
+        tag.setFor("for");
+        tag.setName("foo");
+        tag.setKey(key);
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(LabelTest.class.getResource("Label-4.txt"));
+    }
+
 }

Modified: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-2.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-2.txt?rev=751799&r1=751798&r2=751799&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-2.txt
 (original)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-2.txt
 Mon Mar  9 19:28:20 2009
@@ -1,4 +1,4 @@
 <tr>
-    <td class="tdLabel"><label for="foo" class="label">mylabel:</label></td>
-    <td><label id="foo" for="for">baz</label></td>
+    <td class="tdLabel"><label for="foo2" class="label">mylabel:</label></td>
+    <td><label id="foo2" for="for">baz</label></td>
 </tr>

Added: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-4.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-4.txt?rev=751799&view=auto
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-4.txt
 (added)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-4.txt
 Mon Mar  9 19:28:20 2009
@@ -0,0 +1,4 @@
+<tr>
+    <td class="tdLabel"><label for="foo" class="label">mylabel:</label></td>
+    <td><label id="foo" for="for">output</label></td>
+</tr>
\ No newline at end of file

Added: 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-5.txt
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-5.txt?rev=751799&view=auto
==============================================================================
--- 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-5.txt
 (added)
+++ 
struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/Label-5.txt
 Mon Mar  9 19:28:20 2009
@@ -0,0 +1,4 @@
+<tr>
+    <td class="tdLabel"><label for="foo" class="label">mylabel:</label></td>
+    <td><label id="foo" for="for">baz</label></td>
+</tr>
\ No newline at end of file


Reply via email to