Title: [waffle-scm] [219] trunk/extensions/taglib-acceptance/src/main/webapp: fixing bugs with null values

Diff

Modified: trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/form/BasicSelectTag.java (218 => 219)

--- trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/form/BasicSelectTag.java	2007-07-03 13:45:01 UTC (rev 218)
+++ trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/form/BasicSelectTag.java	2007-07-03 13:56:46 UTC (rev 219)
@@ -92,12 +92,16 @@
         Object itemKey = entry.getKey();
         Object value = entry.getValue();
         boolean isSelected;
-        if (!(itemKey instanceof Number)) {
+        if(itemKey == null) {
+            isSelected = (selected == null);
+        } else if (!(itemKey instanceof Number)) {
             isSelected = itemKey.equals(selected);
+        } else if(selected == null) {
+            isSelected = (itemKey == null);
         } else {
             isSelected = ((Number) itemKey).longValue() == ((Number)selected).longValue();
         }
-        addItem(out, itemKey.toString(), isSelected);
+        addItem(out, itemKey == null ? "" : itemKey.toString(), isSelected);
         pageContext.setAttribute(getIterationVarKey(), value);
     }
 

Modified: trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/writer/ComboBoxTypeWriter.java (218 => 219)

--- trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/writer/ComboBoxTypeWriter.java	2007-07-03 13:45:01 UTC (rev 218)
+++ trunk/extensions/taglib/src/main/java/org/codehaus/waffle/taglib/writer/ComboBoxTypeWriter.java	2007-07-03 13:56:46 UTC (rev 219)
@@ -2,39 +2,37 @@
 
 import org.codehaus.waffle.taglib.form.Attributes;
 
-public class ComboBoxTypeWriter implements TypeWriter{
+public class ComboBoxTypeWriter implements TypeWriter {
 
     public String getOpeningItem(String key, boolean selected) {
-	String output = "<option value=\"" + key + "\"";
-	if (selected) {
-	    output += " selected";
-	}
-	output += ">";
-	return output;
+        String output = "<option value=\"" + key + "\"";
+        if (selected) {
+            output += " selected";
+        }
+        output += ">";
+        return output;
     }
 
     public String getEmptyTag() {
-	return "";
+        return "";
     }
 
     public String getOpeningTag(Attributes attributes) {
-	return "<select " + attributes.asString() + ">";
+        return "<select " + attributes.asString() + ">";
     }
 
     public String getClosingTag(boolean first) {
-	String output = "";
-	if (!first) {
-	    output += "</option>";
-	}
-	output += "</select>";
-	
-	return output;
+        String output = "";
+        if (!first) {
+            output += "</option>";
+        }
+        output += "</select>";
+
+        return output;
     }
 
     public String getClosingItem() {
-	return "</option>";
+        return "</option>";
     }
-    
-    
 
 }

Modified: trunk/extensions/taglib-acceptance/src/main/webapp/select.jsp (218 => 219)

--- trunk/extensions/taglib-acceptance/src/main/webapp/select.jsp	2007-07-03 13:45:01 UTC (rev 218)
+++ trunk/extensions/taglib-acceptance/src/main/webapp/select.jsp	2007-07-03 13:56:46 UTC (rev 219)
@@ -15,6 +15,7 @@
 	lista.add(new Product(1,"trabant"));
 	lista.add(new Product(2,"wartburg"));
 	lista.add(new Product(3,"skoda"));
+	lista.add(new Product(null, "nasty"));
 	pageContext.setAttribute("lista",lista);
 %>
 
@@ -33,6 +34,14 @@
 <br>
 <br>
 
+test selected=null <br>
+<w:select var="produto" name="produto.id.selected.null" items="${lista}" value="id" selected="${null}">
+        ${produto.name}
+</w:select>
+
+<br>
+<br>
+
 w:select type="combo": <br>
 <w:select var="produto" name="produto.id" items="${lista}" value="id" selected="${2}" addEmpty="true">
         ${produto.name}

Modified: trunk/extensions/taglib-acceptance/src/test/java/org/codehaus/waffle/taglib/acceptance/SelectTest.java (218 => 219)

--- trunk/extensions/taglib-acceptance/src/test/java/org/codehaus/waffle/taglib/acceptance/SelectTest.java	2007-07-03 13:45:01 UTC (rev 218)
+++ trunk/extensions/taglib-acceptance/src/test/java/org/codehaus/waffle/taglib/acceptance/SelectTest.java	2007-07-03 13:56:46 UTC (rev 219)
@@ -15,4 +15,9 @@
 		checkForVerificationErrors();
 	}
 
+    public void testAcceptsNullAsSelectedValue() {
+        open("select.jsp");
+        assertEquals("", selenium.getSelectedId("produto.id.selected.null"));
+    }
+
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to