You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by bc...@apache.org on 2010/08/10 20:40:28 UTC

svn commit: r984158 - in /click/trunk/click/framework/test/org/apache/click/control: ButtonTest.java CheckboxTest.java RadioGroupTest.java RadioTest.java SubmitTest.java TextAreaTest.java TextFieldTest.java

Author: bckfnn
Date: Tue Aug 10 18:40:28 2010
New Revision: 984158

URL: http://svn.apache.org/viewvc?rev=984158&view=rev
Log:
improve test code coverage.

Added:
    click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java   (with props)
    click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java   (with props)
    click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java   (with props)
Modified:
    click/trunk/click/framework/test/org/apache/click/control/CheckboxTest.java
    click/trunk/click/framework/test/org/apache/click/control/RadioTest.java
    click/trunk/click/framework/test/org/apache/click/control/TextAreaTest.java
    click/trunk/click/framework/test/org/apache/click/control/TextFieldTest.java

Added: click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java?rev=984158&view=auto
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java (added)
+++ click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java Tue Aug 10 18:40:28 2010
@@ -0,0 +1,150 @@
+/*
+ * 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.click.control;
+
+import junit.framework.TestCase;
+
+import org.apache.click.ActionListener;
+import org.apache.click.Control;
+import org.apache.click.MockContext;
+import org.apache.click.servlet.MockRequest;
+
+/**
+ * Test Button behavior.
+ */
+public class ButtonTest extends TestCase {
+    /**
+     * Test Button onProcess behavior.
+     */
+    public void testOnProcess() {
+        MockContext context = MockContext.initContext();
+        MockRequest request = context.getMockRequest();
+        
+        Button button = new Button("button");
+        assertEquals("button", button.getName());
+        
+        assertTrue(button.onProcess());
+        
+        request.setParameter("button", "true");
+        assertTrue(button.onProcess());
+        
+        final boolean check[] = new boolean[1];
+        button.setActionListener(new ActionListener() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public boolean onAction(Control source) {
+                check[0] = true;
+                return false;
+            }
+        });
+
+        // No request param -> no action listener executed
+        request.removeParameter("button");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertFalse(check[0]);
+        
+        request.setParameter("button", "true");
+
+        // Not an ajax request -> no action listener executed
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertFalse(check[0]);
+
+        // ajax request, but no request param -> no action listener executed
+        request.removeParameter("button");
+        request.setParameter("X-Requested-With", "true");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertFalse(check[0]);
+
+        // Ajax request & request param -> call the onAction.
+        request.setParameter("button", "true");
+        request.setParameter("X-Requested-With", "true");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertTrue(check[0]);
+        
+       
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertFalse(button.isDisabled());
+
+        request.removeParameter("button");
+        
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertTrue(button.isDisabled());
+        
+        request.removeParameter("button");
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+    }
+    
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        Button button = new Button();
+        assertNull(button.getName());
+        
+        button = new Button("button", "label");
+        assertEquals("label", button.getLabel());
+    }
+        
+    /**
+     * Coverage test of onClick.
+     */
+    public void testOnClick() {
+        MockContext.initContext();
+        
+        Button button = new Button("button");
+        assertNull(button.getOnClick());
+
+        button.setOnClick("javascript:return false;");
+        assertEquals("javascript:return false;", button.getOnClick());
+    }
+    
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        Button button = new Button("button");
+        button.setTabIndex(5);
+
+        assertTrue(button.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        Button button = new Button("button");
+        button.setDisabled(true);
+        System.out.println(button.toString());
+        assertTrue(button.toString().contains("disabled=\"disabled\""));
+    }
+}

Propchange: click/trunk/click/framework/test/org/apache/click/control/ButtonTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: click/trunk/click/framework/test/org/apache/click/control/CheckboxTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/CheckboxTest.java?rev=984158&r1=984157&r2=984158&view=diff
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/CheckboxTest.java (original)
+++ click/trunk/click/framework/test/org/apache/click/control/CheckboxTest.java Tue Aug 10 18:40:28 2010
@@ -20,6 +20,7 @@ package org.apache.click.control;
 
 import junit.framework.TestCase;
 import org.apache.click.MockContext;
