Author: haint
Date: 2011-11-30 23:43:30 -0500 (Wed, 30 Nov 2011)
New Revision: 8177
Added:
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/TestBindingInputSet.java
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/UIMockInputSet.java
Log:
GTNPORTAL-2309 MandatoryValidator is not triggered when UIFormStringInput is readonly
Added:
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/TestBindingInputSet.java
===================================================================
---
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/TestBindingInputSet.java
(rev 0)
+++
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/TestBindingInputSet.java 2011-12-01
04:43:30 UTC (rev 8177)
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2011 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.exoplatform.webui.binding;
+
+import junit.framework.TestCase;
+
+import org.exoplatform.webui.binding.UIMockInputSet.MockModel;
+import org.exoplatform.webui.form.UIFormStringInput;
+
+/**
+ * @author <a href="mailto:haithanh0809@gmail.com">Hai Thanh
Nguyen</a>
+ * @version $Id$
+ *
+ */
+public class TestBindingInputSet extends TestCase
+{
+ public void testBindingWithReadonly()
+ {
+ try
+ {
+ UIMockInputSet input = new UIMockInputSet();
+ MockModel model = new MockModel();
+ assertEquals(((UIFormStringInput)
input.getChildById("value1")).getValue(), "value1");
+ assertEquals(((UIFormStringInput)
input.getChildById("value1")).isReadOnly(), false);
+
+ input.binding(model);
+ assertEquals(model.getValue1(), "value1");
+ assertEquals(model.getValue2(), "value2");
+ assertEquals(model.getValue3(), "value3");
+
+ input.setFieldValue("value1", "value1-0");
+
+ input.setFieldValue("value2", "value2-0");
+ input.setReadonlyForField("value2", true);
+
+ input.setFieldValue("value3", "value3-0");
+ input.setDisableForField("value3", true);
+
+ assertEquals(((UIFormStringInput)
input.getChildById("value1")).getValue(), "value1-0");
+ assertEquals(((UIFormStringInput)
input.getChildById("value2")).getValue(), "value2-0");
+ assertEquals(((UIFormStringInput)
input.getChildById("value3")).getValue(), "value3-0");
+
+ model = new MockModel();
+ input.binding(model);
+
+ assertEquals(model.getValue1(), "value1-0");
+ assertNull(model.getValue2());
+ assertNull(model.getValue3());
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+}
Added:
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/UIMockInputSet.java
===================================================================
---
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/UIMockInputSet.java
(rev 0)
+++
portal/trunk/webui/core/src/test/java/org/exoplatform/webui/binding/UIMockInputSet.java 2011-12-01
04:43:30 UTC (rev 8177)
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2011 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.exoplatform.webui.binding;
+
+import java.io.Serializable;
+
+import org.exoplatform.services.organization.User;
+import org.exoplatform.webui.form.UIFormInputSet;
+import org.exoplatform.webui.form.UIFormStringInput;
+import org.exoplatform.webui.form.validator.MandatoryValidator;
+
+/**
+ * @author <a href="mailto:haithanh0809@gmail.com">Hai Thanh
Nguyen</a>
+ * @version $Id$
+ *
+ */
+public class UIMockInputSet extends UIFormInputSet
+{
+ public UIMockInputSet() throws Exception
+ {
+ super("UIMockInputSet");
+ addUIFormInput(new UIFormStringInput("value1", "value1",
"value1"));
+ addUIFormInput(new UIFormStringInput("value2", "value2",
"value2"));
+ addUIFormInput(new UIFormStringInput("value3", "value3",
"value3"));
+ }
+
+ public void setFieldValue(String fieldName, String value)
+ {
+ ((UIFormStringInput) getChildById(fieldName)).setValue(value);
+ }
+
+ public void setReadonlyForField(String fieldName, boolean readonly)
+ {
+ ((UIFormStringInput) getChildById(fieldName)).setReadOnly(readonly);
+ }
+
+ public void setDisableForField(String fieldName, boolean disabled)
+ {
+ ((UIFormStringInput) getChildById(fieldName)).setDisabled(disabled);
+ }
+
+ public void binding(MockModel obj) throws Exception
+ {
+ if (obj == null)
+ {
+ return;
+ }
+ invokeSetBindingField(obj);
+ }
+
+ public static class MockModel implements Serializable
+ {
+
+ private static final long serialVersionUID = 1L;
+
+ private String value1;
+
+ private String value2;
+
+ private String value3;
+
+ public String getValue1()
+ {
+ return value1;
+ }
+
+ public void setValue1(String value1)
+ {
+ this.value1 = value1;
+ }
+
+ public String getValue2()
+ {
+ return value2;
+ }
+
+ public void setValue2(String value2)
+ {
+ this.value2 = value2;
+ }
+
+ public String getValue3()
+ {
+ return value3;
+ }
+
+ public void setValue3(String value3)
+ {
+ this.value3 = value3;
+ }
+ }
+}