aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebContent/WEB-INF/web.xml17
-rw-r--r--client/src/com/vaadin/client/ui/AbstractComponentConnector.java24
-rw-r--r--server/src/com/vaadin/DefaultDeploymentConfiguration.java2
-rw-r--r--server/src/com/vaadin/navigator/Navigator.java10
-rw-r--r--server/src/com/vaadin/server/Constants.java2
-rw-r--r--server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java16
-rw-r--r--uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.html47
-rw-r--r--uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.java20
8 files changed, 120 insertions, 18 deletions
diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml
index e8ac6b7797..46ace4520b 100644
--- a/WebContent/WEB-INF/web.xml
+++ b/WebContent/WEB-INF/web.xml
@@ -49,6 +49,23 @@
</servlet>
<servlet>
+ <!-- Non-default values for testing purposes -->
+ <init-param>
+ <param-name>heartbeatInterval</param-name>
+ <param-value>301</param-value>
+ </init-param>
+ <init-param>
+ <param-name>resourceCacheTime</param-name>
+ <param-value>3601</param-value>
+ </init-param>
+ <init-param>
+ <param-name>closeIdleUIs</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>testParam</param-name>
+ <param-value>42</param-value>
+ </init-param>
<servlet-name>VaadinApplicationRunner</servlet-name>
<servlet-class>com.vaadin.launcher.ApplicationRunnerServlet</servlet-class>
</servlet>
diff --git a/client/src/com/vaadin/client/ui/AbstractComponentConnector.java b/client/src/com/vaadin/client/ui/AbstractComponentConnector.java
index 6ff51b3766..8b6c4fb8aa 100644
--- a/client/src/com/vaadin/client/ui/AbstractComponentConnector.java
+++ b/client/src/com/vaadin/client/ui/AbstractComponentConnector.java
@@ -273,7 +273,7 @@ public abstract class AbstractComponentConnector extends AbstractConnector
if (state.primaryStyleName != null) {
/*
* We overwrite the widgets primary stylename if state defines a
- * primary stylename. Clears all previous stylenames.
+ * primary stylename.
*/
getWidget().setStylePrimaryName(state.primaryStyleName);
}
@@ -293,24 +293,24 @@ public abstract class AbstractComponentConnector extends AbstractConnector
// add additional user defined style names as class names, prefixed with
// component default class name. remove nonexistent style names.
if (ComponentStateUtil.hasStyles(state)) {
- // add new style names
- List<String> newStyles = new ArrayList<String>();
- newStyles.addAll(state.styles);
- newStyles.removeAll(styleNames);
- for (String newStyle : newStyles) {
- setWidgetStyleName(newStyle, true);
- setWidgetStyleNameWithPrefix(primaryStyleName + "-", newStyle,
- true);
- }
- // remove nonexistent style names
- styleNames.removeAll(state.styles);
+
+ // Remove all old stylenames
for (String oldStyle : styleNames) {
setWidgetStyleName(oldStyle, false);
setWidgetStyleNameWithPrefix(primaryStyleName + "-", oldStyle,
false);
}
+
+ // add new style names
+ for (String newStyle : state.styles) {
+ setWidgetStyleName(newStyle, true);
+ setWidgetStyleNameWithPrefix(primaryStyleName + "-", newStyle,
+ true);
+ }
+
styleNames.clear();
styleNames.addAll(state.styles);
+
} else {
// remove all old style names
for (String oldStyle : styleNames) {
diff --git a/server/src/com/vaadin/DefaultDeploymentConfiguration.java b/server/src/com/vaadin/DefaultDeploymentConfiguration.java
index fed558c5b5..a9818f2c8b 100644
--- a/server/src/com/vaadin/DefaultDeploymentConfiguration.java
+++ b/server/src/com/vaadin/DefaultDeploymentConfiguration.java
@@ -219,7 +219,7 @@ public class DefaultDeploymentConfiguration implements DeploymentConfiguration {
try {
heartbeatInterval = Integer
.parseInt(getApplicationOrSystemProperty(
- Constants.SERVLET_PARAMETER_HEARTBEAT_RATE, "300"));
+ Constants.SERVLET_PARAMETER_HEARTBEAT_INTERVAL, "300"));
} catch (NumberFormatException e) {
getLogger().warning(
Constants.WARNING_HEARTBEAT_INTERVAL_NOT_NUMERIC);
diff --git a/server/src/com/vaadin/navigator/Navigator.java b/server/src/com/vaadin/navigator/Navigator.java
index 72d6c65fd2..4b2474a0f2 100644
--- a/server/src/com/vaadin/navigator/Navigator.java
+++ b/server/src/com/vaadin/navigator/Navigator.java
@@ -543,6 +543,16 @@ public class Navigator implements Serializable {
}
/**
+ * Returns the current navigation state reported by this Navigator's
+ * {@link NavigationStateManager}.
+ *
+ * @return The navigation state.
+ */
+ public String getState() {
+ return getStateManager().getState();
+ }
+
+ /**
* Return the ViewDisplay used by the navigator. Unless another display is
* specified, a {@link SimpleViewDisplay} (which is a {@link Component}) is
* used by default.
diff --git a/server/src/com/vaadin/server/Constants.java b/server/src/com/vaadin/server/Constants.java
index 60f7aa03d0..b6bfcc0495 100644
--- a/server/src/com/vaadin/server/Constants.java
+++ b/server/src/com/vaadin/server/Constants.java
@@ -61,7 +61,7 @@ public interface Constants {
static final String SERVLET_PARAMETER_PRODUCTION_MODE = "productionMode";
static final String SERVLET_PARAMETER_DISABLE_XSRF_PROTECTION = "disable-xsrf-protection";
static final String SERVLET_PARAMETER_RESOURCE_CACHE_TIME = "resourceCacheTime";
- static final String SERVLET_PARAMETER_HEARTBEAT_RATE = "heartbeatRate";
+ static final String SERVLET_PARAMETER_HEARTBEAT_INTERVAL = "heartbeatInterval";
static final String SERVLET_PARAMETER_CLOSE_IDLE_UIS = "closeIdleUIs";
static final String SERVLET_PARAMETER_UI_PROVIDER = "UIProvider";
diff --git a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
index 7e21b751dc..218791e454 100644
--- a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
+++ b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
@@ -228,21 +228,24 @@ public class NavigatorTest extends TestCase {
view1.enter(eventParametersEqual(""));
display.showView(view1);
manager.setState("test1");
+ EasyMock.expect(manager.getState()).andReturn("test1");
EasyMock.expect(provider.getViewName("test2/")).andReturn("test2");
EasyMock.expect(provider.getView("test2")).andReturn(view2);
- EasyMock.expect(manager.getState()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("test1");
view2.enter(eventParametersEqual(""));
display.showView(view2);
manager.setState("test2");
+ EasyMock.expect(manager.getState()).andReturn("test2");
EasyMock.expect(provider.getViewName("test1/params"))
.andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getState()).andReturn("view2");
+ EasyMock.expect(manager.getState()).andReturn("test2");
view1.enter(eventParametersEqual("params"));
display.showView(view1);
manager.setState("test1/params");
+ EasyMock.expect(manager.getState()).andReturn("test1/params");
control.replay();
@@ -251,8 +254,13 @@ public class NavigatorTest extends TestCase {
navigator.addProvider(provider);
navigator.navigateTo("test1");
+ assertEquals("test1", navigator.getState());
+
navigator.navigateTo("test2/");
+ assertEquals("test2", navigator.getState());
+
navigator.navigateTo("test1/params");
+ assertEquals("test1/params", navigator.getState());
}
public void testMainView() {
@@ -284,7 +292,7 @@ public class NavigatorTest extends TestCase {
EasyMock.expect(provider.getViewName("test1/params"))
.andReturn("test1");
EasyMock.expect(provider.getView("test1")).andReturn(view1);
- EasyMock.expect(manager.getState()).andReturn("view2");
+ EasyMock.expect(manager.getState()).andReturn("test2");
view1.enter(eventParametersEqual("params"));
display.showView(view1);
manager.setState("test1/params");
@@ -330,7 +338,7 @@ public class NavigatorTest extends TestCase {
ViewChangeEvent event2 = new ViewChangeEvent(navigator, view1, view2,
"test2", "");
listener.addExpectedIsViewChangeAllowed(event2, true);
- EasyMock.expect(manager.getState()).andReturn("view1");
+ EasyMock.expect(manager.getState()).andReturn("test1");
view2.enter(eventParametersEqual(""));
display.showView(view2);
manager.setState("test2");
diff --git a/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.html b/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.html
new file mode 100644
index 0000000000..f5ad0987aa
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.html
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8070/" />
+<title>DeploymentConfigurationTest</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">DeploymentConfigurationTest</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.application.DeploymentConfigurationTest?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>exact:closeIdleUIs: true</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>exact:productionMode: false</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>exact:testParam: 42</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>exact:heartbeatInterval: 301</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>exact:resourceCacheTime: 3601</td>
+ <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.java b/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.java
new file mode 100644
index 0000000000..9c89254bd7
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/application/DeploymentConfigurationTest.java
@@ -0,0 +1,20 @@
+package com.vaadin.tests.application;
+
+import java.util.Properties;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.UI;
+
+public class DeploymentConfigurationTest extends UI {
+
+ @Override
+ protected void init(VaadinRequest request) {
+ Properties params = getSession().getConfiguration().getInitParameters();
+
+ for (Object key : params.keySet()) {
+ addComponent(new Label(key + ": "
+ + params.getProperty((String) key)));
+ }
+ }
+}