+import org.apache.click.servlet.MockRequest;
 import org.apache.commons.lang.StringUtils;
 
 /**
@@ -46,4 +47,159 @@ public class CheckboxTest extends TestCa
         // Check that the value <script> is not rendered
         assertTrue(checkbox.toString().indexOf(value) < 0);
     }
+    
+    /**
+     * Test TextField onProcess behavior.
+     */
+    public void testOnProcess() {
+        MockContext context = MockContext.initContext();
+        MockRequest request = context.getMockRequest();
+        
+        Checkbox checkbox = new Checkbox("checkbox");
+        assertEquals("checkbox", checkbox.getName());
+        
+        request.setParameter("checkbox", "");
+        
+        assertTrue(checkbox.onProcess());
+        assertTrue(checkbox.isValid());
+        assertEquals("true", checkbox.getValue());
+        assertEquals(Boolean.TRUE, checkbox.getValueObject());
+        
+        request.setParameter("checkbox", "true");
+        
+        assertTrue(checkbox.onProcess());
+        assertTrue(checkbox.isValid());
+        assertEquals("true", checkbox.getValue());
+        assertEquals(Boolean.TRUE, checkbox.getValueObject());
+        
+        checkbox.setRequired(true);
+        request.removeParameter("checkbox");
+        
+        assertTrue(checkbox.onProcess());
+        assertFalse(checkbox.isValid());
+        assertEquals("false", checkbox.getValue());
+        assertEquals(Boolean.FALSE, checkbox.getValueObject());
+        assertTrue(checkbox.toString().contains("class=\"error\""));
+        
+        request.setParameter("checkbox", "true");
+
+        assertTrue(checkbox.onProcess());
+        assertTrue(checkbox.isValid());
+        assertEquals("true", checkbox.getValue());
+        assertEquals(Boolean.TRUE, checkbox.getValueObject());
+        
+        request.setParameter("checkbox", "true");
+
+        checkbox.setDisabled(true);
+        assertTrue(checkbox.onProcess());
+        assertTrue(checkbox.isValid());
+        assertFalse(checkbox.isDisabled());
+    }
+    
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        Checkbox field = new Checkbox("field", true);
+        assertTrue(field.isRequired());
+        
+        field = new Checkbox("field", "label");
+        assertEquals("label", field.getLabel());
+        
+        field = new Checkbox();
+        assertNull(field.getName());
+    }
+    
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        field.setTabIndex(5);
+
+        assertTrue(field.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        field.setDisabled(true);
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+    }
+
+    /**
+     * Coverage test of readonly property.
+     */
+    public void testReadonly() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        field.setReadonly(true);
+
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+        
+        field = new Checkbox("field");
+        field.setReadonly(true);
+        field.setChecked(true);
+
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+        assertTrue(field.toString().contains("<input type=\"hidden\""));
+
+    }
+
+    /**
+     * Coverage test of help property.
+     */
+    public void testHelp() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        field.setHelp("help");
+
+        assertTrue(field.toString().contains("help"));
+    }
+
+    /**
+     * Coverage test of validation javascript.
+     */
+    public void testValidationJS() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        assertNull(field.getValidationJavaScript());
+        
+        field = new Checkbox("field");
+        field.setRequired(true);
+
+        assertTrue(field.getValidationJavaScript().startsWith("function validate_field()"));
+    }
+    
+    public void testValue() {
+        MockContext.initContext();
+        
+        Checkbox field = new Checkbox("field");
+        field.setValue("xxx");
+        assertFalse(field.isChecked());
+        
+        field.setValue("true");
+        assertTrue(field.isChecked());
+        field.setValue("false");
+        assertFalse(field.isChecked());
+        
+        field.setChecked(false);
+        
+        field.setValueObject("xxx");
+        assertFalse(field.isChecked());
+        field.setValueObject(null);
+        assertFalse(field.isChecked());
+
+        field.setValueObject(true);
+        assertTrue(field.isChecked());
+    }
 }

