diff options
author | Leif Åstrand <leif@vaadin.com> | 2015-03-10 16:54:55 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-03-17 09:48:16 +0000 |
commit | 63beef507c7059d759c72baf43d513d25b843978 (patch) | |
tree | e92bad6ece0d4c5dce6c692dfbd1f51b77d54819 /server | |
parent | 208758d7a93c73d887c4030990d457ef52466c0e (diff) | |
download | vaadin-framework-63beef507c7059d759c72baf43d513d25b843978.tar.gz vaadin-framework-63beef507c7059d759c72baf43d513d25b843978.zip |
Make Slider.clear() consistent with the no-args contstructor (#17073)
Change-Id: I3d5a5b9396bb9449a579b54ed21821415bfdae16
Diffstat (limited to 'server')
-rw-r--r-- | server/src/com/vaadin/ui/Slider.java | 10 | ||||
-rw-r--r-- | server/tests/src/com/vaadin/tests/server/component/FieldDefaultValues.java | 84 |
2 files changed, 94 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Slider.java b/server/src/com/vaadin/ui/Slider.java index fab6e33cae..99e1e8d5e9 100644 --- a/server/src/com/vaadin/ui/Slider.java +++ b/server/src/com/vaadin/ui/Slider.java @@ -343,4 +343,14 @@ public class Slider extends AbstractField<Double> { return Double.class; } + @Override + public void clear() { + super.setValue(Double.valueOf(getState().minValue)); + } + + @Override + public boolean isEmpty() { + // Slider is never really "empty" + return false; + } } diff --git a/server/tests/src/com/vaadin/tests/server/component/FieldDefaultValues.java b/server/tests/src/com/vaadin/tests/server/component/FieldDefaultValues.java new file mode 100644 index 0000000000..5c9993e6dd --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/FieldDefaultValues.java @@ -0,0 +1,84 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed 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 com.vaadin.tests.server.component; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.tests.VaadinClasses; +import com.vaadin.ui.Field; +import com.vaadin.ui.PasswordField; +import com.vaadin.ui.ProgressBar; +import com.vaadin.ui.RichTextArea; +import com.vaadin.ui.Slider; +import com.vaadin.ui.TextArea; + +public class FieldDefaultValues { + + @Test + public void testFieldsHaveDefaultValueAfterClear() throws Exception { + for (Field<?> field : createFields()) { + Object originalValue = field.getValue(); + + // Some fields are not initialized to the "empty" value. #17089 + if (field instanceof PasswordField || field instanceof ProgressBar + || field instanceof RichTextArea + || field instanceof TextArea) { + originalValue = null; + } + + field.clear(); + + Object clearedValue = field.getValue(); + + Assert.assertEquals("Expected to get default value after clearing " + + field.getClass().getName(), originalValue, clearedValue); + } + } + + @Test + public void testFieldsAreEmptyAfterClear() throws Exception { + for (Field<?> field : createFields()) { + field.clear(); + + if (field instanceof Slider) { + Assert.assertFalse( + "Slider should not be empty even after being cleared", + field.isEmpty()); + + } else { + Assert.assertTrue(field.getClass().getName() + + " should be empty after being cleared", + field.isEmpty()); + } + } + } + + @SuppressWarnings("rawtypes") + private static List<Field<?>> createFields() throws InstantiationException, + IllegalAccessException { + List<Field<?>> fieldInstances = new ArrayList<Field<?>>(); + + for (Class<? extends Field> fieldType : VaadinClasses.getFields()) { + fieldInstances.add(fieldType.newInstance()); + } + return fieldInstances; + } + +} |