aboutsummaryrefslogtreecommitdiffstats
path: root/server/tests/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/src/com')
-rw-r--r--server/tests/src/com/vaadin/server/MockServletConfig.java86
-rw-r--r--server/tests/src/com/vaadin/server/MockServletContext.java304
-rw-r--r--server/tests/src/com/vaadin/server/VaadinServletConfigurationTest.java98
-rw-r--r--server/tests/src/com/vaadin/server/VaadinSessionTest.java23
-rw-r--r--server/tests/src/com/vaadin/tests/data/bean/AnotherTestEnum.java16
-rw-r--r--server/tests/src/com/vaadin/tests/data/bean/TestEnum.java16
-rw-r--r--server/tests/src/com/vaadin/tests/data/converter/TestAnyEnumToStringConverter.java130
-rw-r--r--server/tests/src/com/vaadin/tests/data/converter/TestSpecificEnumToStringConverter.java121
-rw-r--r--server/tests/src/com/vaadin/tests/server/TestClassesSerializable.java22
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValidators.java (renamed from server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValidators.java)2
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java (renamed from server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java)2
-rw-r--r--server/tests/src/com/vaadin/ui/AbsFieldDataSourceLocaleChange.java (renamed from server/tests/src/com/vaadin/ui/AbstractFieldDataSourceLocaleChange.java)2
12 files changed, 807 insertions, 15 deletions
diff --git a/server/tests/src/com/vaadin/server/MockServletConfig.java b/server/tests/src/com/vaadin/server/MockServletConfig.java
new file mode 100644
index 0000000000..cd1201c249
--- /dev/null
+++ b/server/tests/src/com/vaadin/server/MockServletConfig.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2000-2013 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.server;
+
+import java.util.Enumeration;
+import java.util.Properties;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+
+/**
+ *
+ * @since
+ * @author Vaadin Ltd
+ */
+public class MockServletConfig implements ServletConfig {
+
+ private ServletContext context = new MockServletContext();
+ private final Properties initParameters;
+
+ public MockServletConfig() {
+ this(new Properties());
+ }
+
+ public MockServletConfig(Properties initParameters) {
+ this.initParameters = initParameters;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletConfig#getServletName()
+ */
+ @Override
+ public String getServletName() {
+ return "Mock Servlet";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletConfig#getServletContext()
+ */
+ @Override
+ public ServletContext getServletContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletConfig#getInitParameter(java.lang.String)
+ */
+ @Override
+ public String getInitParameter(String name) {
+ return initParameters.getProperty(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletConfig#getInitParameterNames()
+ */
+ @Override
+ public Enumeration getInitParameterNames() {
+ return initParameters.propertyNames();
+ }
+
+}
diff --git a/server/tests/src/com/vaadin/server/MockServletContext.java b/server/tests/src/com/vaadin/server/MockServletContext.java
new file mode 100644
index 0000000000..40d79190f6
--- /dev/null
+++ b/server/tests/src/com/vaadin/server/MockServletContext.java
@@ -0,0 +1,304 @@
+/*
+ * Copyright 2000-2013 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.server;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Set;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+/**
+ *
+ * @since
+ * @author Vaadin Ltd
+ */
+public class MockServletContext implements ServletContext {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getContext(java.lang.String)
+ */
+ @Override
+ public ServletContext getContext(String uripath) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getMajorVersion()
+ */
+ @Override
+ public int getMajorVersion() {
+ return 2;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getMinorVersion()
+ */
+ @Override
+ public int getMinorVersion() {
+ return 4;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getMimeType(java.lang.String)
+ */
+ @Override
+ public String getMimeType(String file) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResourcePaths(java.lang.String)
+ */
+ @Override
+ public Set getResourcePaths(String path) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResource(java.lang.String)
+ */
+ @Override
+ public URL getResource(String path) throws MalformedURLException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResourceAsStream(java.lang.String)
+ */
+ @Override
+ public InputStream getResourceAsStream(String path) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getRequestDispatcher(java.lang.String)
+ */
+ @Override
+ public RequestDispatcher getRequestDispatcher(String path) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String)
+ */
+ @Override
+ public RequestDispatcher getNamedDispatcher(String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServlet(java.lang.String)
+ */
+ @Override
+ public Servlet getServlet(String name) throws ServletException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServlets()
+ */
+ @Override
+ public Enumeration getServlets() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServletNames()
+ */
+ @Override
+ public Enumeration getServletNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#log(java.lang.String)
+ */
+ @Override
+ public void log(String msg) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#log(java.lang.Exception,
+ * java.lang.String)
+ */
+ @Override
+ public void log(Exception exception, String msg) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#log(java.lang.String,
+ * java.lang.Throwable)
+ */
+ @Override
+ public void log(String message, Throwable throwable) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getRealPath(java.lang.String)
+ */
+ @Override
+ public String getRealPath(String path) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServerInfo()
+ */
+ @Override
+ public String getServerInfo() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getInitParameter(java.lang.String)
+ */
+ @Override
+ public String getInitParameter(String name) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getInitParameterNames()
+ */
+ @Override
+ public Enumeration getInitParameterNames() {
+ return Collections.enumeration(Collections.EMPTY_LIST);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getAttribute(java.lang.String)
+ */
+ @Override
+ public Object getAttribute(String name) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getAttributeNames()
+ */
+ @Override
+ public Enumeration getAttributeNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#setAttribute(java.lang.String,
+ * java.lang.Object)
+ */
+ @Override
+ public void setAttribute(String name, Object object) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#removeAttribute(java.lang.String)
+ */
+ @Override
+ public void removeAttribute(String name) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServletContextName()
+ */
+ @Override
+ public String getServletContextName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/server/tests/src/com/vaadin/server/VaadinServletConfigurationTest.java b/server/tests/src/com/vaadin/server/VaadinServletConfigurationTest.java
new file mode 100644
index 0000000000..80cb1d7b0c
--- /dev/null
+++ b/server/tests/src/com/vaadin/server/VaadinServletConfigurationTest.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2000-2013 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.server;
+
+import java.util.Properties;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import junit.framework.Assert;
+
+import org.easymock.EasyMock;
+import org.junit.Test;
+
+import com.vaadin.annotations.VaadinServletConfiguration;
+import com.vaadin.server.DeploymentConfiguration.LegacyProperyToStringMode;
+import com.vaadin.server.VaadinServletConfigurationTest.MockUI;
+import com.vaadin.ui.UI;
+
+public class VaadinServletConfigurationTest {
+ public static class MockUI extends UI {
+ @Override
+ protected void init(VaadinRequest request) {
+ // Do nothing
+ }
+ }
+
+ @Test
+ public void testValuesFromAnnotation() throws ServletException {
+ TestServlet servlet = new TestServlet();
+ servlet.init(new MockServletConfig());
+ DeploymentConfiguration configuration = servlet.getService()
+ .getDeploymentConfiguration();
+
+ Assert.assertEquals(true, configuration.isProductionMode());
+ Assert.assertEquals(LegacyProperyToStringMode.DISABLED,
+ configuration.getLegacyPropertyToStringMode());
+ Assert.assertEquals(true, configuration.isCloseIdleSessions());
+ Assert.assertEquals(1234, configuration.getHeartbeatInterval());
+ Assert.assertEquals(4321, configuration.getResourceCacheTime());
+
+ Class<? extends UI> uiClass = new DefaultUIProvider()
+ .getUIClass(new UIClassSelectionEvent(new VaadinServletRequest(
+ EasyMock.createMock(HttpServletRequest.class), servlet
+ .getService())));
+ Assert.assertEquals(MockUI.class, uiClass);
+ }
+
+ @Test
+ public void testValuesOverriddenForServlet() throws ServletException {
+ Properties servletInitParams = new Properties();
+ servletInitParams.setProperty("productionMode", "false");
+ servletInitParams.setProperty("heartbeatInterval", "1111");
+
+ TestServlet servlet = new TestServlet();
+ servlet.init(new MockServletConfig(servletInitParams));
+ DeploymentConfiguration configuration = servlet.getService()
+ .getDeploymentConfiguration();
+
+ // Values from servlet init params take precedence
+ Assert.assertEquals(1111, configuration.getHeartbeatInterval());
+ Assert.assertEquals(false, configuration.isProductionMode());
+
+ // Other params are as defined in the annotation
+ Assert.assertEquals(LegacyProperyToStringMode.DISABLED,
+ configuration.getLegacyPropertyToStringMode());
+ Assert.assertEquals(true, configuration.isCloseIdleSessions());
+ Assert.assertEquals(4321, configuration.getResourceCacheTime());
+
+ Class<? extends UI> uiClass = new DefaultUIProvider()
+ .getUIClass(new UIClassSelectionEvent(new VaadinServletRequest(
+ EasyMock.createMock(HttpServletRequest.class), servlet
+ .getService())));
+ Assert.assertEquals(MockUI.class, uiClass);
+ }
+}
+
+@VaadinServletConfiguration(productionMode = true, ui = MockUI.class, closeIdleSessions = true, heartbeatInterval = 1234, resourceCacheTime = 4321)
+class TestServlet extends VaadinServlet {
+
+}
diff --git a/server/tests/src/com/vaadin/server/VaadinSessionTest.java b/server/tests/src/com/vaadin/server/VaadinSessionTest.java
index 61a1581a6f..68f198410c 100644
--- a/server/tests/src/com/vaadin/server/VaadinSessionTest.java
+++ b/server/tests/src/com/vaadin/server/VaadinSessionTest.java
@@ -18,6 +18,7 @@ package com.vaadin.server;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.ReentrantLock;
+import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
@@ -30,7 +31,6 @@ import org.junit.Test;
import com.vaadin.server.ClientConnector.DetachEvent;
import com.vaadin.server.ClientConnector.DetachListener;
-import com.vaadin.tests.util.MockDeploymentConfiguration;
import com.vaadin.ui.UI;
import com.vaadin.util.CurrentInstance;
@@ -39,6 +39,7 @@ public class VaadinSessionTest {
private VaadinSession session;
private VaadinServlet mockServlet;
private VaadinServletService mockService;
+ private ServletConfig mockServletConfig;
private HttpSession mockHttpSession;
private WrappedSession mockWrappedSession;
private VaadinServletRequest vaadinRequest;
@@ -46,24 +47,22 @@ public class VaadinSessionTest {
@Before
public void setup() throws Exception {
- mockServlet = new VaadinServlet() {
- @Override
- public String getServletName() {
- return "mockServlet";
- };
- };
-
- mockService = new VaadinServletService(mockServlet,
- new MockDeploymentConfiguration());
- mockService.init();
+ mockServletConfig = new MockServletConfig();
+ mockServlet = new VaadinServlet();
+ mockServlet.init(mockServletConfig);
+ mockService = mockServlet.getService();
mockHttpSession = EasyMock.createMock(HttpSession.class);
mockWrappedSession = new WrappedHttpSession(mockHttpSession) {
final ReentrantLock lock = new ReentrantLock();
+ {
+ lock.lock();
+ }
@Override
public Object getAttribute(String name) {
- if ("mockServlet.lock".equals(name)) {
+ String lockAttribute = mockService.getServiceName() + ".lock";
+ if (lockAttribute.equals(name)) {
return lock;
}
return super.getAttribute(name);
diff --git a/server/tests/src/com/vaadin/tests/data/bean/AnotherTestEnum.java b/server/tests/src/com/vaadin/tests/data/bean/AnotherTestEnum.java
new file mode 100644
index 0000000000..fc8f22a947
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/data/bean/AnotherTestEnum.java
@@ -0,0 +1,16 @@
+package com.vaadin.tests.data.bean;
+
+public enum AnotherTestEnum {
+ ONE("ONE"), TWO("TWO");
+
+ private String id;
+
+ private AnotherTestEnum(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public String toString() {
+ return id;
+ }
+}
diff --git a/server/tests/src/com/vaadin/tests/data/bean/TestEnum.java b/server/tests/src/com/vaadin/tests/data/bean/TestEnum.java
new file mode 100644
index 0000000000..bf6f721052
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/data/bean/TestEnum.java
@@ -0,0 +1,16 @@
+package com.vaadin.tests.data.bean;
+
+public enum TestEnum {
+ ONE("1"), TWO("2");
+
+ private String id;
+
+ private TestEnum(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public String toString() {
+ return id;
+ }
+}
diff --git a/server/tests/src/com/vaadin/tests/data/converter/TestAnyEnumToStringConverter.java b/server/tests/src/com/vaadin/tests/data/converter/TestAnyEnumToStringConverter.java
new file mode 100644
index 0000000000..c267e012e8
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/data/converter/TestAnyEnumToStringConverter.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2000-2013 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.data.converter;
+
+import java.util.Locale;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.vaadin.data.util.ObjectProperty;
+import com.vaadin.data.util.converter.Converter;
+import com.vaadin.data.util.converter.ReverseConverter;
+import com.vaadin.tests.data.bean.AnotherTestEnum;
+import com.vaadin.tests.data.bean.TestEnum;
+import com.vaadin.ui.TextField;
+
+public class TestAnyEnumToStringConverter {
+
+ public class AnyEnumToStringConverter implements Converter<Enum, String> {
+
+ private Class<? extends Enum>[] enumClass;
+
+ public AnyEnumToStringConverter(Class<? extends Enum>... enumClass) {
+ this.enumClass = enumClass;
+ }
+
+ @Override
+ public String convertToModel(Enum value, Locale locale)
+ throws com.vaadin.data.util.converter.Converter.ConversionException {
+ if (value == null) {
+ return null;
+ }
+
+ return value.toString();
+ }
+
+ @Override
+ public Enum convertToPresentation(String value, Locale locale)
+ throws com.vaadin.data.util.converter.Converter.ConversionException {
+ if (value == null) {
+ return null;
+ }
+ for (Class<? extends Enum> candidate : enumClass) {
+ for (Enum e : candidate.getEnumConstants()) {
+ if (e.toString().equals(value)) {
+ return e;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public Class<String> getModelType() {
+ return String.class;
+ }
+
+ @Override
+ public Class<Enum> getPresentationType() {
+ return Enum.class;
+ }
+
+ }
+
+ private AnyEnumToStringConverter converter;
+
+ @Before
+ public void setup() {
+ converter = new AnyEnumToStringConverter(TestEnum.class,
+ AnotherTestEnum.class);
+ }
+
+ @Test
+ public void nullConversion() {
+ Assert.assertEquals(null, converter.convertToModel(null, null));
+ }
+
+ @Test
+ public void enumToStringConversion() {
+ Assert.assertEquals(TestEnum.TWO.toString(),
+ converter.convertToModel(TestEnum.TWO, null));
+ Assert.assertEquals(AnotherTestEnum.TWO.toString(),
+ converter.convertToModel(AnotherTestEnum.TWO, null));
+ }
+
+ @Test
+ public void stringToEnumConversion() {
+ Assert.assertEquals(TestEnum.TWO,
+ converter.convertToPresentation(TestEnum.TWO.toString(), null));
+ Assert.assertEquals(AnotherTestEnum.TWO, converter
+ .convertToPresentation(AnotherTestEnum.TWO.toString(), null));
+ }
+
+ @Test
+ public void stringToEnumWithField() {
+ TextField tf = new TextField();
+ tf.setConverter(new ReverseConverter(converter));
+ tf.setPropertyDataSource(new ObjectProperty(AnotherTestEnum.TWO));
+ Assert.assertEquals(AnotherTestEnum.TWO.toString(), tf.getValue());
+ tf.setValue(AnotherTestEnum.ONE.toString());
+ Assert.assertEquals(AnotherTestEnum.ONE.toString(), tf.getValue());
+ Assert.assertEquals(AnotherTestEnum.ONE, tf.getConvertedValue());
+ Assert.assertEquals(AnotherTestEnum.ONE, tf.getPropertyDataSource()
+ .getValue());
+
+ tf.setPropertyDataSource(new ObjectProperty(TestEnum.TWO));
+ Assert.assertEquals(TestEnum.TWO.toString(), tf.getValue());
+ tf.setValue(TestEnum.ONE.toString());
+ Assert.assertEquals(TestEnum.ONE.toString(), tf.getValue());
+ Assert.assertEquals(TestEnum.ONE, tf.getConvertedValue());
+ Assert.assertEquals(TestEnum.ONE, tf.getPropertyDataSource().getValue());
+
+ }
+}
diff --git a/server/tests/src/com/vaadin/tests/data/converter/TestSpecificEnumToStringConverter.java b/server/tests/src/com/vaadin/tests/data/converter/TestSpecificEnumToStringConverter.java
new file mode 100644
index 0000000000..93dbe96b56
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/data/converter/TestSpecificEnumToStringConverter.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2000-2013 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.data.converter;
+
+import java.util.Locale;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.vaadin.data.util.ObjectProperty;
+import com.vaadin.data.util.converter.Converter;
+import com.vaadin.data.util.converter.ReverseConverter;
+import com.vaadin.tests.data.bean.AnotherTestEnum;
+import com.vaadin.tests.data.bean.TestEnum;
+import com.vaadin.ui.TextField;
+
+public class TestSpecificEnumToStringConverter {
+
+ public class SpecificEnumToStringConverter implements
+ Converter<Enum, String> {
+
+ private Class<? extends Enum> enumClass;
+
+ public SpecificEnumToStringConverter(Class<? extends Enum> enumClass) {
+ this.enumClass = enumClass;
+ }
+
+ @Override
+ public String convertToModel(Enum value, Locale locale)
+ throws com.vaadin.data.util.converter.Converter.ConversionException {
+ if (value == null) {
+ return null;
+ }
+
+ return value.toString();
+ }
+
+ @Override
+ public Enum convertToPresentation(String value, Locale locale)
+ throws com.vaadin.data.util.converter.Converter.ConversionException {
+ if (value == null) {
+ return null;
+ }
+
+ for (Enum e : enumClass.getEnumConstants()) {
+ if (e.toString().equals(value)) {
+ return e;
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public Class<String> getModelType() {
+ return String.class;
+ }
+
+ @Override
+ public Class<Enum> getPresentationType() {
+ return (Class<Enum>) enumClass;
+ }
+
+ }
+
+ SpecificEnumToStringConverter testEnumConverter;
+ SpecificEnumToStringConverter anotherTestEnumConverter;
+
+ @Before
+ public void setup() {
+ testEnumConverter = new SpecificEnumToStringConverter(TestEnum.class);
+ anotherTestEnumConverter = new SpecificEnumToStringConverter(
+ AnotherTestEnum.class);
+ }
+
+ @Test
+ public void nullConversion() {
+ Assert.assertEquals(null, testEnumConverter.convertToModel(null, null));
+ }
+
+ @Test
+ public void enumToStringConversion() {
+ Assert.assertEquals(TestEnum.TWO.toString(),
+ testEnumConverter.convertToModel(TestEnum.TWO, null));
+ }
+
+ @Test
+ public void stringToEnumConversion() {
+ Assert.assertEquals(TestEnum.TWO, testEnumConverter
+ .convertToPresentation(TestEnum.TWO.toString(), null));
+ }
+
+ @Test
+ public void stringToEnumWithField() {
+ TextField tf = new TextField();
+ tf.setConverter(new ReverseConverter(anotherTestEnumConverter));
+ tf.setPropertyDataSource(new ObjectProperty(AnotherTestEnum.TWO));
+ Assert.assertEquals(AnotherTestEnum.TWO.toString(), tf.getValue());
+ tf.setValue(AnotherTestEnum.ONE.toString());
+ Assert.assertEquals(AnotherTestEnum.ONE.toString(), tf.getValue());
+ Assert.assertEquals(AnotherTestEnum.ONE, tf.getConvertedValue());
+ Assert.assertEquals(AnotherTestEnum.ONE, tf.getPropertyDataSource()
+ .getValue());
+
+ }
+}
diff --git a/server/tests/src/com/vaadin/tests/server/TestClassesSerializable.java b/server/tests/src/com/vaadin/tests/server/TestClassesSerializable.java
index 90cb6b9994..af6d9ed732 100644
--- a/server/tests/src/com/vaadin/tests/server/TestClassesSerializable.java
+++ b/server/tests/src/com/vaadin/tests/server/TestClassesSerializable.java
@@ -7,6 +7,7 @@ import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
@@ -33,6 +34,7 @@ public class TestClassesSerializable extends TestCase {
"com\\.vaadin\\.launcher\\..*", //
"com\\.vaadin\\.client\\..*", //
"com\\.vaadin\\.server\\.widgetsetutils\\..*", //
+ "com\\.vaadin\\.server\\.themeutils\\..*", //
"com\\.vaadin\\.tests\\..*", // exclude automated tests
"com\\.vaadin\\.tools\\..*", //
"com\\.vaadin\\.ui\\.themes\\..*", //
@@ -41,7 +43,13 @@ public class TestClassesSerializable extends TestCase {
"com\\.vaadin\\.event\\.LayoutEvents", //
"com\\.vaadin\\.event\\.MouseEvents", //
"com\\.vaadin\\.server\\.VaadinPortlet", //
+ "com\\.vaadin\\.server\\.MockServletConfig", //
+ "com\\.vaadin\\.server\\.MockServletContext", //
"com\\.vaadin\\.server\\.Constants", //
+ "com\\.vaadin\\.server\\.communication\\.FileUploadHandler\\$SimpleMultiPartInputStream", //
+ "com\\.vaadin\\.server\\.communication\\.PushRequestHandler.*",
+ "com\\.vaadin\\.server\\.communication\\.PushHandler.*", // PushHandler
+ // and its inner classes do not need to be serializable
"com\\.vaadin\\.util\\.SerializerHelper", // fully static
// class level filtering, also affecting nested classes and
// interfaces
@@ -50,6 +58,7 @@ public class TestClassesSerializable extends TestCase {
"com\\.vaadin\\.util\\.ReflectTools.*", //
"com\\.vaadin\\.data\\.util\\.ReflectTools.*", //
"com\\.vaadin\\.sass.*", //
+ "com\\.vaadin\\.testbench.*", //
"com\\.vaadin\\.util\\.CurrentInstance\\$1", //
};
@@ -88,6 +97,19 @@ public class TestClassesSerializable extends TestCase {
// report non-serializable classes and interfaces
if (!Serializable.class.isAssignableFrom(cls)) {
+ if (cls.getSuperclass() == Object.class
+ && cls.getInterfaces().length == 1) {
+ // Single interface implementors
+ Class<?> iface = cls.getInterfaces()[0];
+
+ if (iface == Runnable.class) {
+ // Ignore Runnables used with access()
+ continue;
+ } else if (iface == Comparator.class) {
+ // Ignore inline comparators
+ continue;
+ }
+ }
nonSerializableClasses.add(cls);
// TODO easier to read when testing
// System.err.println(cls);
diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValidators.java b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValidators.java
index 19c58fe6d3..764446f7aa 100644
--- a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValidators.java
+++ b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValidators.java
@@ -8,7 +8,7 @@ import com.vaadin.data.Validator;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Field;
-public class AbstractFieldValidators extends TestCase {
+public class AbsFieldValidators extends TestCase {
Field<Object> field = new AbstractField<Object>() {
@Override
diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java
index 3c4d43543b..b5e937f27d 100644
--- a/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbstractFieldValueConversions.java
+++ b/server/tests/src/com/vaadin/tests/server/component/abstractfield/AbsFieldValueConversions.java
@@ -21,7 +21,7 @@ import com.vaadin.tests.util.AlwaysLockedVaadinSession;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.TextField;
-public class AbstractFieldValueConversions extends TestCase {
+public class AbsFieldValueConversions extends TestCase {
Person paulaBean = new Person("Paula", "Brilliant", "paula@brilliant.com",
34, Sex.FEMALE, new Address("Paula street 1", 12345, "P-town",
diff --git a/server/tests/src/com/vaadin/ui/AbstractFieldDataSourceLocaleChange.java b/server/tests/src/com/vaadin/ui/AbsFieldDataSourceLocaleChange.java
index 9810873f0b..acea0a84c7 100644
--- a/server/tests/src/com/vaadin/ui/AbstractFieldDataSourceLocaleChange.java
+++ b/server/tests/src/com/vaadin/ui/AbsFieldDataSourceLocaleChange.java
@@ -12,7 +12,7 @@ import com.vaadin.data.util.converter.StringToIntegerConverter;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinSession;
-public class AbstractFieldDataSourceLocaleChange {
+public class AbsFieldDataSourceLocaleChange {
private VaadinSession vaadinSession;
private UI ui;