Added: click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java?rev=984158&view=auto
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java (added)
+++ click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java Tue Aug 10 18:40:28 2010
@@ -0,0 +1,177 @@
+/*
+ * 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.click.control;
+
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.apache.click.MockContext;
+
+/**
+ * Test Radio behavior.
+ */
+public class RadioGroupTest extends TestCase {
+
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        MockContext.initContext();
+
+        RadioGroup group = new RadioGroup("group");
+        assertEquals("group", group.getName());
+        assertFalse(group.isRequired());
+
+        group = new RadioGroup("group", true);
+        assertEquals("group", group.getName());
+        assertTrue(group.isRequired());
+
+        group = new RadioGroup("group", "label");
+        assertEquals("group", group.getName());
+        assertEquals("label", group.getLabel());
+
+        group = new RadioGroup("group", "label", true);
+        assertEquals("group", group.getName());
+        assertEquals("label", group.getLabel());
+        assertTrue(group.isRequired());
+
+        group = new RadioGroup();
+        assertNull(group.getName());
+        assertEquals("", group.getLabel());
+        assertFalse(group.isRequired());
+    }
+    
+    /**
+     * Coverage test of add(Radio).
+     */
+    public void testAdd() {
+        MockContext.initContext();
+        
+        RadioGroup group = new RadioGroup("group");
+        Radio r1 = new Radio("val1");
+        Radio r2 = new Radio("val2");
+        group.add(r1);
+        group.add(r2);
+        
+        assertSame(group, r1.getParent());
+        assertSame(group, r2.getParent());
+        
+        assertTrue(group.getRadioList().contains(r1));
+        assertTrue(group.getRadioList().contains(r2));
+    }
+
+    /**
+     * Coverage test of addAll(Collection<Radio>).
+     */
+
+    public void testAddAll() {
+        MockContext.initContext();
+        
+        RadioGroup group = new RadioGroup("group");
+        
+        Radio r1 = new Radio("val1");
+        Radio r2 = new Radio("val2");
+
+        group.addAll(Arrays.asList(r1, r2));
+        
+        assertSame(group, r1.getParent());
+        assertSame(group, r2.getParent());
+        
+        assertTrue(group.getRadioList().contains(r1));
+        assertTrue(group.getRadioList().contains(r2));
+    }
+    
+    /**
+     * Coverage test of addAll(Map).
+     */
+    public void testAddAllMap() {
+        MockContext.initContext();
+        
+        RadioGroup group = new RadioGroup("group");
+        
+        Map<Object, Object> map = new LinkedHashMap<Object, Object>();
+        map.put(1, "one");
+        map.put("two", 2);
+        
+        group.addAll(map);
+        
+        assertEquals(group.getRadioList().get(0).getValue(), "1");
+        assertEquals(group.getRadioList().get(0).getLabel(), "one");
+        assertEquals(group.getRadioList().get(1).getValue(), "two");
+        assertEquals(group.getRadioList().get(1).getLabel(), "2");
+    }
+
+    /**
+     * Coverage test of addAll(Colelction<Object>).
+     */
+    public void testAddAllObject() {
+        MockContext.initContext();
+        
+        RadioGroup group = new RadioGroup("group");
+        
+        List<RadioFoo> list = Arrays.asList(new RadioFoo("value1", "label1"), new RadioFoo("value2", "label2"));
+        
+        group.addAll(list, "val", "lab");
+        
+        assertEquals(group.getRadioList().get(0).getValue(), "value1");
+        assertEquals(group.getRadioList().get(0).getLabel(), "label1");
+        assertEquals(group.getRadioList().get(1).getValue(), "value2");
+        assertEquals(group.getRadioList().get(1).getLabel(), "label2");
+    }
+
+    public static class RadioFoo {
+        String value;
+        String label;
+        
+        RadioFoo(String value, String label) {
+            this.value = value;
+            this.label = label;
+        }
+        
+        public String getVal() {
+            return value;
+        }
+        public String getLab() {
+            return label;
+        }
+    }
+    
+    /**
+     * Coverage test of addAll(Colelction<Object>).
+     */
+    public void testFocusJs() {
+        MockContext.initContext();
+        
+        RadioGroup group = new RadioGroup("group");
+        Radio r1 = new Radio("val1");
+        Radio r2 = new Radio("val2");
+        group.add(r1);
+        group.add(r2);
+
+        System.out.println(group.getFocusJavaScript());
+        
+        group = new RadioGroup("group");
+        System.out.println(group.getFocusJavaScript());
+
+    }
+}

Propchange: click/trunk/click/framework/test/org/apache/click/control/RadioGroupTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: click/trunk/click/framework/test/org/apache/click/control/RadioTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/RadioTest.java?rev=984158&r1=984157&r2=984158&view=diff
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/RadioTest.java (original)
+++ click/trunk/click/framework/test/org/apache/click/control/RadioTest.java Tue Aug 10 18:40:28 2010
@@ -19,7 +19,11 @@
 package org.apache.click.control;
 
 import junit.framework.TestCase;
+
+import org.apache.click.ActionListener;
+import org.apache.click.Control;
 import org.apache.click.MockContext;
+import org.apache.click.servlet.MockRequest;
 
 /**
  * Test Radio behavior.
@@ -61,4 +65,174 @@ public class RadioTest extends TestCase 
         // Check that the value <script> is not rendered
         assertTrue(radio.toString().indexOf(value) < 0);
     }
+    
+    /**
+     * Radio Submit onProcess behavior.
+     */
+    public void testOnProcess() {
+        MockContext context = MockContext.initContext();
+        MockRequest request = context.getMockRequest();
+        
+        Radio button = new Radio("value", "label", "button");
+        assertEquals("button", button.getName());
+        
+        assertTrue(button.onProcess());
+        
+        request.setParameter("button", "true");
+        assertTrue(button.onProcess());
+        
+        Listener l = new Listener();
+        button.setActionListener(l);
+
+        // No request param -> no action listener executed
+        request.removeParameter("button");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertFalse(l.fired);
+
+        // No request param -> no action listener executed
+        request.setParameter("button", "value");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertTrue(button.isChecked());
+        assertTrue(l.fired);
+
+        // Disabled button with request param
+        request.setParameter("button", "true");
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertFalse(button.isDisabled());
+        
+        // Diasabled button without request param
+        request.removeParameter("button");
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertTrue(button.isDisabled());
+    }
+
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        Radio field = new Radio("value", "label", "field");
+        assertEquals("value", field.getValue());
+        assertEquals("label", field.getLabel());
+        assertEquals("field", field.getName());
+        
+        field = new Radio("value", "label");
+        assertEquals("value", field.getValue());
+        assertEquals("label", field.getLabel());
+        
+        field = new Radio();
+        assertEquals("", field.getValue());
+        assertEquals("", field.getLabel());
+        assertNull(field.getName());
+    }
+    
+    /**
+     * Coverage test of getId()
+     */
+    public void testId() {
+        Radio field = new Radio("value", "label", "a/b c<d>e");
+        assertEquals("a_b_c_d_e_value", field.getId());
+    }
+
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value");
+        field.setTabIndex(5);
+
+        assertTrue(field.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value");
+        field.setDisabled(true);
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+    }
+
+    /**
+     * Coverage test of readonly property.
+     */
+    public void testReadonly() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value");
+        field.setReadonly(true);
+
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+        
+        field = new Radio("value");
+        field.setReadonly(true);
+        field.setChecked(true);
+
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+        assertTrue(field.toString().contains("<input type=\"hidden\""));
+
+    }
+
+    /**
+     * Coverage test of help property.
+     */
+    public void testHelp() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value");
+        field.setHelp("help");
+
+        // Note that help is currently not rendered.
+        assertFalse(field.toString().contains("help"));
+    }
+
+    /**
+     * Coverage test of validation javascript.
+     */
+    public void testValidationJS() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value");
+        assertNull(field.getValidationJavaScript());
+    }
+    
+    public void testValue() {
+        MockContext.initContext();
+        
+        Radio field = new Radio("value", "label", "field");
+        assertFalse(field.isChecked());
+        
+        field.setValue("value");
+        assertTrue(field.isChecked());
+        field.setValue("xxx");
+        assertFalse(field.isChecked());
+        
+        field.setChecked(false);
+        
+        field.setValueObject("xxx");
+        assertFalse(field.isChecked());
+        field.setValueObject(null);
+        assertFalse(field.isChecked());
+    }
+
+    static class Listener implements ActionListener {
+        private static final long serialVersionUID = 1L;
+        
+        public boolean fired;
+
+        @Override
+        public boolean onAction(Control source) {
+            fired = true;
+            return true;
+        }
+    }
 }

Added: click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java?rev=984158&view=auto
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java (added)
+++ click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java Tue Aug 10 18:40:28 2010
@@ -0,0 +1,169 @@
+/*
+ * 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.click.control;
+
+import junit.framework.TestCase;
+
+import org.apache.click.ActionListener;
+import org.apache.click.Control;
+import org.apache.click.MockContext;
+import org.apache.click.servlet.MockRequest;
+
+/**
+ * Test Button behavior.
+ */
+public class SubmitTest extends TestCase {
+    /**
+     * Test Submit onProcess behavior.
+     */
+    public void testOnProcess() {
+        MockContext context = MockContext.initContext();
+        MockRequest request = context.getMockRequest();
+        
+        Submit button = new Submit("button");
+        assertEquals("button", button.getName());
+        
+        assertTrue(button.onProcess());
+        
+        request.setParameter("button", "true");
+        assertTrue(button.onProcess());
+        
+        final boolean check[] = new boolean[1];
+        button.setActionListener(new ActionListener() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public boolean onAction(Control source) {
+                check[0] = true;
+                return false;
+            }
+        });
+
+        // No request param -> no action listener executed
+        request.removeParameter("button");
+        assertTrue(button.onProcess());
+        context.executeActionListeners();
+        assertFalse(check[0]);
+
+        // Disabled button with request param
+        request.setParameter("button", "true");
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertFalse(button.isDisabled());
+
+        // Diasabled button without request param
+        request.removeParameter("button");
+        button.setDisabled(true);
+        assertTrue(button.onProcess());
+        assertTrue(button.isValid());
+        assertTrue(button.isDisabled());
+    }
+    
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        Submit button = new Submit();
+        assertNull(button.getName());
+        
+        button = new Submit("button", "label");
+        assertEquals("button", button.getName());
+        assertEquals("label", button.getLabel());
+        
+        Listener l = new Listener();
+        assertEquals("button", button.getName());
+        button = new Submit("button", l, "onAction");
+
+        try {
+            button = new Submit("button", null, "onAction");
+            assertTrue("Should throw exception", false);
+        } catch (IllegalArgumentException e) { }
+
+        try {
+            button = new Submit("button", l, null);
+            assertTrue("Should throw exception", false);
+        } catch (IllegalArgumentException e) { }
+
+        button = new Submit("button", "label", l, "onAction");
+        assertEquals("button", button.getName());
+        assertEquals("label", button.getLabel());
+
+        try {
+            button = new Submit("button", "label", null, "onAction");
+            assertTrue("Should throw exception", false);
+        } catch (IllegalArgumentException e) { }
+
+        try {
+            button = new Submit("button", "label", l, null);
+            assertTrue("Should throw exception", false);
+        } catch (IllegalArgumentException e) { }
+
+    }
+
+    static class Listener {
+        public boolean fired;
+        public boolean onAction() {
+            fired = true;
+            return true;
+        }
+    }
+
+    /**
+     * Coverage test of onClick.
+     */
+    public void testCancelJavaScriptValidation() {
+        MockContext.initContext();
+        
+        Submit button = new Submit("button");
+        assertFalse(button.getCancelJavaScriptValidation());
+
+        button = new Submit("button");
+        button.setCancelJavaScriptValidation(false);
+        assertFalse(button.getCancelJavaScriptValidation());
+        
+        button.setCancelJavaScriptValidation(true);
+        assertTrue(button.getCancelJavaScriptValidation());
+        assertNotNull(button.getAttribute("onclick"));
+    }
+    
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        Submit button = new Submit("button");
+        button.setTabIndex(5);
+
+        assertTrue(button.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        Submit button = new Submit("button");
+        button.setDisabled(true);
+
+        assertTrue(button.toString().contains("disabled=\"disabled\""));
+    }
+}

Propchange: click/trunk/click/framework/test/org/apache/click/control/SubmitTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: click/trunk/click/framework/test/org/apache/click/control/TextAreaTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/TextAreaTest.java?rev=984158&r1=984157&r2=984158&view=diff
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/TextAreaTest.java (original)
+++ click/trunk/click/framework/test/org/apache/click/control/TextAreaTest.java Tue Aug 10 18:40:28 2010
@@ -84,7 +84,8 @@ public class TextAreaTest extends TestCa
         assertTrue(textArea.onProcess());
         assertFalse(textArea.isValid());
         assertEquals("ratherlongtextvalue", textArea.getValue());
-        assertEquals("ratherlongtextvalue", textArea.getValueObject());   
+        assertEquals("ratherlongtextvalue", textArea.getValueObject());
+        assertTrue(textArea.toString().contains("class=\"error\""));
     }
 
     /**
@@ -101,4 +102,111 @@ public class TextAreaTest extends TestCa
         // Check that the value <script> is not rendered
         assertTrue(field.toString().indexOf(value) < 0);
     }
+    
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        TextArea field = new TextArea();
+        assertNull(field.getName());
+        
+        field = new TextArea("field", true);
+        assertTrue(field.isRequired());
+        
+        field = new TextArea("field", "label");
+        assertEquals("label", field.getLabel());
+        
+        field = new TextArea("field", "label", true);
+        assertEquals("label", field.getLabel());
+        assertTrue(field.isRequired());
+
+        field = new TextArea("field", 25, 4);
+        assertEquals(25, field.getCols());
+        assertEquals(4, field.getRows());
+        
+        field = new TextArea("field", "label", 25, 4);
+        assertEquals("label", field.getLabel());
+        assertEquals(25, field.getCols());
+        assertEquals(4, field.getRows());
+
+        field = new TextArea("field", "label", 25, 4, true);
+        assertEquals("label", field.getLabel());
+        assertEquals(25, field.getCols());
+        assertEquals(4, field.getRows());
+        assertTrue(field.isRequired());
+    }
+    
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+        field.setTabIndex(5);
+
+        assertTrue(field.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+        field.setDisabled(true);
+
+        assertTrue(field.toString().contains("class=\"disabled\""));
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+    }
+
+    /**
+     * Coverage test of readonly property.
+     */
+    public void testReadonly() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+        field.setReadonly(true);
+
+        assertTrue(field.toString().contains("readonly=\"readonly\""));
+    }
+
+    /**
+     * Coverage test of cols and rows property.
+     */
+    public void testColsRows() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+        field.setCols(25);
+        field.setRows(4);
+        
+        assertTrue(field.toString().contains("cols=\"25\""));
+        assertTrue(field.toString().contains("rows=\"4\""));
+    }
+
+    /**
+     * Coverage test of help property.
+     */
+    public void testHelp() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+        field.setHelp("help");
+
+        assertTrue(field.toString().contains("help"));
+    }
+
+    /**
+     * Coverage test of validation javascript.
+     */
+    public void testValidationJS() {
+        MockContext.initContext();
+        
+        TextArea field = new TextArea("field");
+
+        assertTrue(field.getValidationJavaScript().startsWith("function validate_field()"));
+    }
 }

Modified: click/trunk/click/framework/test/org/apache/click/control/TextFieldTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/TextFieldTest.java?rev=984158&r1=984157&r2=984158&view=diff
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/TextFieldTest.java (original)
+++ click/trunk/click/framework/test/org/apache/click/control/TextFieldTest.java Tue Aug 10 18:40:28 2010
@@ -250,4 +250,100 @@ public class TextFieldTest extends TestC
         // Check that field does not trim its request value
         assertEquals(value, field.getValue());
     }
+    
+    /**
+     * Coverage test of constructors.
+     */
+    public void testConstructors() {
+        TextField field = new TextField("field", true);
+        assertTrue(field.isRequired());
+        
+        field = new TextField("field", "label");
+        assertEquals("label", field.getLabel());
+        
+        field = new TextField("field", "label", true);
+        assertEquals("label", field.getLabel());
+        assertTrue(field.isRequired());
+
+        field = new TextField("field", "label", 25);
+        assertEquals("label", field.getLabel());
+        assertEquals(25, field.getSize());
+        
+        field = new TextField("field", "label", 25, true);
+        assertEquals("label", field.getLabel());
+        assertEquals(25, field.getSize());
+        assertTrue(field.isRequired());
+    }
+    
+    /**
+     * Coverage test of tab-index.
+     */
+    public void testTabIndex() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+        field.setTabIndex(5);
+
+        assertTrue(field.toString().contains("tabindex=\"5\""));
+    }
+
+    /**
+     * Coverage test of disabled property.
+     */
+    public void testDisabled() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+        field.setDisabled(true);
+
+        assertTrue(field.toString().contains("class=\"disabled\""));
+        assertTrue(field.toString().contains("disabled=\"disabled\""));
+    }
+
+    /**
+     * Coverage test of readonly property.
+     */
+    public void testReadonly() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+        field.setReadonly(true);
+
+        assertTrue(field.toString().contains("readonly=\"readonly\""));
+    }
+
+    /**
+     * Coverage test of max-length property.
+     */
+    public void testMaxLength() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+        field.setMaxLength(25);
+
+        assertTrue(field.toString().contains("maxlength=\"25\""));
+    }
+
+    /**
+     * Coverage test of help property.
+     */
+    public void testHelp() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+        field.setHelp("help");
+
+        assertTrue(field.toString().contains("help"));
+    }
+
+    /**
+     * Coverage test of validation javascript.
+     */
+    public void testValidationJS() {
+        MockContext.initContext();
+        
+        TextField field = new TextField("field");
+
+        assertTrue(field.getValidationJavaScript().startsWith("function validate_field()"));
+    }
 }